改行を決定する
複数行テキストフラグメントの改行を追跡
次のコードスニペットは、PDFドキュメント内の複数行テキストフラグメントの改行挙動を追跡する方法を示しています。
track_line_breaking() 関数は、この機能を示すために定義されています。これは、生成されたPDFドキュメントと改行情報を含む対応するテキストファイルの両方の出力ファイルパスを指定することから始まります。
関数内では、新しいPDFドキュメントオブジェクトが作成され、新しいページが追加されます。その後、ループを使用して、文字列内に改行 ("\r\n") を挿入して複数行のテキストをシミュレートするテキストフラグメントの4つのインスタンスを生成します。
各テキストフラグメントは、ページの段落に追加される前にフォントサイズを20ポイントに設定されます。
すべてのテキストフラグメントが追加された後、ドキュメントが保存されます。
次に、関数は、get_notifications() メソッドを使用して、生成されたPDFドキュメントの2ページ目から改行に関する通知を抽出します。 これらの通知は、前に指定されたテキストファイルに書き込まれます。
このコードスニペットは、複数行のテキストを含むPDFドキュメントを作成し、行の折り返し動作に関する情報を抽出して、ドキュメント内でテキストがどのように配置されているかについての洞察を提供する方法を示しています。
import aspose.pdf as ap
def track_line_breaking():
"""複数行のTextFragmentの行の折り返しを追跡する"""
output_pdf = DIR_OUTPUT_TEXTS + "track_line_breaking.pdf"
output_txt = DIR_OUTPUT_TEXTS + "track_line_breaking.txt"
# 新しいドキュメントオブジェクトを作成
document = ap.Document()
page = document.pages.add()
for i in range(4):
text = ap.text.TextFragment(
"Lorem ipsum \r\ndolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
)
text.text_state.font_size = 20
page.paragraphs.add(text)
document.save(output_pdf)
notifications = document.pages[1].get_notifications()
with open(output_txt, "w") as f:
f.write(notifications)