添加查看器首选项¶
可以设置 PDF 文件的查看器首选项。 详见 PDF 1.7 规范 的 §12.2。
请注意,/ViewerPreferences
字典在默认情况下并不存在。
如果它尚未存在,必须通过调用 {func}
~pypdf.PdfWriter.create_viewer_preferences` 方法创建。
如果在使用 {class}
~pypdf.PdfReader读取的 PDF 文件中存在查看器首选项,可以通过
viewer_preferences
属性访问它们。
否则,{attr}
~pypdf.PdfReader.viewer_preferences属性将被设置为
None`。
示例¶
from pypdf import PdfWriter
from pypdf.generic import ArrayObject, NumberObject
writer = PdfWriter()
writer.create_viewer_preferences()
# /HideToolbar
writer.viewer_preferences.hide_toolbar = True
# /HideMenubar
writer.viewer_preferences.hide_menubar = True
# /HideWindowUI
writer.viewer_preferences.hide_windowui = True
# /FitWindow
writer.viewer_preferences.fit_window = True
# /CenterWindow
writer.viewer_preferences.center_window = True
# /DisplayDocTitle
writer.viewer_preferences.display_doctitle = True
# /NonFullScreenPageMode
writer.viewer_preferences.non_fullscreen_pagemode = "/UseNone" # 默认
writer.viewer_preferences.non_fullscreen_pagemode = "/UseOutlines"
writer.viewer_preferences.non_fullscreen_pagemode = "/UseThumbs"
writer.viewer_preferences.non_fullscreen_pagemode = "/UseOC"
# /Direction
writer.viewer_preferences.direction = "/L2R" # 默认
writer.viewer_preferences.direction = "/R2L"
# /ViewArea
writer.viewer_preferences.view_area = "/CropBox"
# /ViewClip
writer.viewer_preferences.view_clip = "/CropBox"
# /PrintArea
writer.viewer_preferences.print_area = "/CropBox"
# /PrintClip
writer.viewer_preferences.print_clip = "/CropBox"
# /PrintScaling
writer.viewer_preferences.print_scaling = "/None"
writer.viewer_preferences.print_scaling = "/AppDefault" # 根据 PDF 规范的默认设置
# /Duplex
writer.viewer_preferences.duplex = "/Simplex"
writer.viewer_preferences.duplex = "/DuplexFlipShortEdge"
writer.viewer_preferences.duplex = "/DuplexFlipLongEdge"
# /PickTrayByPDFSize
writer.viewer_preferences.pick_tray_by_pdfsize = True
# /PrintPageRange
writer.viewer_preferences.print_pagerange = ArrayObject(
[NumberObject("1"), NumberObject("10"), NumberObject("20"), NumberObject("30")]
)
# /NumCopies
writer.viewer_preferences.num_copies = 2
for i in range(40):
writer.add_blank_page(10, 10)
with open("output.pdf", "wb") as output_stream:
writer.write(output_stream)
以斜杠字符开头的名称是 PDF 文件格式的一部分。 在这里列出这些名称是为了方便从 PDF 规范中查找 pypdf 文档中的相关内容。