Pad*_*ddy 5 c# pdf-generation itextsharp
我目前正在使用iTextSharp转换一些遗留代码来创建PDF文件.我们正在创建一个包含大量图像的大型PDF文件,我正在插入这样的图像:
Document doc = new Document(PageSize.A4, 50, 50, 25, 25);
PdfWriter writer = PdfWriter.GetInstance(doc, myStream);
writer.SetFullCompression();
doc.Open();
Image frontCover = iTextSharp.text.Image.GetInstance(@"C:\MyImage.png");
//Scale down from a 96 dpi image to standard itextsharp 72 dpi
frontCover.ScalePercent(75f);
frontCover.SetAbsolutePosition(0, 0);
doc.Add(frontCover);
doc.Close();
Run Code Online (Sandbox Code Playgroud)
插入图像(20.8 KB png文件)似乎会使PDF文件大小增加近100 KB.
有没有办法在进入前压缩图像(记住这需要合理的打印质量),或进一步压缩整个PDF?我在上面的例子中是否进行了任何压缩?
答案似乎是您需要将PDF规范的适当版本设置为目标,然后按如下方式设置压缩:
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
PdfContentByte contentPlacer;
writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_5);
writer.CompressionLevel = PdfStream.BEST_COMPRESSION;
Run Code Online (Sandbox Code Playgroud)
这大大降低了我的文件大小.我还发现PNG在文档的最终大小方面给了我最好的结果.