Pb9.0 datawindow saveas pdf文档乱码,该怎么处理


Pb9.0 datawindow saveas pdf文档乱码

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”。某些字符无法正常显示或打印。

PowerBuilder语言基础 PowerBuilder 程序开发

真剣勝負こDは 11 years, 1 month ago


打开其他pdf是否也提示这个

另外可否将你的dw import数据后,发给我:865359042

saladin answered 10 years, 11 months ago

java环境变量设置,

qwesasd answered 10 years, 11 months ago


这个问题我好像遇到过,是虚拟打印机的问题。
如果是的话 在打印机的高级设置的 Postscript options ->Treutype Font Download Option->outline

hooriu answered 10 years, 11 months ago


安装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 liret,liret2
string lsdocname, lsnamed

liret2 = GetFileSaveName("Save file", lsdocname, lsnamed, "pdf","pdf file (*.pdf), *.pdf" )
messagebox("TEST","ls
docname = "+lsdocname)

//Saving as PDF select the distill method
dw
1.Object.DataWindow.Export.PDF.Method = Distill!

//select printer
dw1.Object.DataWindow.Printer = "Acrobat Distiller"
dw
1.Object.DataWindow.Export.PDF.Distill.CustomPostScript="Yes"

//printing pdf files
IF (liret2 = 1) THEN
li
ret = dw1.SaveAs(lsdocname, PDF!, false)
else
return
end if

if li_ret=1 then
messagebox("Message","Successful!")
else
Messagebox('Error','Failed!!!',StopSign!)
end if

blooful answered 10 years, 11 months ago


dw_pdf.Object.DataWindow.Export.PDF.Method = Distill! //XSLFOP!
换Distill试试,如果还是不行,可能是PDF版本问题,换个PDF版本试试。

某不是鬼畜 answered 10 years, 11 months ago

Your Answer