2017-02-14 8 views
-1

私はすべてのPDFの最初のページにitextを使用してスタンプする必要があるモジュールで作業しています。 コードは、通常のPDFの私は、ポートフォリオのpdfファイルのために同じロジックをしようとしたときのために.Belowが同じのためのコードスニペットで正常に動作しているものの:itextを使用してポートフォリオpdfの最初のページをスタンプする

try { 

     PdfReader reader = new PdfReader("D:\\Test\\test.pdf"); 
     System.out.println(reader.getNumberOfPages()); 

     PdfStamper stamper = new PdfStamper(reader,new FileOutputStream("D:\\Test\\test_stamped.pdf")); 



     PdfContentByte canvas = stamper.getOverContent(i); 

     PdfDictionary root = reader.getCatalog(); 

     canvas.beginText(); 
     BaseFont baseFont = BaseFont.createFont(BaseFont.HELVETICA_BOLD, "ASCII", false); 
     canvas.setFontAndSize(baseFont, 14); 
     canvas.setRGBColorFill(255, 0, 0); 
     canvas.showTextAligned(PdfContentByte.ALIGN_CENTER, "Test Stamping-Pg"+i, 30, 1, 0); 
     canvas.endText(); 

     stamper.setFormFlattening(true); 
     stamper.close(); 
     reader.close(); 
     System.out.println("Stamping complete.."); 

    } catch (Throwable t) { 

     t.printStackTrace(); 
    } 

、誰もがそれのために私を助けることができればそれは非常に参考になります。

+0

何が起こっているのか、起こっていないのですか? – Sid

答えて

1

準拠した読者は最初のコレクションを含むPDFドキュメントを開くとPDFの仕様ISO 32000-1(「ポートフォリオ」は「ポータブルコレクション」と呼ばれている)、

によると、それが表示するものと最初の文書の内容と、EmbeddedFiles名前ツリー内に存在する文書のリストを示します。ドキュメントリストには、コレクションスキーマによって指定された追加のドキュメント情報が含まれます。最初の文書は、コンテナPDFまたは埋め込み文書の1つであってもよい。

注記2最初のドキュメントのページコンテンツには、タイトルや紹介段落など、コレクションに含まれる内容を理解するのに役立つ情報が含まれている必要があります。

初期文書がコンテナ文書が、含まれているものではない場合にはこのように、あなたは文書含有エキスを持って、それを操作し、コレクション内のあなたの操作バージョンと元のバージョンを置き換えます。

あなたは初期文書がコンテナ文書が、コレクションの辞書を検査することにより含まれる1つでないかどうかを確認することができます。

表155 - コレクション辞書のエントリ

D バイト文字列 (オプション)のエントリを識別する文字列埋め込みファイル名前ツリー、d最初にユーザインタフェースに表示される文書を表示する。 Dのエントリがないか間違っている場合、最初のドキュメントはコレクション辞書を含むドキュメントになります。

関連する問題