2009-07-08 749 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

相关问题