簡體   English   中英

我可以將現有的iTextSharp文檔轉換為字節數組嗎

[英]Can I convert a pre-existing iTextSharp Document to a byte array

有多種解決方案可用於創建iTextSharp文檔,然后返回與該文檔的創建相關聯的內存流對象,但是有沒有辦法將先前存在的iTextSharp文檔轉換為內存流或字節數組?

// convert the PDF Document to a byte array 
public byte[] ToByte (Document pdf_doc)
{
    byte[] rtn_array = null;
    **// what goes here, something using PdfReader ???**
    return rtn_array;
}

有沒有辦法將現有的iTextSharp文檔轉換為內存流或字節數組?

沒有。

在版本7之前的iText(Sharp)的體系結構中, Document是一個僅有的外觀類,它知道一些格式設置信息(默認頁面大小,邊距等),並且可以為其提供抽象的文檔部分(段落,表格等),它轉發給已注冊的偵聽器類,這些類使它們成為輸出格式的實體,並將它們寫出到流中,並立即幾乎忘記了它們。

(在版本5之前,iText發行版還包含用於創建RTF的類!但是即使對於版本5.x,您也可以注冊自己的偵聽器,以將抽象文檔部分轉換為您選擇的內容。)

因此,有效地序列化和反序列化iText Document (如果可能)只能恢復某些抽象文檔格式,而不能恢復任何具體內容。 但是,即使那樣也不被支持。


與帶有Document類的庫將整個內容的模型保存在內存中相比,iText專為高吞吐量,大尺寸,低占用空間的服務器應用程序而設計。

您可以將其與XML DOM與XML SAX之間的區別進行比較。 可以將iText與SAX(或StAX)進行比較,在SAX(或StAX)中,庫僅了解很少的文檔,而DOM在內存中具有完整的文檔表示形式。


你能做什么,當然是有登記的PdfWriter寫入一個MemoryStream ,你以后可以通過閱讀PdfReader ,並通過操縱PdfStamper 但是我認為那不是您的想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM