为了从PDF中删除敏感内容,我将其转换为图像并再次转换为PDF。
我可以在保存jpeg图像时执行此操作,但是我最终会调整我的代码,以便文件始终在内存中。内存中的PDF - > JPEG在内存中 - > PDF在记忆中。我在中间步骤方面遇到了麻烦。
from pdf2image import convert_from_path, convert_from_bytes
import img2pdf
images = convert_from_path('testing.pdf', fmt='jpeg')
image = images[0]
# opening from filename
with open("output/output.pdf","wb") as f:
f.write(img2pdf.convert(image.tobytes()))
在最后一行,我收到错误:
ImageOpenError: cannot read input image (not jpeg2000). PIL: error reading image: cannot identify image file <_io.BytesIO object at 0x1040cc8f0>
我不确定如何将此图片转换为img2pdf
正在寻找的字符串。
答案 0 :(得分:1)
pdf2image模块将图像提取为枕头图像。并根据枕头tobytes() documention:“此方法从内部存储器返回原始图像数据。”这是一些位图表示。
要使代码正常工作,请使用BytesIO模块,如下所示:
# opening from filename
import io
with open("output/output.pdf","wb") as f, io.BytesIO() as output:
image.save(output, format='jpg')
f.write(img2pdf.convert(output.getvalue()))