使用Python替换PDF中的文本
使用Python替换PDF中的文本
这个问题已经有了答案:
我正在尝试使用以下Python代码替换PDF文件中的文本字符串。
import PyPDF2 reader = PyPDF2.PdfFileReader('document.pdf', strict=True, warndest=None, overwriteWarnings=True) writer = PyPDF2.PdfFileWriter() replacements = {'old' : 'new'} P = reader.getNumPages() for p in range(P): page = reader.getPage(p) contents = page.getContents() bdata = contents.getData() ddata = bdata.decode('utf-8') #decoded data (string) for key in replacements.keys(): ddata = ddata.replace(key, replacements[key]) contents.setData(ddata.encode('utf-8')) #Error occurs here #page.setContents(contents) writer.addPage(page) with open("result.pdf", 'wb') as f: writer.write(f)
问题在于contents.setData
会引发PdfReadError: Creating EncodedStreamObject is not currently supported
异常。
有没有人能想到一个解决方法?
附言:应用这里描述的方法会创建一个新的PDF文件,但没有进行替换。
admin 更改状态以发布 2023年5月19日