C# GhostScript PDF压缩-PDF大小增加问题

C# GhostScript PDF压缩-PDF大小增加问题,c#,asp.net,pdf,ghostscript,C#,Asp.net,Pdf,Ghostscript,我正在尝试使用带有GhostScript的Asp.Net应用程序压缩PDF文件。但不知怎的,我无法获得一些PDF的成功输出 重影脚本应用程序详细信息 版本:9.19 名称:gswin64c.exe 请查看下面提到的问题。 我的问题是,对于一些PDF来说,ghost压缩技术并没有很好地工作,反而增加了文件大小 例如,请看一下这个(这里我添加了一些输入和输出文件,我已经用应用程序测试过了) 案例1:PDF压缩未按预期工作。 这里B_BeforeCompression.pdf(其大小为369KB)是源

我正在尝试使用带有GhostScript的Asp.Net应用程序压缩PDF文件。但不知怎的,我无法获得一些PDF的成功输出

重影脚本应用程序详细信息

版本:9.19

名称:gswin64c.exe

请查看下面提到的问题。

我的问题是,对于一些PDF来说,ghost压缩技术并没有很好地工作,反而增加了文件大小

例如,请看一下这个(这里我添加了一些输入和输出文件,我已经用应用程序测试过了)

案例1:PDF压缩未按预期工作。

这里B_BeforeCompression.pdf(其大小为369KB)是源pdf,当我使用GhostPDF压缩技术压缩它时,它实际上会增加其大小B_AfterCompression.pdf(其大小为473KB)

案例2:PDF压缩工作正常

这里是一个_BeforeCompression.pdf(其大小为1458 KB),当它被压缩时,输出的pdf被生成为_AfterCompression.pdf大小为286 KB

我的问题是,为什么会出现相反的情况(一种技术可以处理一个PDF,但不能成功地处理另一个PDF)


请给我一个可能的解决方案,使PDF压缩与所有PDF文件兼容。

Ghostscript永远不会压缩PDF文件。请参阅本节中的概述

Ghostscript pdfwrite设备的作用是生成一个新的PDF,该设备的目标是,无论输入采用何种格式,PDF文件的视觉外观都应与输入的外观相同(最初的PostScript现在可以使用PostScript、PDF、PCL、PXL和XPS输入,取得不同程度的成功)

PDF解释器和pdfwrite设备的工作方式可能是新文件比原始文件小,特别是如果您对输入使用积极的处理,例如对任何图像的分辨率进行降采样。但是,正如您所发现的,这并不能保证


因此,没有“能够使PDF压缩与所有PDF文件兼容的解决方案。”

如果输入文件已经“压缩”,您凭什么相信pdfwrite gs设备实际上进行了任何“压缩”从某种意义上说,gs应该如何变小呢?你不能说它是关于类似pdf格式的位图图像-压缩取决于其中一条评论中描述的内容there@StefanHegny感谢您的回复…案例2让我相信上述代码可以压缩PDF文件。非常感谢您的时间和帮助ear解释。你能推荐任何其他能够以合理的成功率进行PDF压缩的工具吗?不,没有线索。你为什么认为甚至可以“压缩”PDF文件?任何可以压缩的文件(不丢失信息)在这种情况下,我会考虑构建新的PDF创建软件。在运行GHESTScript之后,文件之所以较大,是因为原始文件不包含它所需的字体。当处理这个输入时,GHOSTScript将找到替代字体来代替丢失的字体。,并且输出包含嵌入在PDF文件中的替换字体。由于输出文件仅比输入文件大3kB,并且包含所有字体,很明显它是“压缩”的。当然,外观现在是不正确的,但当您使用字体而不嵌入字体时会发生这种情况。感谢您提供的所有宝贵信息n、 我非常感谢您的时间。我寻找压缩技术的原因是,我生成了包含250多页的动态PDF。为了减少PDF呈现时间,我认为压缩PDF可能会产生积极的影响。但是,我同意您的建议,继续进行。压缩PDF将使渲染速度较慢,因为解压缩压缩流然后解释和渲染显然比简单解释和渲染需要更长的时间。为了减少渲染时间,您需要分析文件并查看渲染哪些内容需要时间。可能的原因包括透明度(最有可能也是资源的巨大消耗者)、着色模式和校准颜色。您可以使用Ghostscript禁用透明度,但显然输出将不正确(除非文件包含“伪”透明度)。
 "-sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile="OutputPDF" "InputPDF";