减少.Net中的pdf大小

时间:2017-07-20 13:59:17

标签: c# pdf asp.net-web-api postscript acrobat-sdk

我有一个大小为230KB的pdf模板。在我的WebAPI中为多个用户提供该模板的副本,将数据推送到该用户,并使用iTextsharp库进行合并。对于1500个用户,总文件大小最多可达320 MB。

我尝试使用BitMiracle,它将文件大小减小到160 MB。但它仍然是一个大文件。

我使用acrobat Pro并使用Save as Other选项Reduced Size PDF,它将文件大小减小到25 MB。

我希望使用C#在我的WebAPI中将文件大小减小到25MB,稍后将托管在服务器上。

由于用户不应该编辑PDF,他只会将其存储为记录。我可以生成一个后期脚本文件,然后使用acrobat蒸馏器来减小尺寸吗?如果是,我该怎么办?

我正在使用ghostscript.Net。写了这个方法,它没有抛出任何错误。但我无法找到生成的postscript文件的路径

    public void convertToPs(string file)
    {
        try
        {
            Process printProcess = new Process();

            printProcess.StartInfo.FileName = file;
            printProcess.StartInfo.Verb = "printto";
            printProcess.StartInfo.Arguments = "\"Ghostscript PDF\"";
            printProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            printProcess.StartInfo.CreateNoWindow = true;
            printProcess.Start();

            // Wait until the PostScript file is created
            try
            {
                printProcess.WaitForExit();
            }
            catch (InvalidOperationException) { }

            printProcess.Dispose();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

请帮忙

1 个答案:

答案 0 :(得分:0)

模板是否嵌入了字体?可能合并并没有组合这些字体。如果您不需要嵌入字体,则可以删除它们。 Adobe在组合嵌入字体方面做得很好。

如果你想要,你可以发给我这么大的pdf文件,以便我能理解,为什么这个文件变得如此之大。我是一个PDF库的开发人员,获得最小的PDF是我正在研究的一个有趣的用例。