PyPDF2 を使用して、PDF ファイルのページを再フォーマットしています。私の目標は、ソース PDF ファイルから 2 ページを取得し、これらのページが 1 つの横向きページに収まるように縮小された新しい PDF ファイルを出力することです。私は次のコードを使用しています:
import PyPDF2
with open('test.pdf', 'rb') as infile:
reader = PyPDF2.PdfFileReader(infile)
first = reader.getPage(0)
second = reader.getPage(1)
target_page = PyPDF2.pdf.PageObject.createBlankPage(width=841.89, height=595.276)
scale = 595.276/841.89
target_page.mergeScaledTranslatedPage(first, scale, 0, 0)
target_page.mergeScaledTranslatedPage(second, scale, 841.89/2, 0)
writer = PyPDF2.PdfFileWriter()
writer.addMetadata(reader.documentInfo)
writer.addPage(target_page)
with open('wrong.pdf', 'wb') as outfile:
writer.write(outfile)
出力は私の予想とほぼ一致しますが、カーニングが悪く、いくつかの特殊文字が正しく表示されない別のフォントを使用しているようです。私は PDF 形式の内部構造に詳しくないので、何が原因なのかわかりません。
コンテンツをソースとまったく同じ方法で (縮小する以外は) 表示するにはどうすればよいですか?