1. 安装
gs705w32.exe
2. 设置系统path:
C:\gs\gs7.05\bin (以实际安装目录为准)
3. 安装虚拟打印机
PowerBuilder9.0自带的:
Sybase\Shared\PowerBuilder\drivers\ADIST5.INF 手动添加打印机
4. 代码导出
dw_print.Object.DataWindow.Export.PDF.Method = Distill!
dw_print.Object.DataWindow.Printer = 'Acrobat Distiller'
dw_print.Object.DataWindow.Export.PDF.Distill.CustomPostScript="Yes"
ll_ret2 = dw_print.SaveAs('文件名称', PDF!, false)
这个方法现在对于win64不支持。各位朋友可以看看12.5这样的版本支持不。
------------------------------------------------------
今天客户提出要我给他在某个界面做一个自动打印体检表导出或者打印成pdf放到web服务器上面去。
测试了上面的思路不行,而且现在离谱的是连
gs705w32.exe也无法下载到。
我觉得直接用print成pdf(借助虚拟机)比较方便和符合。但是像doPDF和pdffactory每次都要提示保存文件名。比较麻烦。没法自动化操控。
偶尔看到一个Adobe Acrobat XI安装后的pdf打印机有个打印机首选项设置,可以设置直接保存到某个目录,而打印文件名,pb的datawindow.printer参数可以指定的。所以能实现自动化导出到某个文件夹。实现服务器自动运行,自动服务。
1. 安装 Adobe Acrobat XI,需要系列号,安装后需要验证成正式版,否则打印时会弹出。这个自己想办法。也有人说有从安装包分立的只带打印机的安装(
Adobe PDF Printer v7.0,Adobe PDF Printer v9.0,Adobe PDF Printer v10.0这三个我安装了的确能显示打印机图标,但是是灰色的,打印时返回 -1
)
,但是我没有找到能用的。
2. 控制面板\硬件和声音\设备和打印机》Adobe PDF打印机》右键》打印机首选项》
如图,选择导出的文件夹。并且取消打印后预览。以方便我们自动运行。
打印按钮的代码:
fileid ++
dw_1.object.datawindow.print.DocumentName=string(fileid)+".pdf" //设置打印文档名
//dw_1.object.datawindow.printer="doPDF v7" //有弹出保存按钮,文件名
dw_1.object.datawindow.printer="adobe PDF" //这个就厉害了,设置好了文件名,就不弹出保存界面。
int li_i
li_i= dw_1.print() //dw的print不选打印机,所以adobe PDF需要设置成默认打印机
messagebox('结果',String(li_i))
简单测试程序。点击按钮:
任务栏右下角提示:
导出的文件非常正常,实际工作中以系统编号pdf。这样可以给客户在web上面下载。
打开看看:
遗留的问题:adobe安装中,哪些文件构成对打印机的支持。如果可以提取那部分,就好了。
这方法只适合服务器这样的安装,不适合其他客户端的安装。费劲了。
**点击queren也是一个办法。
***后记,今天在另外一个软件里面看到了 如下代码:
li_ret = obj_pdfwriter.connecttonewobject("Bullzip.PDFPrinterSettings")
obj_pdfwriter.init()
obj_pdfwriter.setprintername("Bullzip PDF Printer")
obj_pdfwriter.setvalue("ShowSettings","never")
obj_pdfwriter.setvalue("ShowPDF","no")
就证明这个打印机也不错。我找到几个别人的截图,大家有空去研究吧
上面的代码里面只是用编程方式设置了这些属性。
dw_1.object.datawindow.print.DocumentName=string(fileid)+".pdf" //设置打印文档名。dw_1.object.datawindow.printer="adobe PDF" //这个就厉害了,设置好了文件名,就不弹出保存界面。li_i= dw_1.print() //dw的print不选打印机,所以adobe PDF需要设置成默认打印机。如图,选择导出的文件夹。之前的saveas导出pdf,设置非常麻烦。
2. 安装 gs705w32.exe ,默认安装路经为c:/gs。
3. 安装虚拟
打印
机
1) 直接在 控制面板 >
打印
机和传真 > 添加
打印
机,端口任意,默认的LPT1就可以;
2)
打印
机驱动在
PDF
\drivers文件夾中, 选择 ADIST5.INF,读取到五个驱动:
Acrobat Distiller,
Acrobat Distiller CS,
Acrobat Distiller CT,
Acrobat Distiller J,
Acrobat Distiller K
选择第一个Acrobat Distiller
2.powerbuilder中调用代码
打印
即可,
pdf
文件会自动产生到目标路径中
dw_print.Modify( "
data
window
.printer='Adobe
PDF
'")
dw_print.Modify( "
Data
Window
.Print.DocumentName='"+ls_Filena...
问题:发现把
data
window
存档为
PDF
档时发生个别字段显示异常,可能是
PDF
的版本还是什么问题,无法识别导致显示为
解决方法:查看
data
window
字段属性时发现,显示异常的字段,字体是英文字体
其编码格式与中文字体的编码格式不同,导致在某些版本的
PDF
不支持,显示异常。修改为支持中文的编码格式字体即可。
pb9
Data
Window
有一个内置的功能可以将数据
导出
为
PDF
格式。要使用此功能,可以按照以下步骤操作:
1. 首先,确保
Data
Window
已经创建并绑定到数据源。
2. 在代码中,使用以下语句
导出
Data
Window
为
PDF
格式:dw_1.SaveAs("文件路径\文件名.
pdf
",
PDF
!, true)
其中,dw_1是要
导出
的
Data
Window
实例,"文件路径\文件名.
pdf
"是
导出
文件的保存路径和名称。
PDF
!是
导出
格式的标识符,表示要
导出
为
PDF
格式。true表示如果文件已经存在,则覆盖原文件。
3. 执行以上代码后,
Data
Window
将被
导出
为
PDF
文件并保存在指定路径。
需要注意的是,
pb9
Data
Window
的
PDF
导出
功能依赖于操作系统内部的
PDF
打印
机驱动程序。因此,在执行
导出
操作之前,确保操作系统中已经安装了
PDF
打印
机驱动程序。
此外,还可以通过调整
Data
Window
的布局和格式来优化
导出
的
PDF
文件。例如,可以设置
打印
纸张的大小、方向、页边距等。也可以调整字体、颜色、表格样式等,以使
导出
的
PDF
文件更加符合需求。
总之,
pb9
Data
Window
后台
导出
PDF
是一个方便且简单的功能,通过几行代码即可将数据
导出
为
PDF
文件,适用于各种数据报表和文档的生成需求。
### 回答2:
在PowerBuilder 9中,可以使用
Data
Window
控件的后台
导出
功能将数据窗口以
PDF
格式
导出
。
首先,需要创建一个
Data
Window
对象,并在设计时设置其数据源以获取需要
导出
的数据。可以使用SQL语句或存储过程来定义数据源。
接下来,在代码中使用以下语句创建一个
Data
Window
Control对象,并将其与前面创建的
Data
Window
对象关联起来:
Data
Window
Control dwControl
dwControl = CREATE
Data
Window
Control
dwControl.
Data
Object = '
data
window
_name'
然后,可以使用
导出
功能将数据窗口以
PDF
格式
导出
到指定位置。以下是一个示例代码:
string ls_savepath
ls_savepath = "C:\Output\filename.
pdf
"
dwControl.SaveAs(ls_savepath,
PDF
!, false)
以上代码中,"C:\Output\filename.
pdf
"是保存
导出
文件的路径和文件名。
PDF
!常量指示将数据窗口以
PDF
格式
导出
。最后一个参数是指
导出
过程是否需要等待完成,false表示不等待。
在运行时,执行以上代码将触发数据窗口
导出
为
PDF
文件到指定位置。请确保指定的路径是有效的,并且有足够的权限进行读写操作。
需要注意的是,
Data
Window
导出
为
PDF
的功能在PowerBuilder 9中是基于Ghostscript库
实现
的。因此,需要确保Ghostscript库已正确安装并配置在系统路径中,以便PowerBuilder能够调用它来进行
PDF
导出
。
### 回答3:
在PowerBuilder 9中,我们可以通过使用
Data
Window
后台
导出
功能将数据窗口
导出
为
PDF
文件。
要使用
Data
Window
后台
导出
功能,我们需要按照以下步骤操作:
1. 首先,我们需要在
Data
Window
的属性中设置
导出
格式为
PDF
。可以通过设置
Data
Window
对象的保存格式属性为
PDF
来
实现
。
2. 接下来,我们需要创建一个
Data
Store对象,并将
Data
Window
对象分配给
Data
Store。
3. 然后,我们可以使用
Data
Store对象的SaveAs方法将
Data
Window
导出
为
PDF
文件。在SaveAs方法中,我们需要指定
导出
文件的路径和文件名。
下面是一个示例代码,演示了如何使用
Data
Window
后台
导出
功能
导出
为
PDF
文件:
// 创建一个
Data
Store对象
Data
Store ds
ds = CREATE
Data
Store
// 将
Data
Window
对象分配给
Data
Store
dw_my
data
.SetTransObject(ds)
// 设置
Data
Window
导出
格式为
PDF
dw_my
data
.SaveFormat =
PDF
!
// 设置
导出
文件的路径和文件名
ds.
Data
Object = "d_my
data
"
ds.SetTransObject(dw_my
data
)
ds.SaveAs("C:\my
data
.
pdf
")
// 释放
Data
Store和
Data
Window
对象
DESTROY ds
DESTROY dw_my
data
在上述代码中,"dw_my
data
"是要
导出
为
PDF
的
Data
Window
对象,"d_my
data
"是
Data
Window
对象的数据源。我们可以根据实际情况修改这些对象的名称和数据源。
执行上述代码后,
Data
Window
对象将被
导出
为名为"my
data
.
pdf
"的
PDF
文件,保存在"C:\"路径下。
希望以上信息能够帮助您了解如何在PowerBuilder 9中使用
Data
Window
后台
导出
功能
导出
为
PDF
文件。如果有其他问题,请随时提问!