注釈を処理する必要がないため、PDF 辞書を分解してページ コンテンツをデコードできる任意の PDF ライブラリを使用してみることができます。ページのコンテンツを取得したら、ページの先頭に変換行列を挿入できます: [ cos θ sin θ −sin θ cos θ 0 0 ]
AdobeのPDF リファレンス ドキュメント、特に変換マトリックスに関するセクションを参照することをお勧めします。
たとえば、次のページ コンテンツ オブジェクト (40 0 obj) があるとします。
10 0 obj % Page object
<< /Type /Page
/Parent 5 0 R
/Resources 20 0 R
/Contents 40 0 R
>>
endobj
40 0 obj % Page content
BT
/F1 1 Tf
12 0 0 12 100 600 Tm
(Hello) Tj
ET
endobj
cos(45)=sin(45)=0.7 と仮定して、ページ全体を 45 度回転すると、結果のページ コンテンツは次のようになります。
40 0 obj
0.7 0.7 -0.7 0.7 0 0 cm
BT
/F1 1 Tf
12 0 0 12 100 600 Tm
(Hello) Tj
ET
endobj
変換マトリックスの追加が完了したら、PDF ファイルを再構成できます。選択したライブラリは、必要に応じて圧縮フィルターとエンコード フィルターを追加する必要があります。
たとえば、iText は PDF ファイルを分解および再構成できます。詳細については、メソッド PdfReader.getPageContent を参照してください。