PDFsharp 无法提供良好的压缩效果

问题描述 投票:0回答:1

我正在开发一个针对 .NET v8 的控制台应用程序。我正在使用 PDFsharp nuget package 来生成 PDF 文件。我使用下面的代码来压缩 75 KB 的 PDF 文件。 PDF 文件主要包含文本。

using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;

using (var stream = new MemoryStream(File.ReadAllBytes("D:\\test.pdf")) { Position = 0 })
using (var source = PdfReader.Open(stream, PdfDocumentOpenMode.Import))
using (var document = new PdfDocument())
{
    var options = document.Options;
    options.FlateEncodeMode = PdfFlateEncodeMode.BestCompression;
    options.UseFlateDecoderForJpegImages = PdfUseFlateDecoderForJpegImages.Automatic;
    options.CompressContentStreams = true;
    options.NoCompression = false;
    options.EnableCcittCompressionForBilevelImages = true;

    foreach (var page in source.Pages)
    {
        document.AddPage(page);
    }

    document.Save("D:\\testout.pdf");
}

我得到的输出文件大小为 73 KB。所以我只减少了 2 KB。有什么方法可以通过压缩来显着减小其大小吗?

c# pdfsharp
1个回答
0
投票

启用

PdfFlateEncodeMode.BestCompression
通常会将大小减小约 2% 至 5%。

使用默认设置,内容已“压缩”。最佳压缩更有效,但速度更慢。

PDFsharp 尚不支持对象 XREF 流,因此其他库也许能够创建更小的文件而不会造成损失。

© www.soinside.com 2019 - 2024. All rights reserved.