2010-07-27 82 views
1

我正在做的是從數據庫中生成pdf小冊子。我需要用頁碼生成一個內容表。例如,有兩個章節,就像頁碼:使用itextsharp生成內容列表

=============================

內容表

第1章----- 3

第2章----- 17

======================= ======

文本「第1章-----」是正常的段落。但頁碼「3」必須使用PdfTemplate生成,因爲它只能在以後知道。但pdfTemplate絕對定位。我怎麼知道在哪裏定位PdfTemplate?我對嗎?我怎麼能解決這個問題,或者我應該使用其他方法?

回答

1

我已經提取了一些代碼讓你在路上。此代碼允許您使用x和y在頁面上的任何位置放置文本。你可能真的想使用iTextSharp的內置段和利潤的支持,但是這將是有用的,只是需要converting to C#

Dim stamper As PdfStamper 
Dim templateReader As PdfReader = New PdfReader(yourFileName) 
Dim currentPage As PdfImportedPage = stamper.GetImportedPage(templateReader, 1)  
stamper.InsertPage(1, PageSize.A4) 
Dim cb As PdfContentByte = stamper.GetOverContent(1) 
cb.AddTemplate(currentPage, 0, 0) 

看你要添加的每個元素這下位..

cb.BeginText() 
cb.SetFontAndSize(bf, 12) 
cb.SetColorFill(color) 'create a color object to represent the colour you want 
cb.ShowTextAligned(1, "Content Table", x, y, 0) 'pass in the x & y of the element 
cb.EndText() 
+0

喜Markive, 該代碼可以幫助我更好地理解itextsharp。但我仍然不知道該怎麼做。我沒有原始文件。我重寫了這個問題,並希望它能更好地顯示我的問題。謝謝。 – 2010-07-27 14:31:27

+0

在我的例子中,這是針對絕對定位的文本。如果您想在運行時生成封面,它會更有用。這是我用它的。我拿一個PDF封面並添加文本。我與iTextSharp奮鬥了很長時間,但上面的代碼在我的場景中能夠適應做我想要的一切。我有一個配置文件,其中包含我想要與顏色,文本和x&y值一起放入的所有元素,併爲我提供了完美的PDF。 – Markive 2010-07-27 15:03:18

+0

您想使用段落,以便您可以從數據庫獲取所有文本,並讓iTextSharp爲您執行格式設置。 嘗試這樣的事情:http://www.mikesdotnetting.com/Article/82/iTextSharp-Adding-Text-with-Chunk-Phrases-and-Paragraphs – Markive 2010-07-27 15:04:13