如何在Adobe Acrobat Reader中设置按PDF页面尺寸选纸张源及Python实现
解决方法:通过Python设置PDF的纸张源自动匹配选项
Adobe Reader中的“Choose paper source by PDF page size”选项,对应PDF规范里ViewerPreferences字典中的PickTrayByPDFSize布尔键。将该键设为True后,PDF文档会告诉Reader自动根据页面尺寸选择纸张源,无需手动勾选。
符合MIT/BSD协议的Python库中,pypdfium2(BSD协议)可以实现这个功能,它是Google PDFium的Python绑定,能直接操作PDF的底层字典结构。以下是具体实现代码:
import pypdfium2 as pdfium # 打开目标PDF pdf = pdfium.PdfDocument("your_input.pdf") # 获取文档根目录字典 catalog = pdf.get_root_dict() # 获取或创建ViewerPreferences字典 viewer_prefs = catalog.get("ViewerPreferences") if not viewer_prefs: viewer_prefs = pdfium.PdfDict(pdf) catalog.set("ViewerPreferences", viewer_prefs) # 设置PickTrayByPDFSize为True,开启自动选纸源 viewer_prefs.set_bool("PickTrayByPDFSize", True) # 保存修改后的PDF pdf.save("your_output.pdf") pdf.close()
说明
- 这个设置是嵌入在PDF文档本身的元数据中的,优先级高于Adobe Reader的全局偏好设置,打开修改后的PDF时会自动启用该选项。
- 你之前尝试pypdfium2未成功,大概率是没找到
PickTrayByPDFSize这个具体的字典键,直接操作底层字典就能解决问题。
内容的提问来源于stack exchange,提问作者Shmack
相关产品推荐
相关产品推荐

