将打印输出捕获为矢量格式(PDF,SVG,EMF等)

时间:2009-07-23 14:51:57

标签: graphics printing driver capture vector

背景

  • 我在创建绘图的窗口上使用商业应用程序
  • 此应用程序仅允许两个输出选项:(1)另存为位图文件和(2)打印到打印机
  • 位图对我来说没用 - 我想要矢量
  • 查看打印输出(我发送到Windows XPS打印驱动程序),根据我可以做的缩放量,似乎很清楚,而不会丢失基础向量发送到打印驱动程序的详细信息
  • 一旦我得到了向量,我将编写一些代码来转换它们以供其他用途。

我的问题

  • 我可以选择从印刷品中提取载体吗? (我对商业和开源都开放)

我已经认识的选项

  • 获取位图并使用像VectorMagick这样的程序。我尝试过这种方法。即使原始位图很大,它也不会产生我所寻求的保真度。实际上,我认为使用任何跟踪方法都不会给我提供我需要的高质量矢量。
  • 打印到Adobe PDF驱动程序。这在技术上有效。我有Adobe CS4,所以我可以打印到它保存生成的PDF,然后将PDF导入到Illustrator中,然后导出为其他一些矢量格式。这种方法的问题是金钱/许可。我拥有Adobe CS4的个人副本 - 所以这对我来说没问题。但是我需要为工作目的捕获工作中的向量 - 不,我不打算在工作中安装我的个人CS4副本。
  • 是否有“打印驱动程序”将打印输出直接捕获为矢量格式?我通过谷歌看到了一些商业广告。如果你已经使用过它们,我想听听你对这种技术的体验。我可以自己编写,在这种情况下,您可以链接到我可以开始的任何现有代码。

3 个答案:

答案 0 :(得分:3)

如果这是您需要的持续解决方案,那么您可能需要购买或自己构建。如果这是一次性事件,您可能会使用“旧版”Lexmark PCL打印机驱动程序。我推荐像T610这样的东西。如果下载PCL驱动程序并进行安装,则可以修改默认值并将图形选项从XL或自动选择更改为GL / 2。这将强制驱动程序输出GL / 2输出,即矢量(GL / 2是绘图仪语言)。这可能对你有所帮助。其他打印机驱动程序可能有强制GL / 2(对比Raster),但我不确定。我曾经为Lexmark工作,并且之前已经使用过这个类似的要求。

确保您使用Lexmark的“自定义”驱动程序,因为我认为基于Microsoft的驱动程序不支持此功能。

...在我调查一些事情时暂停............我回来了......

另一种选择是找到另一个GL / 2驱动程序或构建你自己...我只花了几分钟搜索网页,并提出了一些可能有用的其他选项。

建立你自己: 我使用Windows驱动程序开发工具包(DDK)构建了驱动程序(minidrivers),构建基本驱动程序非常简单。看起来您可以设置一个设置来启用GL / 2输出:Enabling HP-GL/2 Vector Graphics Support (PCL-5e) in the GPD

替代司机 根据您所使用的操作系统,可能内置了“通用”GL / 2驱动程序。我相信XP有一台惠普HP-GL / 2绘图仪。您可能需要检查许可证(与Lexmark解决方案一样),但它可能对您有用,因为它是操作系统的一部分,所以不应该担心使用它。它可能是由Microsoft编写并受版权保护的

请记住,您必须做一些工作才能将GL / 2转换为您想要的任何输出,但它应该是一个简单的转换器来转换每组命令。可能有工具可以提供帮助。以下是Lexmark GL / 2参考的快速链接,可能足以让您前进,查看PCL部分下的GL / 2信息:Lexmark Technical Reference Guide

<强>后记: 我的最后一个选项是使用通用的Postscript驱动程序。 Postscript应该在Postscript中输出矢量图像作为矢量图形,但我对此的了解最多。

<强>输出: 如果您需要输出路由到文件,您可以将端口设置为FILE:这需要用户干预,或者安装Redmon之类的东西(或者连接我,我会发送给我们的端口监视器,允许自动输出提交)。

希望这在某种程度上有所帮助。

答案 1 :(得分:2)

我最喜欢的是开源(GPL)PDFCreator

答案 2 :(得分:1)