PowerBuilder 12.5 Classic PDF SaveAs 在 Win7 x64 上创建 0 大小的文件
Posted
技术标签:
【中文标题】PowerBuilder 12.5 Classic PDF SaveAs 在 Win7 x64 上创建 0 大小的文件【英文标题】:PowerBuilder 12.5 Classic PDF SaveAs creating files of 0 size on Win7 x64 【发布时间】:2013-04-06 16:08:00 【问题描述】:平台:
Windows 7 x64
PB 12.5 经典版
Ghostscript 9.07(x32 和 x64 均已安装)
HP Laserjet PS 打印机安装为“Sybase DataWindow PS”
Datawindow 的数据导出选项卡具有要配置的格式:PDF
和方法:Distill
。 “Distill custom postscript”和“Print using XSLFOP”这两个复选框都未选中。
我单击File | Run/Preview
和File | Save Rows As
并选择PDF
作为另存为类型并输入pdf 文件名并单击保存。它在消息框中显示Save Rows As failed
。我发现该文件已在磁盘上创建,但大小为 0 字节。
我注意到手册指出如果未安装 Ghostscript 可能会发生这种情况。但是,我先安装了 x64,然后又安装了 x32 版本的 Ghostscript。我在 PB 手册中的某处安装了 x64,因为它提到我需要为操作系统平台安装 Ghostscript,因为我在 x64 Win7 上,所以我安装了 x64 Ghostscript。但是,它不适用于两者。
可能出了什么问题?有人有什么想法吗?我已经在网络和 *** 上搜索了解决方案,每个人似乎都指向 x32 平台(在我看来)以及 XP 上。我之前的 XP 安装工作正常。我现在在 Win7 x64 上,需要它来处理它。
TIA
【问题讨论】:
【参考方案1】:我想我遇到了同样的问题。问题出在 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
在此之后它应该可以工作:)
祝你好运!
兄弟。加博尔
【讨论】:
我真的不推荐使用这么古老的版本。但是,商业应用程序依赖于您下载开源应用程序来执行此操作,这很糟糕......【参考方案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 并且必须提供一些菜单或图标来完成这项工作。
这确实很混乱,但我别无选择。这是“必须具备”的功能,所以我必须这样做。
你来了,这是我对 *** 的第一个贡献,希望对您有所帮助。
您好,
理查德·夏普
【讨论】:
以上是关于PowerBuilder 12.5 Classic PDF SaveAs 在 Win7 x64 上创建 0 大小的文件的主要内容,如果未能解决你的问题,请参考以下文章