【问题标题】:PDFsharp file size too bigPDFsharp 文件太大
【发布时间】:2018-03-02 15:46:11
【问题描述】:

我正在尝试将 PNG 保存为 PDF,但似乎无法减小文件大小。即使我将文件拆分为 3 个不同的 PDF 文档,它们的大小仍然与原始文档相同。有什么方法可以将最终文件大小减小为 1 或拆分为 3?即使我将每个 PDF 文档从 935 x 2000 减小到大约 226 kb,我也无法弄清楚为什么文件大小是相同的。图片来自使用 C# 的 selenium 的网站截图。 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);

【问题讨论】:

    标签: selenium pdfsharp


    【解决方案1】:

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

    如果您想处理三个 PDF 文件,请在将图像添加到 PDF 文件之前将它们剪辑到所需的尺寸。

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

    PDFsharp 包含所有图像而不会损失任何质量。如果您可以接受质量损失,请降低代码中的质量。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    相关资源
    最近更新 更多