zoukankan      html  css  js  c++  java
  • 数据窗口PDF格式输出

    (独孤求败二零零四年一月十四日整理于深圳市南山区)

    PDF(Portable Document Format)文件格式是Adoble公司开发的电子文件格式。这种文件格式和操作系统平台无关,也就是说,PDF文件不管是在Widnows、Unix还是在苹果公司的Mac OS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司报告、网络资料、电子邮件都开始使用PDF格式文件。
    PB9.0中新增加了将数据窗口保存为PDF文档的支持,并提供了两种方法将数据窗口或数据存储保存为PDF格式的报表。默认的是提取的方法(Distill Method),他能够保存数据窗口对象的所有类型。同时,数据窗口也可以使用XSL格式对象(XSL-FO)保存PDF格式。
    一、Distill提取方法
    Distill Method是默认的数据窗口生成PDF文档的方法,使用这种方式,无须更改数据窗口对象的属性,可直接在数据窗口对象画板选择File/Save Rows As菜单项,在弹出的“另存为”对话框,选择保存类型为PDF保存即可。如果是在脚本中使用Save as()函数,将保存类型设置为PDF,也可以将数据窗口保存为PDF格式文件。
    例如:
    int li_ret 
    string ls_docname, ls_named
    integer li_value
    li_value=GetFileSaveName("选择保存文件",+ls_docname,ls_named,"PDF文件",+"PDF文件 (*.PDF),*.PDF")
    IF li_value <> 1 THEN Return
    li_ret = dw_1.SaveAs(ls_docname, PDF!, true)
    IF li_ret = 1 Then
    MessageBox('提示信息','保存为PDF文件成功!' + '~r~n文件为:' + ls_docname)
    Else
    MessageBox('提示信息','保存为PDF文件失败!')
    End IF
    数据窗口对象生成的PDF文档如下图所示:

    Distill方式目前还不支持OLE和RichText类型的数据窗口对象。
    PB使用了一个转为提取方式PDF输出而设计的PostScript打印驱动,如果要在生成PDF文档时定制PostScript设置,可以选择不同的PostScript打印驱动。方法如下:
    1、 数据窗口画板中
    1)、打开数据窗口对象
    2)、在数据窗口对象属性视图中选择Data Export标签页,在Format to Configure下拉列表中选择PDF,在Method下拉列表中选择Distill!,并选择Distill Custom PostScript复选框。如下图所示:

    3)、选择Print Specifications标签页,在Printer Name文本框中输入指定的打印机名。
    4)、保存数据窗口对象,选择File/Save Rows As菜单项,在弹出的“另存为”对话框中,选择保存类型为PDF,在文件名文本框中输入文件名。

    2、 脚本中,使用如下方法:
    int li_ret
    dw_1.Object.DataWindow.Export.PDF.Method = Distill!
    dw_1.Object.DataWindow.Printer = \\prntsrvr\pr-6
    dw_1.Object.DataWindow.Export.PDF.Distill.CustomPostScript = “Yes”
    li_ret = dw_1.SaveAs(“custom.PDF”,PDF!,true)


    二、使用XSL-FO方式保存PDF文档
    基于将DataWindow数据保存为XML格式的能力,PB也能够将数据窗口的数据和表示通过生成XSL格式对象(XSL-FO)保存为PDF文档。
    XSL-FO是用于格式化对象的可扩展样式表语言(Extensible Stylesheet Language for Formatting Objects),要使用XSL-FO生成PDF文档,必须对数据窗口对象属性进行修改。
    1、数据窗口画板中
    1)、打开数据窗口对象。
    2)、在数据窗口对象属性视图中选择Data Export标签页,在Format to Configure下拉列表中选择PDF,在Method下拉列表中选择XSLFOP!。如果想将PDF文件同时送至打印机,选择Distill Print Using XSLFOP复选框。如下图所示:

    3)、保存数据窗口对象,选择File/Save Rows As菜单项,在弹出的“另存为”对话框中,选择保存类型为PDF,在文件名文本框中输入文件名。

    2、脚本中,使用如下方法:
    int li_ret 
    string ls_docname, ls_named
    integer li_value

    li_value = GetFileSaveName("选择保存文件", &
    + ls_docname, ls_named, "PDF文件", &
        + "PDF文件 (*.PDF),*.PDF")
    IF li_value <> 1 THEN Return
    //定制XSL-FO方式
    dw_1.Modify("Export.PDF.Method = XSLFOP! ")
    dw_1.Modify("Export.PDF.xslfop.Print='Yes'")
    li_ret = dw_1.SaveAs(ls_docname, PDF!, true)
    IF li_ret = 1 Then
    MessageBox('提示信息','保存为PDF文件成功!' + &
    '~r~n文件为:' + ls_docname)
    Else
    MessageBox('提示信息','保存为PDF文件失败!')
    End IF

    XSL-FO方式目前还不支持OLE、RichText、Graph和Composite数据窗口对象。

  • 相关阅读:
    【转】解决在Android设备播放音频与其他应用重音的问题,并监听耳机的控制按钮
    【转】wamp 3.0.6(apache 2.4.23) 403 forbidden 解决办法
    身份证第18位(校验码)的计算方法
    【转】Win10开机密码忘了?教你破解Win10开机密码
    【转】具透 | 你可能不知道,iOS 10 有一个中国「特供」的联网权限功能
    钉钉自定义机器人 发送文本 换行 无效果
    屏蔽右键+f12
    【转】理解WebKit和Chromium: JavaScript引擎简介
    第2章 排序 | 第10节 计数排序练习题 && 基数排序
    图像处理-深入探索插值操作
  • 原文地址:https://www.cnblogs.com/Footprints/p/2881496.html
Copyright © 2011-2022 走看看