iTextSharp可以壓縮PDF文件嗎?我正在尋找可用於開發的PDF庫,以壓縮PDF文件。基本上,我有一個文件夾列表,其中包含大小從1MB到10MB的許多PDF文件,這些文件夾的數量每天都在不斷增加,因此爲了節省磁盤空間,我希望能夠在PDF文件中讀取一次它已被處理,壓縮,然後將其保存到指定的文件夾位置。iTextSharp處理PDF壓縮嗎?
如果iTextSharp不支持壓縮,是否有人對其他.NET PDF庫有建議?購買圖書館不會成爲問題。我查看了許多免費的,例如PDFSharp,這對我來說在製作PDF時非常有用,但無法呈現或壓縮它們。
有一個偉大的答案,我從克里斯·哈斯在計算器閱讀:
PdfStamper是最終使用名爲PdfStamperImp做的大部分工作的另一個類的輔助類。 PdfStamperImp派生自PdfWriter,當您使用stamper.Writer時,您實際上已經獲得了此實現類。 PdfStamper上的許多屬性也直接傳遞給實現類。所以這兩個電話實際上是做同樣的事情。
stamper.SetFullCompression();
stamper.Writer.SetFullCompression();
另一個混淆之處是SetFullCompression和CompressionLevel根本就沒有關聯。 「完全壓縮」表示在PDF 1.5中添加的一項稱爲「對象流」的功能,該功能允許將PDF對象分組在一起,以便進行更大的壓縮。實際上並沒有要求我們認爲「壓縮」實際上發生,但實際上我認爲它總會發生。 (可能一個超級簡單的文件可能會變得更大,這個啓用,不確定,不想測試。)
CompressionLevel實際上是你通常認爲的壓縮,從0到9或-1的數字意味着默認(目前等於六我認爲)。該屬性實際上是許多類最終派生自的PdfStream類的一部分。但是,此設置不會「滴流」。由於您通過GetPageContent()和SetPageContent()從另一個位置導入流,因此特定流具有與Writer的壓縮設置無關的自己的壓縮設置。實際上有第三個參數可以傳遞給SetPageContent()來設置特定的壓縮級別。reader.SetPageContent(1, reader.GetPageContent(1), PdfStream.BEST_COMPRESSION);
https://stackoverflow.com/a/22028008/2063134
任何幫助或建議,將大大讚賞。
謝謝。
您是否嘗試過@Chris'answer?的建議?它的壓縮效果不夠好嗎? – mkl