如何在内存中而不是在物理上使用 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 输出文件某些方面所必需的。有关详细信息,请参阅文档。