Python で PDF ファイルを作成

**.NET 経由の Python 用 Aspose.PDF ** は、開発者がほんの数行のコードで Python for .NET アプリケーションから PDF ファイルを直接作成、ロード、変更、および変換できる PDF 操作 API です。

新しい PDF ファイルを最初から生成する必要がある場合や、OCR 出力を Python で検索可能な PDF ドキュメントに変換する必要がある場合は、これらの例を使用してください。

簡単な PDF ファイルの作成方法

Python を使用して.NET 経由で Aspose.PDF を使用して PDF を作成するには、次の手順に従います。

  1. のオブジェクトを作成 文書 クラス
  2. を追加 ページ への対象 ページ数 ドキュメントオブジェクトのコレクション
  3. 追加 テキストフラグメント に 段落 ページのコレクション
  4. 結果の 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 ドキュメントを作成する方法

.NET 経由の Python 用 Aspose.PDF では、既存の PDF ドキュメントを作成および操作できます。PDF ファイルにテキストエレメントを追加すると、生成された PDF が検索可能になります。ただし、テキストを含む画像を PDF ファイルに変換する場合、変換後の PDF の内容は検索できません。回避策として、変換後のファイルに OCR を適用して検索できるようにする方法があります。

この要件を満たすための完全なコードを次に示します。

  1. 「AP.ドキュメント」を使用してPDFをロードします。
  2. レンダリング解像度を設定します。
  3. 「PNGDevice.Process」を使用して、選択した PDF ページを画像に変換します。
  4. 生成された画像で OCR を実行します。
  5. OCR 出力から新しい PDF を作成します。
  6. 検索可能な 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)

関連ドキュメントトピック