Saya memiliki potongan kode python berikut untuk mengonversi PDF ke JPG.

with Img(filename=pdfName, resolution=300) as pic:
    pic.compression_quality = self.compressionQuality
    pic.background_color = Color("white")
    pic.alpha_channel = 'remove'
    pic.save(filename=output)

Masalah saya adalah, dengan file PDF besar (10mb) saya memiliki kesalahan berikut:

File "/home/nathan/PycharmProjects/oc_for_maarch/worker.py", line 44, in <module>
    launch(args)
  File "/home/nathan/PycharmProjects/oc_for_maarch/src/main.py", line 105, in launch
    q = process(args, path + file, Log, Separator, Config, Image, Ocr, Locale, WebService, q)
  File "/home/nathan/PycharmProjects/oc_for_maarch/src/process/OCForMaarch.py", line 48, in process
    Image.pdf_to_jpg(file + '[0]')
  File "/home/nathan/PycharmProjects/oc_for_maarch/src/classes/Images.py", line 36, in pdf_to_jpg
    self.save_img_with_wand(pdfName, self.jpgName)
  File "/home/nathan/PycharmProjects/oc_for_maarch/src/classes/Images.py", line 46, in save_img_with_wand
    with Img(filename=pdfName, resolution=300) as pic:
  File "/home/nathan/Documents/OpenCV/lib/python3.7/site-packages/wand/image.py", line 6406, in __init__
    self.read(filename=filename, resolution=resolution)
  File "/home/nathan/Documents/OpenCV/lib/python3.7/site-packages/wand/image.py", line 6799, in read
    raise WandRuntimeError(msg)
wand.exceptions.WandRuntimeError: MagickReadImage returns false, but did raise ImageMagick exception. This can occurs when a delegate is missing, or returns EXIT_SUCCESS without generating a raster.

Saya memeriksa sedikit di Internet, dan apa yang saya lihat masalahnya terkait dengan ghostscript tetapi sudah terpasang

Saya memiliki masalah pada Debian 10 dan Ubuntu 19.04 menggunakan Python 3.7

EDIT: Jika saya menempatkan resolusi ke 100 alih-alih 300, saya tidak memiliki masalah

1
Nathan Cheval 7 Agustus 2019, 17:04

1 menjawab

Jawaban Terbaik

Saat Anda melakukan rasterisasi pada kepadatan tinggi, Anda akan membuat gambar dimensi yang berpotensi sangat besar dari PDF Anda. Jadi sepertinya Anda mungkin kehabisan RAM. Jika demikian, maka Anda perlu mengedit file ImageMagick policy.xml Anda untuk memungkinkan lebih banyak ram atau ruang peta. Lihat policy.xml di https://imagemagick.org/script/resources.php. Ini mengontrol sumber daya Anda yang dapat Anda lihat dengan perintah baris perintah:

convert -list resource
2
fmw42 8 Agustus 2019, 20:42