PDFsharp文件太大了

时间:2018-03-02 15:46:12

标签: selenium pdfsharp

我正在尝试将PNG保存为PDF,但我似乎无法减少文件大小。即使我将文件拆分为3个不同的PDF文档,它们仍然与原始文档大小相同。有没有办法将最终文件大小减小为一个或分成3?我无法弄清楚为什么文件大小是相同的,即使我从935 x 2000减少每个PDF文档它出来大约226 kb。图片来自使用C#硒的网站截图。 ss是我之前拍的截图。任何建议将不胜感激。

        string pic = @"";
        ss.SaveAsFile(pic, ScreenshotImageFormat.Png);

        PdfDocument doc = new PdfDocument();
        PdfDocument doc2 = new PdfDocument();
        PdfDocument doc3 = new PdfDocument();
        XImage image = XImage.FromFile(pic);

        PdfPage page1 = doc.AddPage();
        page1.Width = 935;
        page1.Height = 600;

        XGraphics gfx = XGraphics.FromPdfPage(page1);
        gfx.DrawImage(image, 0, 0, 468, 1000);

        PdfPage page2 = doc2.AddPage();
        page2.Width = 935;
        page2.Height = 600;

        gfx = XGraphics.FromPdfPage(page2);
        gfx.DrawImage(image, 0, -600);

        PdfPage page3 = doc3.AddPage();
        page3.Width = 935;
        page3.Height = 600;

        gfx = XGraphics.FromPdfPage(page3);
        gfx.DrawImage(image, 0, -1200);

        Regex pngRGX = new Regex(@".png");
        string strPDFSave = pngRGX.Replace(pic, "1.pdf");

        doc.Save(strPDFSave);
        strPDFSave = pngRGX.Replace(pic, "2.pdf");
        doc2.Save(strPDFSave);

        strPDFSave = pngRGX.Replace(pic, "3.pdf");
        doc3.Save(strPDFSave);

1 个答案:

答案 0 :(得分:0)

PDFsharp包含PDF中的完整图像,即使图像的一部分在页面上可见(通过更改媒体框也可以看到其他部分)。

如果您想使用三个PDF文件,请在将图像添加到PDF文件之前将其剪切为所需的尺寸。

如果将屏幕截图从935 x 2000缩小到较小的尺寸,生成的PDF也应该变小 - 不确定这是否适合您。

PDFsharp包含所有图像,没有任何质量损失。如果您认为质量下降,请降低代码质量。