我有一个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中提到的所有内容,但仍然失败了。
我有智慧结束......还有其他想法吗?
-
我应该注意到这是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
答案 0 :(得分:2)
我感觉到你的痛苦。一年前我经历了这一切。
它的工作方式是PowerBuilder将其输出发送到打印机驱动程序。打印机驱动程序输出postscript(.ps)文件。 Ghostscript获取此文件并输出PDF文件。如果你得到一个0字节的PDF,可能是你的Ghostscript设置出了问题。
要检查的事项:
注册表项(我认为)应该是这样的: HKLM \ SOFTWARE \ GPL Ghostscript \ 8.63 GS_DLL应该指向gsdll32.dll(可能在你的ghostscript bin文件夹中) GS_LIB是路径列表(lib,font,resource)
答案 1 :(得分:1)
当我看到你的问题时,我意识到我目前使用的笔记本电脑并不是在制作PDF。这是我尝试的内容,包括:
如果一切都失败了,我可能会使用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驱动程序:
对于32位操作系统,ghostscript 32位版本应按照手册中的说明进行操作。链接在下面。
http://infocenter.sybase.com/help/topic/com.sybase.dc37774_1150/html/apptech/BABGDBHJ.htm