我想制作自己的" PDF打印机"使用Ghostscript。
我在互联网上找到的大多数解决方案都涉及像Redmon这样的第三方将PS打印机重定向到Gs可执行文件。
如果没有第三方(除了Gs),有没有办法做同样的事情?
这是我的两个想法:
绕过打印驱动程序并直接通过软件生成Postscript(从GDI到postscript,可能使用自定义设备上下文,如Metafile设备上下文)
以编程方式为要转换的每个文档创建新的本地端口。也许使用这种技术:https://stackoverflow.com/a/1331777/99276
第一种解决方案很棒,但无法找到任何相关信息。
而且我害怕第二个根本没有效率(并且检测文档完全打印时可能会很棘手)
答案 0 :(得分:0)
首先;请注意,Windows打印系统已在Windows Vista及更高版本中进行了重新设计。虽然旧系统仍然可以在WIndows 7和8中运行,但我不确定它在Windows 10中究竟有多可用。在Windows 10中,一切都通过XPS进行,我认为(可能是错误的)通过首先通过XPS生成PostScript
你的第一个想法对我来说听起来似乎不合理。如果您没有打印机驱动程序,如何打印机(并允许您的应用程序打印到打印机)?即使你可以这样做,为什么你要从GDI创建PostScript只是为了将它发送到Ghostscript并让它创建PDF?直接创建PDF会更合理。
在第二种情况下,我不知道如何添加新的本地端口对您有所帮助。端口只是打印机驱动程序输出的指向。端口监视器(RedMon是一个端口监视器)的作用是重定向发送到端口的数据流,并做一些事情'用它。在Ghostscript + RedMon的情况下,'某些东西'是创建一个PDF文件。
我不清楚为什么你不想使用RedMon,因为你显然对使用Ghostscript很满意。但是,如果您真的不想这样做,那么请编写自己的端口监视器。该过程记录在Windows设备驱动程序开发工具包中,并不是特别难。如果您遇到困难,您甚至可以将RedMon代码作为指南。例如,请参阅here