1

平台:

视窗 7 x64

PB 12.5 经典

Ghostscript 9.07(安装了 x32 和 x64)

HP Laserjet PS 打印机安装为“Sybase DataWindow PS”


Datawindow 的 Data Export 选项卡具有 Format to configure:PDF和 Method: Distill。未选中“Distill custom postscript”和“Print using XSLFOP”复选框。

我单击File | Run/PreviewFile | Save Rows As选择PDF另存为类型并输入pdf文件名并单击保存。它在一个消息框中说Save Rows As failed。我发现该文件已在磁盘上创建,但大小为 0 字节。

我注意到手册指出,如果未安装 Ghostscript,可能会发生这种情况。但是,我先安装了 x64,然后又安装了 x32 版本的 Ghostscript。我在 PB 手册中的某处安装了 x64,它提到我需要为操作系统平台安装 Ghostscript,并且由于我在 x64 Win7 上,所以我安装了 x64 Ghostscript。但是,它不适用于两者。

有什么问题?有人有什么想法吗?我已经在网络和 stackoverflow 上搜索了解决方案,每个人似乎都指向 x32 平台(在我看来)以及 XP 上。我之前的 XP 安装工作正常。我现在在 Win7 x64 上,需要它来处理它。

TIA

4

2 回答 2

2

我想我有同样的问题。问题出在 Ghostscript 软件的版本上:

http://ghostscript.com/pipermail/gs-bugs/2012-July/026615.html

您应该卸载 Ghostscript 并重新安装此版本:Ghostscript 8.71。你可以在这里下载:

http://sourceforge.net/projects/ghostscript/files/GPL%20Ghostscript/8.71/ http://sourceforge.net/projects/ghostscript/files/GPL%20Ghostscript/8.71/gs871w64.exe/download

在此之后它应该工作:)

祝你好运!

兄弟。加博尔

于 2013-04-06T17:56:11.340 回答
2

大约 18 个月前,我们遇到了这个问题。IIRC 的基本问题是打印机的驱动程序必须是 64 位的,然后您必须使用适当的 64 位 Ghostcript exe gswin64c.exe。据我所知,Powerbuilder 作为 32 位应用程序是硬连接到 gswin32c.exe。

我最终不得不实际上手动执行 Powerbuilder 所做的事情。首先,我必须通过搜索注册表的相关部分来找到 gswin32c.exe 或 gswin64c.exe 的路径。这意味着搜索 64 位部分和 32 位部分,因为我们的应用程序不仅仅在 64 位机器上运行。我想我最终使用 ProcessMonitor 和 ProcessExplorer 来观察 Powerbuilder 的运行情况并模仿它在做什么。

确定 Ghostscript-EXE 的路径后,您可以手动将打印机设置为“Sybase DataWindow PS”并执行 pDw.Object.DataWindow.Print.FileName = sz_pathps 其中 sz_pathps 是 PostScript 文件所在的临时文件的路径通过蒸馏器生产。然后您执行 pDw.print(false,false) 并且您有一个 PostScript 文件。

然后,您可以使用在注册表中找到的 exe 路径手动调用 GhostScript。我使用的命令行参数是

-q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=xxxxx.pdf -c .setpdfwrite -f yyyyy.ps

xxxxx.pdf 是您希望生成的 PDF 文件的路径,yyyyy.ps 是您使用蒸馏器生成的 PS 文件的路径。

手动调用 GhostScript-Exe 意味着调用 CreateProcess,然后调用 WaitForSingleObject。

这当然意味着您不能再使用 dw.saveas 并且必须提供一些菜单或图标来完成这项工作。

这确实很混乱,但我别无选择。这是“必须具备”的功能,所以我必须这样做。

好了,这是我对 stackoverflow 的第一个贡献,希望对您有所帮助。

问候,

理查德·夏普

于 2013-04-15T10:28:49.117 回答