2017-11-16 22 views
0

私はitext7を使ってPdfsを作成しています。私は段落を最初のページに追加することができますが、どのようにして2ページ目にコンテンツを追加できますか分かりません。 AddNewPage()を呼び出した後にCanvasを作成するとうまくいきますが、段落を使用してドキュメントに追加すると機能しません。手伝ってくれてありがとう。私の例では、firstPageTextとsecondPageTextは、最初のページに表示されます。c# - itext7 - 新しいページにテキストを追加するには?

protected void CreatePdf(string filePath, string firstPageText, string secondPageText) 
    { 
     PdfWriter writer = new PdfWriter(filePath); 
     PdfDocument pdfDocument = new PdfDocument(writer); 
     Document doc = new Document(pdfDocument); 

     doc.Add(new Paragraph(firstPageText)); 
     pdfDocument.AddNewPage(); 
     doc.Add(new Paragraph(secondPageText)); 

     doc.Close(); 
    } 

答えて

1

これはiText 7: Building Blockschapter 2に説明されています。私はそのチュートリアルのスニペットをコピーすることを許可する:

我々はタイプNEXT_PAGEAreaBreakを使用していた場合は、新しいページが開始されていました。図2.11を参照してください。 JekyllHydeV5 例で

enter image description here

、我々は、単一の行に変更:代わりに次の列へスキップする

AreaBreak nextPage = new AreaBreak(AreaBreakType.NEXT_PAGE); 

を、iTextのは、今次 ページにスキップします。

既定では、新しく作成されたページは、現在のページ と同じページサイズになります。 iTextで別の のページを作成したい場合は、オブジェクトを受け入れるコンストラクタをパラメータ として使用できます。たとえば、new AreaBreak(PageSize.A3)です。

LAST_PAGEAreaBreakもあります。このAreaBreakType は、異なるレンダラを切り替えるときに使用されます。

それはあなたがこれを行うだろうと私に驚き:文書化の方法はこのようにそれを行うことですが

doc.Add(new Paragraph(firstPageText)); 
pdfDocument.AddNewPage(); 
doc.Add(new Paragraph(secondPageText)); 

を:

doc.Add(new Paragraph(firstPageText)); 
doc.Add(new AreaBreak(AreaBreakType.NEXT_PAGE)); 
doc.Add(new Paragraph(secondPageText)); 
+0

おかげブルーノ、私はちょうどiText7で作業を開始しています – Piotr

関連する問題