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では無難でしょう。