我正在使用iText(特別是iTextSharp 4.1.6),並且我想通過組合來自現有PDF的頁面創建PDF,但也插入從圖像創建的新頁面。iText - 如何將頁面添加到使用PdfCopy創建的文檔
我得到了這兩個部分分別使用PdfCopy和PdfWriter分別工作。從圖像中創建一個頁面的代碼如下所示:
PdfWriter pw = PdfWriter.GetInstance(doc, outputStream);
Image img = Image.GetInstance(inputStream);
doc.Add(img);
doc.NewPage();
現在,由於PdfCopy從PdfWriter繼承,我想我應該能夠添加使用相同的技術,例如「圖像」我PdfCopy對象,但它不起作用(如果你在上面的例子中實例化一個PdfCopy而不是PdfWriter,那麼頁面上沒有任何東西出現)。
從源代碼的快速瀏覽我注意到,當PdfCopy的contstructor調用超類的構造函數時,它使用新的Document對象,而不是傳入的,所以我想這就是原因。
有沒有更好的方法來解決這個問題?目前我最好的猜測是使用PdfWriter從圖像中創建一個頁面Pdf,然後使用PdfCopy將其添加到文檔中,但這似乎有點解決方法。
你身邊描述爲一個工作,我什麼似乎是一個妥善的解決辦法。 PdfCopy設計用於合併多個PDF文件,並將其應用到您以前存在的PDF文件中,並將其應用於您的新文件。如果圖像不太大,可以在內存中創建該PDF(byte [])並從那裏讀取;因此,甚至不需要額外的臨時文件。 – mkl
謝謝 - 我不太熟悉iText,它看起來如此全面,我只是不確定是否有其他方式來完成此操作。我已經實現了它在內存中創建臨時PDF,並且它的所有工作都很可愛:-) – Andy