我正在使用pdfrw软件包来填充pdf文件,我正在寻找使pdf只读的方法,但是我无法创建任何可以帮助我的人
def write_fillable_pdf(input_pdf_path, output_pdf_path, data_dict):
template_pdf = PdfReader(input_pdf_path)
annotations = template_pdf.pages[0][ANNOT_KEY]
for annotation in annotations:
if annotation[SUBTYPE_KEY] == WIDGET_SUBTYPE_KEY:
if annotation[ANNOT_FIELD_KEY]:
key = annotation[ANNOT_FIELD_KEY][1:-1]
if key in data_dict.keys():
annotation.update(
PdfDict(V='{}'.format(data_dict[key]))
)
PdfWriter().write(output_pdf_path, template_pdf)
答案 0 :(得分:2)
根据第676页的documentation,将Ff
设置为1
可以得到所需的行为,那么您的代码将如下更改:
def write_fillable_pdf(input_pdf_path, output_pdf_path, data_dict):
template_pdf = PdfReader(input_pdf_path)
annotations = template_pdf.pages[0][ANNOT_KEY]
for annotation in annotations:
if annotation[SUBTYPE_KEY] == WIDGET_SUBTYPE_KEY:
if annotation[ANNOT_FIELD_KEY]:
key = annotation[ANNOT_FIELD_KEY][1:-1]
if key in data_dict.keys():
annotation.update(
PdfDict(V='{}'.format(data_dict[key]),Ff=1)
)
PdfWriter().write(output_pdf_path, template_pdf)