2013-10-01 52 views
0

我使用fo.net成功地從xsl-fo模板和xml數據生成單頁發票pdf文檔。 現在我想在一個循環中生成pdf文檔,並將它們寫入Stream,以便將文檔合併爲一個批處理pdf。每當我達到一定數量的文檔時,我將創建一個新的批處理文件並繼續。如何合併使用fo.net生成的pdf文檔(xsl-fo)

我的問題:我生成的PDF文件一個接一個,並追加到批處理文件沒有錯誤,但最終的PDF文件只顯示第一個文檔。文件大小相應地增加了附加數據,但這些頁面未顯示。如果我保存每個單獨的文檔,它們都可以,每個文檔一頁。但打開結果文件時,附加到文件流的相同文檔不可見。

我試着用fo:simple-page-masterfo:page-sequence-masterfo:repeatable-page-master-reference,沒有成功。據我搜索,我猜fo.net不打算用這種方式。

我的問題是這樣的:有沒有辦法將pdf內容附加到現有的pdf文件(或流)fo.net?或者它根本無法完成?

在繼續實施另一個解決方案之前,我想確認一下,比如使用一些免費工具合併現有的pdf文檔(我現在最好的候選人是PDFtk)。

另一個可行的解決方案可能是生成包含多個頁面的轉換後的xsl-fo,但我不喜歡這種性能方面的方法。中間文件會很好。我寧願一次只保留一頁內存。

也許我對這個問題的全面解決方法是錯誤的,我會很感激一些想法。我的環境:.NET 4.0Visual Studio 2010

回答

1

除非您有非常聰明的應用程序,否則連接PDF可能是錯誤的方法。理由:圖像和字體可以在每個文檔中重複使用,使得生成的文件非常龐大。更糟糕的是,我看到一個字體表破壞其他應用程序的應用程序,並且只有最後一個文檔中附加的最後一個文檔中的字符。某些產品有更好的方法,但沒有任何限制。

請參閱http://www.renderx.com/solutions/large_report_formatting.html瞭解如何使用一個XSL FO處理器完成此操作。不確定你可以接受你的想法。 RenderX可以在「追加」模式下處理XSL FO,在保留圖像和字體信息的同時輸入和輸出結果,以建立適當的輸出。也許你的選擇有一個相似的模式。

+0

感謝@Kevin Brown提供有趣的鏈接和信息。我正在尋找一個免費的解決方案,但RenderX和VDPMill是一個考慮可伸縮性的選項,我會看看。 – Diana

相關問題