在 Python 中创建 PDF 文件
Contents
[
Hide
]
Aspose.PDF for Python via .NET 是一个 PDF 操作 API,允许开发人员仅用几行代码即可直接从 Python 为 .NET 应用程序创建、加载、修改和转换 PDF 文件。
当您需要从头生成新的 PDF 文件或将 OCR 输出转换为可搜索的 PDF 文档时,请使用这些示例。
如何创建简单的 PDF 文件
要使用 Python via .NET 与 Aspose.PDF 创建 PDF,您可以按照以下步骤操作:
- 创建一个对象 文档 类
- 添加一个 页面 对象到 页面 Document 对象的集合
- 添加 TextFragment 到 段落 页面集合
- 保存生成的 PDF 文档
import sys
from os import path
import aspose.pdf as ap
def create_new_document(output_pdf):
"""Create a simple PDF with a single “Hello World!” page."""
document = ap.Document()
page = document.pages.add()
page.paragraphs.add(ap.text.TextFragment("Hello World!"))
document.save(output_pdf)
如何创建可搜索的 PDF 文档
Aspose.PDF for Python via .NET 允许创建和操作现有的 PDF 文档。向 PDF 文件添加 Text 元素时,生成的 PDF 是可搜索的。然而,将包含文本的图像转换为 PDF 文件时,生成的 PDF 内容不可搜索。作为变通方法,我们可以对生成的文件应用 OCR,以使其可搜索。
以下是完成此需求的完整代码:
- 使用 ‘ap.Document’ 加载 PDF。
- 配置渲染分辨率。
- 使用 ‘PngDevice.process’ 将选定的 PDF 页面转换为图像。
- 对生成的图像运行 OCR。
- 从 OCR 输出创建一个新 PDF。
- 保存可搜索的 PDF。
import aspose.pdf as ap
import io
# Requires: pip install pytesseract
# Also ensure the Tesseract OCR engine is installed and available on your system PATH.
import pytesseract
from pathlib import Path
# Path to the source PDF
input_pdf_path = "input.pdf"
# Path for the temporary image
temp_image_path = "temp_image.png"
# Path for the searchable PDF
output_pdf_path = "output_searchable.pdf"
page_number = 1
image_stream = io.FileIO(temp_image_path, "w")
try:
document = ap.Document(input_pdf_path)
resolution = ap.devices.Resolution(300)
png_device = ap.devices.PngDevice(resolution)
png_device.process(document.pages[page_number], image_stream)
image_stream.close()
pdf = pytesseract.image_to_pdf_or_hocr(temp_image_path, extension="pdf")
document = ap.Document(io.BytesIO(pdf))
document.save(output_pdf_path)
finally:
image_file = Path(temp_image_path)
image_file.unlink(missing_ok=True)