无法在Windows 7上将PB 10.5保存为PDF

时间:2011-02-24 22:52:57

标签: pdf windows-7 powerbuilder ghostscript

我有一个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中提到的所有内容,但仍然失败了。

我有智慧结束......还有其他想法吗?

-

- 更多信息已添加2-MAR-2011

我应该注意到这是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。

我已经应用了最新的Adobe更新(似乎每天都有这些!)。

我确认我有一个注册表项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

4 个答案:

答案 0 :(得分:2)

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

它的工作方式是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,font,resource)

答案 1 :(得分:1)

当我看到你的问题时,我意识到我目前使用的笔记本电脑并不是在制作PDF。这是我尝试的内容,包括:

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

如果一切都失败了,我可能会使用Process Monitor试图弄清楚连接的位置。 (PB使用打印机驱动程序创建一个PostScript,.ps,文件,GhostScript处理它。)

可能无法判断我刚刚经历的是否与您的情况有关,但也许它会有所帮助。 Sybase newsgroups充满了人们向其他有问题的人讲故事;这种整合可能是最有问题的PB。

祝你好运,

特里。


对2-MAR-2011附录的回应

让人惊讶。好的,所以我不完全确定ghostpdf.inf应该做什么(我的猜测是它想直接创建一个PDF),但这不是推荐的。你想要的是一个打印机驱动程序,它将生成一个PostScript文件,如手册中推荐的“HP Color LaserJet PS”,指向File:port,并重命名为“Sybase DataWindow PS”。重命名由安装Adobe打印机驱动程序创建的打印机也足够了。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

我们正在使用Powerbuilder 11.5,并且ghostscript在Windows XP上运行良好 当我们将PB 11.5移动到Windows 7 64位时,尝试了所有内容,最后调用了Sybase Tech Support。这甚至可以从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 - 在64位Windows 7上,另存为PDF不适用于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。
  3. 对于32位操作系统,ghostscript 32位版本应按照手册中的说明进行操作。链接在下面。

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