int li_return
dw_pdf.Object.DataWindow.Export.PDF.Method = XSLFOP!//Distill!
dw_pdf.Object.DataWindow.printer = "Acrobat Distiller"//"Sybase DataWindow PS"
dw_pdf.Object.DataWindow.Export.PDF.Distill.CustomPostScript = "yes"
li_return = dw_pdf.saveas("D:\DW_PDF.PDF",PDF!,true)
if li_return = 1 then
messagebox("提示","导出PDF文件成功!")
return
else
messagebox("提示","导出PDF文件失败!")
return
end if
Pb9.0 datawindow saveas pdf文档乱码。谁给解决一下。谢谢。
用Adobe Acrobat 打开时,提示:无法找到或创建字体“1E339dCyberbit”。某些字符无法正常显示或打印。
------解决方案--------------------
代码迷推荐解决方案:java环境变量设置,http://www.daimami.com/java-other/172921.html
------解决方案--------------------
打开其他pdf是否也提示这个
另外可否将你的dw import数据后,发给我:865359042
------解决方案--------------------
dw_pdf.Object.DataWindow.Export.PDF.Method = Distill! //XSLFOP!
换Distill试试,如果还是不行,可能是PDF版本问题,换个PDF版本试试。
------解决方案--------------------
安装PDF虚拟打印最简单 (推荐)
使用ghostscript生成pdf
1.下载安装gs705w32.exe
网址: ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/gs705
也可下载安装ghostscript7.06,但pb9不支持gs8.0及其以上版本!
2.针对PowerBuilder9.0
添加入path环境变量
gs705w32.exe 的安装默认路经为c:/gs(可以修改)
添加环境变量path:
C:\gs\gs7.05\bin
若升级为PB9.01或PB9.01以上则不需添加此环境变量。
(偶就是在这里犯了大错,先是看到了9.0的帮助里说要设置path变量,以前用java习惯了竟然设到了classpath上,后来又看到9.01的帮助上说只要用gs705w32.exe安装就不用设置环境变量,也没有想到要去升级再试试或仔细考虑环境变量的问题,就认为不会是这里出了错,一味的去搞虚拟打印机啊什么的,毫无效果,还以为是sybase在吹牛,惭愧啊!)
3.安装虚拟打印机
直接在"控制面板">"打印机和传真">"添加打印机",
端口任意,默认的LPT1就可以,反正我们也不是用它做打印功能
关键是驱动的选择,此驱动是PowerBuilder9.0自带的,就在PowerBuilder9.0的安装文件夹下,
选择从"磁盘安装">"Sybase\Shared\PowerBuilder\drivers",
此时选择Adobe厂商的inf文件"ADIST5.INF",读取到五个驱动:
"Acrobat Distiller",
"Acrobat Distiller CS",
"Acrobat Distiller CT",
"Acrobat Distiller J",
"Acrobat Distiller K"
选择第一个"Acrobat Distiller"(其它四个也可以,有什么区别到现在偶还不知道),下一步即可>"安装完毕"
也可以在Sybase\Shared\PowerBuilder\drivers下编辑.BAT文件,写入:
rundll32.exe printui.dll,PrintUIEntry /if /f .\\ADIST5.INF /r "LPT1:" /b "Acrobat Distiller" /m "Acrobat Distiller"
运行它也可实现添加虚拟打印机!
在菜单中使用save row as生成pdf报表:
在datawindow的Data Export中设置Format to configure为PDF
设置Method为Distill!
选中Distill Custom PostScript
设置默认打印机为PDF虚拟打印机:
在Printer Setup中选中Acrobat Distiller ...
最后File>save row as>pdf>... 就OK了!!
在代码中利用saveas()生成pdf报表:
int li_ret,li_ret2
string ls_docname, ls_named
li_ret2 = GetFileSaveName("Save file", ls_docname, ls_named, "pdf","pdf file (*.pdf), *.pdf" )
messagebox("TEST","ls_docname = "+ls_docname)
//Saving as PDF select the distill method
dw_1.Object.DataWindow.Export.PDF.Method = Distill!
//select printer
dw_1.Object.DataWindow.Printer = "Acrobat Distiller"
dw_1.Object.DataWindow.Export.PDF.Distill.CustomPostScript="Yes"
//printing pdf files
IF (li_ret2 = 1) THEN
li_ret = dw_1.SaveAs(ls_docname, PDF!, false)
else
return
end if
if li_ret=1 then
messagebox("Message","Successful!")
else
Messagebox('Error','Failed!!!',StopSign!)
end if
------解决方案--------------------
这个问题我好像遇到过,是虚拟打印机的问题。
如果是的话 在打印机的高级设置的 Postscript options ->Treutype Font Download Option->outline