I'm trying to output each pages of a PDF in a base64 string with ImageMagick.
When I do magick /mypdf.pdf INLINE:PNG:-
, it returns only the base64 output for the first page of the pdf document.
However, when magick /mypdf.pdf /convertInPng.png
is performed, each page of the pdf document is created (like convertInPng-0.png
, convertInPng-1.png
...)
Is there a way to get all the pages with the INLINE:Format:-
?
I'm not certain what you expect exactly, but hopefully this will get you started.
First, create a 2-page PDF, first page red, second page blue:
magick -size 640x480 xc:red xc:blue a.pdf
Now run your command and see that you only get a single base64-encoded PNG out:
magick a.pdf -adjoin inline:png:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgAQMAAAAPH06nAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGUExURf8AAP///0EdNBEAAAABYktHRAH/Ai3eAAAACXBIWXMAAABIAAAASABGyWs+AAAAB3RJTUUH6QINCiEaCV8CGAAAAD1JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4M8Al+AAAUvMG0oAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjUtMDItMTNUMTA6MzM6MjYrMDA6MDBT4OZBAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI1LTAyLTEzVDEwOjMzOjI2KzAwOjAwIr1e/QAAACh0RVh0ZGF0ZTp0aW1lc3RhbXAAMjAyNS0wMi0xM1QxMDozMzoyNiswMDowMHWofyIAAAAgdEVYdHBkZjpIaVJlc0JvdW5kaW5nQm94ADY0MHg0ODArMCsw1zYEzQAAABR0RVh0cGRmOlZlcnNpb24AUERGLTEuMyBTBqy/AAAAAElFTkSuQmCC
Now add +adjoin
to concatenate outputs together:
magick a.pdf +adjoin inline:png:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgAQMAAAAPH06nAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGUExURf8AAP///0EdNBEAAAABYktHRAH/Ai3eAAAACXBIWXMAAABIAAAASABGyWs+AAAAB3RJTUUH6QINCiEiIV26hgAAAD1JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4M8Al+AAAUvMG0oAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjUtMDItMTNUMTA6MzM6MzQrMDA6MDAI1ff2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI1LTAyLTEzVDEwOjMzOjM0KzAwOjAweYhPSgAAACh0RVh0ZGF0ZTp0aW1lc3RhbXAAMjAyNS0wMi0xM1QxMDozMzozNCswMDowMC6dbpUAAAAgdEVYdHBkZjpIaVJlc0JvdW5kaW5nQm94ADY0MHg0ODArMCsw1zYEzQAAABR0RVh0cGRmOlZlcnNpb24AUERGLTEuMyBTBqy/AAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgAQMAAAAPH06nAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGUExURQAA/////3vcmSwAAAABYktHRAH/Ai3eAAAACXBIWXMAAABIAAAASABGyWs+AAAAB3RJTUUH6QINCiEiIV26hgAAAD1JREFUeNrtwQENAAAAwqD3T20ON6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4M8Al+AAAUvMG0oAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjUtMDItMTNUMTA6MzM6MzQrMDA6MDAI1ff2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI1LTAyLTEzVDEwOjMzOjM0KzAwOjAweYhPSgAAACh0RVh0ZGF0ZTp0aW1lc3RhbXAAMjAyNS0wMi0xM1QxMDozMzozNCswMDowMC6dbpUAAAAgdEVYdHBkZjpIaVJlc0JvdW5kaW5nQm94ADY0MHg0ODArMCsw1zYEzQAAABR0RVh0cGRmOlZlcnNpb24AUERGLTEuMyBTBqy/AAAAAElFTkSuQmCC
Hopefully you can now see that the output not only starts with a PNG, i.e. data:image/png;base64,iVBOR...
but that there is also a second PNG appended to it.