使用C#创建Postscript格式文档

4

是否有可用的API可以使用C#直接编写到postscript格式?我目前正在使用pdfnet将文档编写为PDF,然后使用Adobe将其导出为postscript。但是,在转换过程中会丢失质量,我需要直接转换为postscript并跳过创建PDF。

该文档包含一个图像,上面覆盖了一些文本。

3个回答

3
你知道如何在C#中使用文件吗?一个非常简单的方法是让你的程序创建一个新的 ofstream 或者 C# 中叫它什么,将其命名为 whatever.ps,并将字符串附加到该文件中。学起来真的很容易,但如果你要这样做,我建议实际获取 Postscript 语言参考手册的印刷副本。即使你可以免费获取电子版本,但除非你有多个显示器,否则它真的不如印刷副本有用。
例如,在 C++ 中绘制一个居中于一张纵向信纸大小的纸上且边长为1英寸的正方形,我会像这样做:
myFile << "%!PS-Adobe-2.0 \n" //header block
       << "%%Creator: INSERT YOUR NAME HERE \n"
       << "%%Title: FILENAME.ps \n"
       << "%%Pages: 1 \n"
       << "%%PageOrder: Ascend \n"
       << "%%BoundingBox: 0 0 612 792 \n"
       << "%%DocumentPaperSizes: Letter \n"
       << "%%EndComments \n"

myFile << "<< /PageSize [612 792] >> setpagedevice \n" //page setup
       << "396 306 translate \n" //set (0,0) to center of page

myFile << "-36 -36 72 72 rectfill \n" //the rectangle at last!

虽然您需要将其翻译成您使用的任何语言,但为了更易读,您可能需要将标题块放入自己的函数中。实际上,除了标题块外,每个字符串末尾甚至不需要换行符。


2
糟糕的回答,首先非常傲慢,其次是该答案与问题没有任何关联,此外还试图使用与问题指定语言不同的语言来回答它。 - Mark
具有讽刺意味的是,这是我在这个问题上看到的最明智的答案之一。 Postscript是一种非常特定的语言,编写某种API只是为了让它转换并输出Postscript几乎是毫无意义的。如果您想要postscript输出,并且不想从您已经拥有的某些图形格式进行转换,则可能需要直接生成postscript。 http://paulbourke.net/dataformats/postscript/然而,使用API的好处在于您可以调用语言函数,而无需查找PS等效函数,但我还没有在任何地方看到这样的API。 - JamesHoux

1

您可能想尝试不同的解决方案来转换PDF。例如,Ghostscript将允许您指定分辨率等。此外,如果最终目的地是打印,许多打印机现在支持直接PDF打印,这可能有助于解决问题。


我曾考虑过采用这种方法,最终可能会选择这种方式。实际上,最终产品是PDF格式的,但客户要求我通过Distiller发送后置文件以创建PDF。我不确定技术原因是什么,但客户说这是印刷厂所需的。 - doclove
你可以尝试将文件发送到印刷店,看看他们是否能够处理它。这可能会解决你所有的问题。 - Andrew Cash

0

我看过这个,但似乎在字体方面有一些限制。我使用一些自定义字体,在Cairo中似乎需要实现一些额外的库才能处理非标准字体。 - doclove
1
如果您不介意使用C语言,那么http://pslib.sourceforge.net/可能会有所帮助。不幸的是,它没有c#绑定。此外,http://www.unifont.org/lasi/提供更多字体支持,但仅限于C++。 - Andrew Cash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接