我有一堆PDF,我只是想打开,调整页面大小,然后保存。我也希望文件大小会显着缩小。我正在使用iTextSharp并且调整大小工作正常,但文件大小几乎相同,实际上稍大一点。这是我现在的功能:
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()
有没有人知道我可能缺少什么才能真正降低文件大小?
感谢。
答案 0 :(得分:2)
缩小页面大小只会缩小页面大小;您没有删除任何内容,因此文件大小不会更改。
有三种方法可以减小文件大小;删除内容,确保压缩文本对象,和/或确保图像有效。
通过高效的图像,我的意思是图像并不比它们需要的大,并且使用了正确的压缩类型。你可以使用一个巨大的图像,比如1800像素宽,并在pdf中将其缩放到2.5英寸。如果你这样做,它仍然是1800像素宽,即使它显示为2.5英寸宽。你可以减少文件通过调整图像大小来调整大小 - 在这种情况下,对于300 dpi打印分辨率,它只需要750像素宽。对于标准pdf 72 dpi分辨率,您只需要一个202像素宽的图像。
许多生成pdfs的程序会自动使用jpeg。如果图像是2色,如发票或支票扫描,使用带有G4压缩的tiff将比jpeg的文件大小小得多。