我一直在尝试使用PyMuPDF / Fitz将图像放入PDF文件中,并且我在互联网上看到的任何地方都得到相同的语法,但是当我使用它时,我遇到了运行时错误。
>>> doc = fitz.open("NewPDF.pdf")
>>> page = doc[1]
>>> rect = fitz.Rect(0,0,880,1080)
>>> page.insertImage(rect, filename = "Image01.jpg")
error: object is not a stream
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\fitz\fitz.py", line 1225, in insertImage
return _fitz.Page_insertImage(self, rect, filename, pixmap, overlay)
RuntimeError: object is not a stream
>>> page
page 1 of NewPDF.pdf
我已经尝试了一些不同的变体,使用像素图和没有,使用叠加值设置,没有。 PDF文件存在,可以使用Adobe Acrobat Reader打开,图像文件存在 - 我尝试过PNG和JPG。
感谢您提前获取任何帮助。
答案 0 :(得分:1)
只是一些尝试的提示:
确保已打开“ Image01.jpg”文件,并使用完整路径。
image_path = "/full/path/to/Image01.jpg"
image_file = Image.open(
open(image_path, 'rb'))
# side-note: generally it is better to use the open with syntax, see link below
# https://stackoverflow.com/questions/9282967/how-to-open-a-file-using-the-open-with-statement
为确保您确实在预期的pdf页面上,请尝试此操作。这段代码只会在第一页上插入图片
for page in doc:
page.InsertImage(rect, filename=image_path)
break # Without this, the image will appear on each page of your pdf