2009-07-08 164 views
4

我有一堆PDF,我只是試圖打開,調整頁面大小,然後保存。我也希望文件大小會顯着縮小。我正在使用iTextSharp並且調整大小工作得很好,但文件大小几乎相同,實際上稍大一些。這裏是我現在的功能:如何使用iTextSharp調整pdf的大小

Dim reader As New PdfReader(inPDF) 
    Dim doc As New Document(PageSize.LETTER) 
    Document.Compress = True 
    Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream(outPDF, FileMode.Create)) 
    doc.Open() 
    Dim cb As PdfContentByte = writer.DirectContent 

    Dim page As PdfImportedPage 
    For pageNumber As Long = 1 To reader.NumberOfPages 
     page = writer.GetImportedPage(reader, pageNumber) 
     cb.AddTemplate(page, PageSize.LETTER.Width/reader.GetPageSize(pageNumber).Width, 0, 0, PageSize.LETTER.Height/reader.GetPageSize(pageNumber).Height, 0, 0) 
     doc.NewPage() 
    Next pageNumber 
    doc.Close() 

有沒有人知道我可能會錯過實際獲得文件大小?

謝謝。

回答

2

減小頁面的大小隻會減小頁面的大小;你不刪除任何內容,所以文件大小不會改變。

有三種方法可以減小文件大小;刪除內容,確保文本對象被壓縮,和/或確保圖像有效。

通過高效的圖像,我的意思是圖像不會比他們需要的大,並且使用正確的壓縮類型。您可以使用1800像素寬的巨大圖像,並將其縮放到2.5英寸,如果這樣做,即使顯示爲2.5英寸寬,它仍然是1800像素寬,您可以縮小文件通過調整圖像大小 - 在這種情況下,對於300 dpi的打印分辨率,它只需要750像素寬。對於標準pdf 72 dpi分辨率,您只需要202像素寬的圖像。 pdfs會自動使用jpeg,如果圖像是2色,比如發票或支票掃描,那麼使用TIFF格式的G4壓縮文件會比JPEG格式文件大小要小得多

+0

我要從這裏推斷並說實現我的目標,然後,我需要提取圖像,然後操縱它,並將它們放回到一個新的PDF中。幸運的是,你可以幫助d地址在這裏的問題:http://stackoverflow.com/questions/802269/itextsharp-extract-images – Ryan 2009-07-09 14:50:34

相關問題