2013-03-07 15 views
1

我剛剛花了一點時間搞清楚如何將利用iText可填寫字段成PdfPTable。通過閱讀這本書並使用Google搜索,我知道應該通過直接內容添加字段,並且因爲我需要將字段添加到正在構建的表中的特定單元格中,所以我應該使用單元格事件來完成此操作。插入表中的可填寫字段[iText的]

爲了提高我的理解,我希望有人能夠證實我們這樣做的原因是因爲PdfPCellEvent給了我們一個Rectangle,它爲我們提供了表格單元格的確切位置?

道歉,如果這似乎是很明顯的 - 我的Java知識已經通過解決具體的要求,而不是學習它以結構化的方式,使可能缺失了一些非常基本的概念建立起來的。

回答

1

PdfPTable/PdfPCell繪製線條和文字到PDF的內容流。

字段是不是內容流的一部分。字段是一個抽象概念,可以通過小部件註釋在頁面上可視化。註釋不是內容流的一部分。它們存儲在從頁面字典引用的PDF字典中(而不是出現在頁面的內容流中)。這些字典包含註釋的座標。

這就是爲什麼你應該使用細胞事件字段添加到表。將表格添加到頁面時,iText會創建一個內容流。 iText不知道每一行和文本片段的座標,直到渲染完成。這是表格和單元格事件被觸發的時候。您可以使用傳遞給事件的座標來創建註釋。

+0

非常感謝您抽出寶貴時間來發布此。並感謝iText!我想通過正確理解我在做什麼來做到正義! – 2013-03-10 11:47:45