PDFページを画像化するには、色々オープンソースのライブラリがあります。その中から、有名な4つを選んで、画像を生成してみた。文字/線の太さ、色の表現などは、ライブラリそれぞれが特徴を持っている。
mupdf(PyMuPDF)
import fitz from PIL import Image doc = fitz.open( "test.pdf") ppi = fitz.Matrix(1, 1) # 72ppi pm = doc[0].get_pixmap(matrix=ppi) img = Image.frombuffer('RGB', (pm.width, pm.height), pm.samples) img.save("test_mupdf.png")
pdfium(PyPDFium)
import pypdfium2 as pdfium pdf = pdfium.PdfDocument( "test.pdf") pil_image = pdf.get_page(0).render_topil(scale=1) #72ppi pil_image.save("test_pdfium.png")
ImageMagick(GhostScript)
convert - density 72 test.pdf - quality 100 test_Imagemagick.png
Xpdf(pdftopng)
pdftopng -r 72 test.pdf test_xpdf.png
Acrobat & Photoshop & Preview(手作業)
******************* 生成した画像 *******************
PDFium----------------------------------------
MuPDF----------------------------------------
ImageMagick----------------------------------------
Xpdf----------------------------------------
Acrobat----------------------------------------
Photoshop----------------------------------------
Preview(Mac)----------------------------------------
*************************************************
Pdfium vs Mupdf vs ImageMagick vs Xpdf(レイヤ:上-->下)
円@150%------------------------------
画像@70%------------------------------左上トンボ@150%------------------------------
斜線@150%------------------------------
明朝characters@150%------------------------------
ゴシックcharacters@150%------------------------------
ライセンスについて、MupdfはAGPL、XpdfはGPL v2/v3なので、これらのライブラリを使う場合、自作のコードまで全て公開(要求があったら)しないとダメです。一方、PDFiumはBSDです。商用のソフトに組み込みたい場合は、PDFiumでは無難でしょう。