2010-01-11 53 views
1

我有一個基本的PDF文件,我有5個不同的空白內容區域,我想用iTextSharp來寫文本。問題是我不確定實現這一目標的最佳方法。我試圖使用ColumnText來完成這一點,但我似乎無法添加多個ColumnText對象。iTextSharp從硬盤讀取pdf模板並寫入文本

  ColumnText tagColumn = new ColumnText(pdfContentByte); 
      tagColumn.SetSimpleColumn(460, 100, 620, 160); 
      string[] tagColors = bt.DealerTagColor.Split('|'); 
      Font tagFont = FontFactory.GetFont(bt.DealerTagFont, bt.DealerTagSize, Font.NORMAL, new BaseColor(int.Parse(tagColors[0]), int.Parse(tagColors[1]), int.Parse(tagColors[2]))); 
      Paragraph p = new Paragraph(dto.Tag, tagFont); 
      p.Leading = bt.DealerTagSize; 
      tagColumn.AddElement(p); 
      tagColumn.Go(); 

我對ColumnText的喜歡是什麼,它允許我必須定義heigth/width和文本區域的位置。

有關如何使用或不使用ColumnText來完成此任何想法?我只需要控制將允許文本換行的區域的font/fontsize/font color/leading /和width。

回答

3

最簡單的方法是在模板PDF上創建和使用表單域。這樣你就可以通過名字引用一個表單字段並用一個簡單的函數調用來設置它的值。

這篇文章幫助我:

Fill in PDF Form Fields using the Open Source iTextSharp Dynamic Link Library

編輯: PdfPTables?

如果ColumnTexts以表格形式排列,請考慮使用PdfPTable。我使用PdfPTables來填充從空白模板表單生成的表單中的數據行。您需要計算每個列的x座標,並在將PdfPCell添加到表中時使用這些值,但它確實有效。我從來沒有設置一個PdfPCell的高度的上限,但我可以做到這一點。

檢查this page瞭解更多關於PdfPTables的信息。

+0

感謝您的回覆。我不想填寫表單字段,我只是想在PDF上佔據一個區域,比如說100px乘100px,並覆蓋在100乘100的區域內包裝的文本區域 – aherrick 2010-01-11 19:32:35

+0

我想知道您是否可以使用PdfPTable?看我的編輯。 – 2010-01-11 21:23:01