Ghostscript 在压缩后增加了文件大小

Ghostscript is increasing file size after compressing

我使用以下方法压缩pdf:

private bool CompressPDF(string Input, string Output, string CompressValue)
        {
            try
            {
                Process proc = new Process();
                ProcessStartInfo psi = new ProcessStartInfo();
                psi.CreateNoWindow = true;
                psi.ErrorDialog = false;
                psi.UseShellExecute = false;
                psi.WindowStyle = ProcessWindowStyle.Hidden;
                psi.FileName = string.Concat(Path.GetDirectoryName(Application.ExecutablePath), "\ghost.exe");


                string args = "-sDEVICE=pdfwrite -dCompatibilityLevel=1.4" + " -dPDFSETTINGS=/" + CompressValue + " -dNOPAUSE  -dQUIET -dBATCH" + " -sOutputFile=\"" + Output + "\" " + "\"" + Input + "\"";


                psi.Arguments = args;


                //start the execution
                proc.StartInfo = psi;

                proc.Start();
                proc.WaitForExit();


                return true;
            }
            catch
            {
                return false;
            }
        }

我默认将pdf设置放在“打印机”上。我不明白为什么我的 pdf 文件的文件大小有时会增加。

Ghostscript(更准确地说是它的 pdfwrite 设备)不 'compress' 文件。

通过明智地使用设置(例如缩减图像采样以换取文件大小的质量),有可能生成更小的文件,但绝对不能保证一定是这种情况。

在没有看到输入文件的情况下,无法评论文件大小增加的原因,但是(例如)PDF 1.5 文件可以使用压缩流和外部参照,而 pdfwrite 设备从不使用这些,所以这可能是一个原因。

罐头 'PDFSETTINGS' 涵盖了大量不同的控件,您应该阅读这些控件并了解实际发生的情况。如果您的原始文件碰巧已经用质量换取大小,那么打印机设置(相当保守)很可能根本不会做任何事情。