PdfViewer 类
Contents
[
Hide
]
Aspose.PDF for Python via .NET 提供了 PdfViewer 用于处理 PDF 查看和页面解码场景的外观。一个常见的用例是将 PDF 页面转换为图像对象,然后可以将其保存到磁盘。
创建可复用的 PdfViewer 辅助类
在解码页面或读取与查看器相关的属性之前,创建一个小的帮助程序来初始化并返回一个 PdfViewer 实例。这使下面的示例保持自包含,并清楚地说明在将查看器对象绑定到 PDF 文档之前,它是如何创建的。
import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
def _create_viewer() -> pdf_facades.PdfViewer:
"""Create a PdfViewer configured for decoding examples."""
viewer = pdf_facades.PdfViewer()
viewer.coordinate_type = ap.PageCoordinateType.MEDIA_BOX
viewer.resolution = 150
viewer.scale_factor = 1.0
viewer.show_hidden_areas = False
return viewer
解码所有 PDF 页面
使用 decode_all_pages() 当您想将 PDF 中的每一页转换为单独的图像时,返回的页面图像随后可以逐个保存到输出目录中。
import sys
from os import path
import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
from config import initialize_data_dir, set_license
def decode_all_pages(infile: str, output_dir: str) -> None:
"""Decode all pages of a PDF document into image files."""
viewer = _create_viewer()
try:
viewer.open_pdf_file(infile)
decoded_pages = viewer.decode_all_pages()
for index, page_image in enumerate(decoded_pages, start=1):
image_path = path.join(output_dir, f"decode_all_pages_{index}.png")
page_image.save(image_path)
finally:
viewer.close_pdf_file()
解码特定的 PDF 页面
使用 decode_page() 当您只需要文档中的单页时。这在生成预览、缩略图或特定页面的导出时非常有用。
import sys
from os import path
import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
from config import initialize_data_dir, set_license
def decode_specific_page(infile: str, outfile: str, page_number: int = 1) -> None:
"""Decode a specific PDF page into an image file."""
viewer = _create_viewer()
try:
viewer.bind_pdf(infile)
page_image = viewer.decode_page(page_number)
page_image.save(outfile)
finally:
viewer.close()
检查 PDF 元数据
这 inspect_pdf_metadata 函数演示如何使用 Aspose.PDF 打开 PDF 文档并检索基本的与查看器相关的元数据。它侧重于提取描述文档如何被解释和显示的信息,而不是其内容。
import sys
from os import path
import aspose.pdf as ap
import aspose.pdf.facades as pdf_facades
from config import initialize_data_dir, set_license
def inspect_pdf_metadata(infile: str) -> None:
"""Open a PDF and print page-count related viewer metadata."""
viewer = _create_viewer()
try:
viewer.open_pdf_file(infile)
print(f"Page count: {viewer.page_count}")
print(f"Coordinate type: {viewer.coordinate_type}")
print(f"Resolution: {viewer.resolution}")
finally:
viewer.close_pdf_file()