在嵌入式平台上以编程方式从 PS 创建 PDF

Creating PDF from PS programmatically on embedded platform

是否有可以在 C/C++ 中使用的 library/tool 将 PS(post 脚本)文件转换为 . PDF 文件,在嵌入式平台上(专有操作系统,无 windows,无 linux)?

我正在寻找可以移植到我们 OS 的某种库。我基本上只找到了 Ghostscript,但是许可证有问题,如果我理解正确,我们将不得不制作我们的源代码 public,这对我们来说是不可能的...

也许有更多的背景知识,我们正在努力寻找用户可以轻松查看的格式。由于其他原因(打印机),我们已经在 PS 中有了输出。但是现在我们想自己在文件中提供这个输出,所以我们试图找到可行的文件格式。我们正在考虑 PS 本身,但普通用户没有 PS 查看器,所以这就是为什么我试图找到将其转换为 PDF 的原因。 所以也许另一个问题是,是否有其他格式可以很容易地从 PS 获取,以便 "regular" 用户可以查看它?

Ghostscript 的 AGPL 许可证要求您开放源代码,是的。但是 Ghostscript 是双重许可的,除了 AGPL 许可之外,您还可以购买商业许可,不需要您开源自己的代码。

当然,除了转换为 PDF 之外,您还可以简单地使用 Ghostscript 将 PostScript 呈现为位图,通常很容易让查看器围绕着它。

我应该指出,还有其他公司提供 PostScript 解释器的商业许可,这些解释器能够创建 PDF 文件 and/or 呈现 PostScript。 Adobe 是显而易见的,还有 Global Graphics。

现在这个领域的玩家已经不多了,如果你想搞PostScript,AGPL之类的license不适合你,那你就得商业化了。

将 PostScript 转换为其他语言的主要复杂性在于 PostScript 是一种编程语言,而 PostScript 文件实际上是在打印机上执行的程序。

与 PostScript 相比,PDF 不是一种编程语言。将 PostScript 转换为 PDF(或其他任何格式)时,您实际上必须 运行 PostScript 程序并记录在 PostScript 程序执行期间执行的图元调用。

当您想将 PostScript 程序从任何来源转换为 PDF 时,需要这种通用方法。

但是您写道,您正在自己创建 PostScript 代码。也许您的 PostScript 程序只是对绘图基元的线性调用序列,并且不使用任何类似子例程或控制结构的东西。

如果不是,更改生成器以在创建时执行那些当前在打印时执行的计算可能很容易。您最终会以线性顺序调用绘图基元。

当打印时没有更多的计算时,直接创建 PDF 而不是 PostScript 应该不会太难。 answer 提到了一个使用 MIT 样式许可证的开源 PDF 生成库。