【问题标题】:Saving a datawindow as PDF in PB 10.5在 PB 10.5 中将数据窗口另存为 PDF
【发布时间】:2010-03-17 09:12:39
【问题描述】:

我有一个网格数据窗口,其背景中有一张图片(尺寸为 A4 页面),我想将数据和图片导出为(单页)PDF 文件。我使用了以下命令的几种组合,但最多得到一个 0 大小的 pdf。

//dw_1.Modify("Datawindow.Export.PDF.Method = Distill! ")
//dw_1.Modify("DataWindow.Export.PDF.Method = XSLFOP! ")

dw_1.Object.DataWindow.Export.PDF.Method = Distill!
//dw_1.Object.DataWindow.Printer = "\\prntsrvr\pr-6"
dw_1.Object.DataWindow.Export.PDF.Distill.CustomPostScript="No"
dw_1.SaveAs("c:\dw_one.pdf", PDF!, false)

用户指南(第 533 页)说:

… the data is printed to a PostScript file and automatically distilled to PDF using GNU Ghostscript…

Installing Ghostscript

For licensing reasons, Ghostscript is not installed with PowerBuilder. You (and your users) must download and install it before you can use this technique…

有人知道程序是什么吗?

编辑 谢谢你们。事实证明,安装 ghostscript 就足够了。我只是不明白为什么该程序在某些伙伴 PC 上成功(使用 Method = XSLFOP!)而不使用 ghostscript:-/

【问题讨论】:

    标签: pdf powerbuilder datawindow


    【解决方案1】:

    PowerBuilder 的 Ghostscript 和打印机设置

    需要管理员权限 安装打印机。我们正在使用 XP 上的此设置。

    这些说明使用 HP 打印机驱动程序,而不是 Sybase 提供的驱动程序。如果由于某种原因您没有此驱动程序,您可以从 HP 下载它。 HP驱动具有以下优点:

    • 屏幕阅读器可以阅读生成的 PDF(YMMV,但 Sybase 驱动程序输出根本不可读。)
    • 驱动程序经过数字签名,可安装在需要签名驱动程序的系统上

    需要的文件

    • 来自http://pages.cs.wisc.edu/~ghost/ 的gs860w32.exe(如果您愿意,可以尝试更新版本。8.60 对我们来说工作正常。)
    • C:\Program Files\Sybase\Shared\PowerBuilder\drivers 中的驱动程序文件(路径可能因安装而异)

    鬼脚本

    安装gs860w32.exe

    • 安装到 C:\Program Files\gs
    • 检查所有用户
    • 检查安装 Ghostscript 字体

    Sybase DataWindow PS 打印机

    打印机名称是 区分大小写且必须准确 引号里面是什么。没有 “数据窗口”中的空间。最简单的方法 做对就是从这里复制 记录并粘贴进去。

    • 打开控制面板、打印机和传真
    • 选择添加打印机(下一步)
    • 选择本地打印机,取消选中自动检测并安装我的即插即用打印机(下一步)
    • 选择使用以下端口,选择文件:(下一步)
    • 在左侧列表中,为制造商选择“HP”
    • 在右侧列表中,向下滚动并选择“HP 8150 Series PS”(下一个)
    • 打印机名称“Sybase DataWindow PS”
    • 用作默认打印机选择否(下一步)
    • 选择不共享(下一个)
    • 打印测试页,选择否(下一步)
    • (完成)

    【讨论】:

    • 这是一个很好的指导。这里的细节几乎说明了很多人的发现,即从 PB 创建 PDF 并非易事。我个人在使用企业转换应用程序的 3rd 方工具方面运气更好。虽然很臭。
    【解决方案2】:

    我们已经让它在这里工作了。来自我们的内部维基:

    • 在您的工作站上安装ghostscript(8.50 或 8.15 推荐)
    • 确保 Powerbuilder DLL 中的 ghostscript 文件 目录
    • 确保同一个地方有目录 包含默认后记 Sybase 提供的驱动程序。
    • Powerbuilder 使用 Adob​​e Postscript 驱动程序(可免费下载 来自 Adob​​e.com)。这个必须命名 'Adobe DataWindow PS'

    我们正在使用 1.06 版的 postscript 驱动程序,您可以在此处下载:

    【讨论】:

      【解决方案3】:

      您的代码看起来不错,并且与我刚刚检查过的具有类似功能的代码一致。验证 ghostscript 是否已正确安装。

      出于调试目的,我会尝试使用没有位图背景的更简单的数据窗口。

      【讨论】:

        【解决方案4】:

        作为对其他属性的一个小补充,我从来不需要 Modify() 任何导出属性;我只是另存为()。我的理解是,这些属性是为了尝试走非 Ghostscript 路线,但我不记得听说过有人成功地做到了这一点。

        为了简化您的测试,您可能想查看是否可以右键单击 DataWindow 绘制器中的“预览”窗格以查看是否有“将行另存为...”选项。 (我目前没有安装 10.5,所以我看不到它在那个版本中是否可用。)它将节省你运行应用程序的时间,并且至少在让它在 PowerScript 中运行之前测试基本功能。

        祝你好运,

        特里。

        【讨论】:

        • 这里也没有 Modify()。我们只是 saveAs()。
        • @Terry 我在 Win7 x64 上使用 PB 12.5 经典版本,同时具有 GS x64 和 x32。两者都失败了。我正在从预览窗口尝试,它给出了另存为失败的错误。知道它可能是什么吗?我得到一个 0 字节的文件。
        • 听起来PB找不到GhostScript。自安装以来您是否手动移动过它?安装位置存储在注册表中,例如HKEY_LOCAL_MACHINE\SOFTWARE\GPL Ghostscript\9.07,这至少是 PB 寻找它的地方之一。如果这不会产生明显的结果,我会 (SysInternals') Process Monitor 它。
        【解决方案5】:

        ghostscript 的问题是驱动程序没有签名。这是 Windows 8 中的一个大问题,因为它只会停止驱动程序的安装。 Windows 7 您被告知发生了什么并允许安装驱动程序。 Windows 8 只是停止驱动程序的安装,您可以通过尝试使用 ghostscript 文件创建打印机来证明这一点。

        目前正在通过 HP PS 驱动程序尝试确定适用于 Windows 8 操作系统的解决方法。

        【讨论】:

          【解决方案6】:

          Windows 8 确实允许未签名的打印机驱动程序,但您必须重新启动进入“高级模式”,请参阅以下链接中的过程并选择选项禁用驱动程序签名强制。 http://windows.microsoft.com/en-gb/windows-8/windows-startup-settings-including-safe-mode

          Windows 仍会警告并建议不要安装未签名的驱动程序。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-29
            相关资源
            最近更新 更多