如何在内存中而不是在物理上使用 ghostscript 创建 pdf?
How to create pdf in memory and not physically with ghostscript?
我想在内存中创建我正在创建的 pdf,而不是实际创建的,我不知道如何使用 ghostscript 来完成。
这是我的代码:
string gsPath = @"C:\Program Files (x86)\gs\gs9.26\bin\gswin32.exe";
List gsArgsList = new List();
gsArgsList.Add(" -dPDFA=2");
gsArgsList.Add(" -dBATCH");
gsArgsList.Add(" -dNOPAUSE");
gsArgsList.Add(" -dUseCIEColor");
gsArgsList.Add(" -sProcessColorModel=DeviceCMYK");
gsArgsList.Add(" -sDEVICE=pdfwrite");
gsArgsList.Add(" -dPDFACompatibilityPolicy=1");
gsArgsList.Add(" -sOutputFile=" + nuevo);
gsArgsList.Add(" " + rutaPdfNormal);
var gsArgs = String.Join(null, gsArgsList);
string gs = gsPath + gsArgs;
System.Diagnostics.Process.Start(gsPath, gsArgs);
您不能使用 Ghostscript 在内存中执行此操作,PDF 文件始终写入文件系统。您可以将它存储在 Ghostscript 的 RAM 文件系统中,但这不太可能帮助您完成您正在尝试做的事情。
不要 使用 -dUseCIEColor。
您不是 运行 一个 pdfa_def.ps 文件,它是设置 PDF/A 输出文件某些方面所必需的。有关详细信息,请参阅文档。
我想在内存中创建我正在创建的 pdf,而不是实际创建的,我不知道如何使用 ghostscript 来完成。
这是我的代码:
string gsPath = @"C:\Program Files (x86)\gs\gs9.26\bin\gswin32.exe"; List gsArgsList = new List(); gsArgsList.Add(" -dPDFA=2"); gsArgsList.Add(" -dBATCH"); gsArgsList.Add(" -dNOPAUSE"); gsArgsList.Add(" -dUseCIEColor"); gsArgsList.Add(" -sProcessColorModel=DeviceCMYK"); gsArgsList.Add(" -sDEVICE=pdfwrite"); gsArgsList.Add(" -dPDFACompatibilityPolicy=1"); gsArgsList.Add(" -sOutputFile=" + nuevo); gsArgsList.Add(" " + rutaPdfNormal); var gsArgs = String.Join(null, gsArgsList); string gs = gsPath + gsArgs; System.Diagnostics.Process.Start(gsPath, gsArgs);
您不能使用 Ghostscript 在内存中执行此操作,PDF 文件始终写入文件系统。您可以将它存储在 Ghostscript 的 RAM 文件系统中,但这不太可能帮助您完成您正在尝试做的事情。
不要 使用 -dUseCIEColor。
您不是 运行 一个 pdfa_def.ps 文件,它是设置 PDF/A 输出文件某些方面所必需的。有关详细信息,请参阅文档。