【问题标题】:Cannot get PB 10.5 to save as PDF on Windows 7无法在 Windows 7 上获取 PB 10.5 以另存为 PDF
【发布时间】:2011-02-24 22:52:57
【问题描述】:

我有一个内置于 10.5 的应用程序,它能够在 Windows XP 上使用 SaveAs 成功创建 PDF。当我迁移到 Windows 7(32 位)时,它返回 -1 和一个零长度文件而失败。

我已经尝试了所有我能想到的方法。我已经尝试了多个版本的 Ghostscript(8.54、8.71、9.01),删除了驱动程序并重新添加了它。我也将 ghostscript EXE 和 DLL 复制到我的应用程序目录中。

系统变量包括一个 GS_DLL=C:\Program Files\gs\gs9.01\bin\gsdll32.dll 和一个包含 C:\Program Files\gs\gs9.01\bin\ 的 PATH;在其中(尝试在路径中列出第一个和最后一个)。

当我添加“Sybase DataWindow PS”打印机时,我将“C:\Program Files\gs\gs9.01\lib\”指定为文件夹。我试过共享而不共享打印机。

我检查了Saving a datawindow as PDF in PB 10.5 中提到的所有内容,但仍然失败。

我束手无策......还有其他想法吗?

--

-- 2011 年 3 月 2 日添加了更多信息

我应该注意到这是 PB10.5——不确定这是否重要。我还设置了 Windows 安全性,以便获得所有烦人的用户帐户控制消息框。

这是我添加打印机的方法 - 我相信这一切都正确

添加打印机 使用现有端口,文件:(打印到文件) 对于司机 -- 有磁盘,选择“c:\Program Files\gs\gs9.01\lib\ghostpdf.inf” --(替换当前驱动程序) 将其命名为: Sybase DataWindow PS(确认拼写)

当我打印一个测试页时,它会创建一个 177KB 的 PDF 文件,但是当我打开它时,我收到一个错误:“Adobe Reader 无法打开 'test.pdf',因为它不是受支持的文件类型,或者是因为文件已损坏(例如,它作为电子邮件附件发送且未正确解码)。

当我尝试从记事本打印某些内容时出现同样的错误。

当我使用 dw_1.saveAs("c:\test\test.pdf", PDF!) 从 PB 应用程序打印时,它返回 -1 并创建一个 0 大小的 PDF。

我已经应用了最新的 Adob​​e 更新(似乎每天都会更新!)。

我确认我有一个注册表项 HKLM\SOFTWARE\GPL Ghostscript\9.01\,其值: GS_DLL (REG_SZ) 设置为 C:\Program Files\gs\gs9.01\bin\gsdll32.dll
GS_LIB (REG_SZ) 设置为 C:\Program Files\gs\gs9.01\lib;C:\Program Files\gs\fonts

DLL 确实存在于该目录中,并且 GS_LIB 引用的两个目录存在并具有内容。

谢谢!

D

【问题讨论】:

  • 您使用的是 GS 安装程序吗?您是否使用签名的打印机驱动程序?您可以从记事本打印到“Sybase DataWindow PS”吗?您是使用 GS 设置升级计算机还是安装干净?
  • 休,我使用了来自 UWISC (pages.cs.wisc.edu/~ghost/doc/GPL/gpl901.htm) 的 GS 安装程序。
  • (抱歉,回车太快了)...我使用了 UWISC 安装程序。当我从记事本打印时,它会创建一个长度为 0 的 PDF。这台计算机全新安装了 Win7,我安装了全新的 GS,但此后我卸载了 GS 并安装了几个其他版本,试图让它工作。每次我使用安装程序。谢谢!
  • 当您在安装打印机时打印测试页时,它可能创建了一个 ps 格式的文件,这就是 Adob​​e 无法读取它的原因 -- Ghostscript 没有运行并将其转换为 pdf .
  • 那么我需要做些什么来确保 GS 正在转换它(或者至少检查它是否正在尝试)?

标签: pdf windows-7 powerbuilder ghostscript


【解决方案1】:

我感觉到你的痛苦。一年前我经历了这整件事。

它的工作方式是 PowerBuilder 将其输出发送到打印机驱动程序。打印机驱动程序输出一个 postscript (.ps) 文件。 Ghostscript 获取此文件并输出 PDF 文件。如果您获得的是 0 字节 PDF,则可能是您的 Ghostscript 设置有问题。

检查事项:

  • 打印机是否设置为打印到名为“FILE:”的端口?
  • 是否有指向 Ghostscript 的注册表项? (这是 PB 找到它的方式。)
  • “Sybase DataWindow PS”的拼写是否正确?
  • “Sybase DataWindow PS”是否使用 PostScript 打印机驱动程序?

注册表项(我认为)应该是这样的: HKLM\SOFTWARE\GPL Ghostscript\8.63 GS_DLL 应该指向 gsdll32.dll(可能在你的 ghostscript bin 文件夹中) GS_LIB 是路径列表(lib、字体、资源)

【讨论】:

  • 打印机设置为文件(我将发布更长的评论详细信息——这个评论框非常有限)。我确认了打印机名称的拼写。我认为它使用的是后记驱动程序......那里可能是错误的。我检查了 HKLM 条目,它们存在并且似乎是有效的……虽然没有资源——只有“C:\Program Files\gs\gs9.01\lib;C:\Program Files\gs\fonts”。谢谢!
【解决方案2】:

当我看到您的问题时,我意识到我当前使用的笔记本电脑无法生成 PDF。这是我尝试过的,包括:

  • 退出我的公司帐户并进入计算机管理员帐户,以确保我拥有所有必要的权限
  • 尝试使用 PB 应用程序另存为 PDF(你永远猜不到 which one...好吧,好吧,实际上是 this one),它应该创建适当的打印机驱动程序,但没有
  • 阅读大量应用技术手册
  • 下载并安装 Adobe Postscript printer drivers 以确保正确的 DLL 可用
  • 返回并将通用 PS 打印机驱动程序重命名为“Sybase DataWindow PS”(直接从应用程序技术手册中复制),因为在安装驱动程序时我不够聪明,无法正确命名
  • 再次测试,成功

如果这一切都失败了,我可能会使用Process Monitor 来尝试找出未建立连接的位置。 (PB 使用打印机驱动程序创建 PostScript、.ps、文件,由 GhostScript 处理。)

可能无法判断我刚刚经历的事情是否对您的情况有任何影响,但也许会有所帮助。 Sybase newsgroups 到处都是人们向遇到问题的人讲述他们的故事;这种集成可能是 PB 最有问题的。

祝你好运,

特里。


对 2-MAR-2011 附录的回应

哎呀。好的,所以我不完全确定 ghostpdf.inf 应该做什么(我的猜测是它想直接创建 PDF),但这不是推荐的。您需要的是能够生成 PostScript 文件的打印机驱动程序,例如手册中推荐的“HP Color LaserJet PS”,指向文件:端口,并重命名为“Sybase DataWindow PS”。重命名通过安装 Adob​​e 打印机驱动程序创建的打印机也足够了。

【讨论】:

  • 特里 - 我想要哪一个? Adobe Universal PostScript Windows Driver Installer 1.0.6 - 英文版 7.4MB 2002 年 5 月 23 日?看起来很旧。
  • 是的,但话说回来,PostScript 已经有 20 多年没有更新了。这是我用的那个。
  • 我使用了 Windows 附带的 HP LaserJet PS 打印机驱动程序之一。
  • 我删除了打印机并使用 HP LaserJet PS 重新添加了它,但运气不好。
  • @Terry:是的,接下来我会这样做。咒骂它也没有产生任何结果。
【解决方案3】:

我的答案可能很简单。 我一直在做很多尝试来让它与所有最新版本的 Ghostscript 一起工作。最终让它工作的解决方案是使用 GhostScript 8.70,而不是任何其他版本,并使用该版本中的 ghostpdf.inf 文件。由于某种原因,我无法解释为什么,这似乎有效......

【讨论】:

    【解决方案4】:

    我们使用的是 Powerbuilder 11.5,ghostscript 在 Windows XP 上运行良好。
    当我们将 PB 11.5 迁移到 Windows 7 64 位时,尝试了所有方法,最后致电 Sybase 技术支持。这有效,即使是在 PowerScript 中。请注意,Windows 7 不支持 PB 11.5,但技术很好。 Windows 7 支持 PB 12.5。

    在 Windows 7 64 位上有一个开放的 CR,710061,(错误报告)64 位 Ghostscript 不适用于 PB 12 或 12.5。该漏洞自 5 月底开放以来,尚未在任何版本中修复。由于 PB 11.5 不再受支持,因此在解决此问题时不会在该版本中修复。

    我刚刚下载了最新版本的 Ghostscript,9.06 64 位,按照下面的解决方法,它现在对我有用。我用 PB 12.5 对此进行了测试,但 PB 11.5 应该是一样的。

    CR 710061 - SavesAs PDF 不适用于 64 位 Windows 7 上的 ghostscript 9

    PowerBuilder 12.1 和 12.5 Windows 7 64 位 Windows 2008 64 位 GhostScript 9.x 64 位

    尝试使用 ghostscript 9 将行另存为 PDF 时失败 64 位 Windows。可能存在多个问题,包括安全问题。

    对于 64 位版本的 GhostScript,应用程序被命名为 gswin64c.exe 而不是 gswin32c.exe。 PowerBuilder 寻找 gswin32c.exe 而不是 gswin64c.exe

    作为 64 位 Windows 7 的解决方法,我也能够让它工作 通过 64 位版本的 gs905 驱动程序:

    1. 如下安装“Sybase DataWindow PS”打印机: 添加新打印机作为打印文件并使用“有磁盘”选项; 然后浏览到 ghostscript \lib 文件夹并选择文件 ghostpdf.inf。 打印机必须称为“Sybase DataWindow PS”。
    2. 在 ghostscript \bin 文件夹中,我复制了 gswin64c.exe 并将其命名为 gswin32c.exe。

    对于 32 位操作系统,ghostscript 32 位版本应该按照手册中的说明工作。链接如下。

    http://infocenter.sybase.com/help/topic/com.sybase.dc37774_1150/html/apptech/BABGDBHJ.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-24
      • 2011-12-01
      相关资源
      最近更新 更多