上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Cedric
註冊時間: 2003-08-02 文章: 19
第 1 樓
|
發表於: 星期四 五月 19, 2011 10:35 am 文章主題: 請教一下VFP轉PDF |
|
|
已有搜尋過之前文章, 發現可以利用 PDF Maker 及 Ghostscript 來產生
目前使用VFP8, 程式語法如下:
lcReportName = 'test'
lcFileName = 'd:\轉檔_pdf\0001.pdf'
REPORT FORM (lcReportName) NOCONSOLE TO FILE (lcFileName)
=ps2pdf(lcFileName)
在執行 "=ps2pdf(lcFileName)" 時出現以下訊息:
Error: undefined in PK
Operand stack:
Execution stack:
%interp_exit .runexec2 -- nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1910 1 3 %oparray_pop 1909 1 3 %oparray_pop 1893 1 3 %oparray_pop 1787 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:1161/1684(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)--
Current allocation mode is local
Current file position is 3
GPL Ghostscript 9.02: Unrecoverable err, exit code 1
Close this window with the close button on the title bar or the system menu.
作業系統為 Win2003
Download gs902w32.exe 安裝在 d:\c_temp\gs\gs9.02 目錄下,
LocationOfgs.ini 的內容為: d:\c_temp\gs\gs9.02\bin\gswin32.exe
ps2pdf.PRG 存放在 d:\tapp\prog 目錄下, 執行檔在 d:\tapp\tapp.exe
請教一下各位, 該如何解決此問題呢? 謝謝 |
|
回頂端 |
|
|
jerryclt
註冊時間: 2009-03-10 文章: 334 來自: 佛心來的
第 2 樓
|
發表於: 星期五 五月 20, 2011 9:11 am 文章主題: |
|
|
個人對PDF不是很熟,
直覺下判斷是:
REPORT FORM (lcReportName) NOCONSOLE TO FILE (lcFileName)
這裡出了問題,
試試直接印到PDF的虛擬印表機! |
|
回頂端 |
|
|
richshih
註冊時間: 2007-10-11 文章: 153
第 3 樓
|
發表於: 星期一 五月 23, 2011 4:06 pm 文章主題: |
|
|
ps2pdf(lcFileName)
是PS2pdf 不是Pdf2pdf
lcFileName 副檔名是ps |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 4 樓
|
發表於: 星期一 五月 23, 2011 10:17 pm 文章主題: |
|
|
早期我也是用 Ghostscript 來轉 pdf
後來嫌麻煩,不用它了
建議比較簡單的方法是
Set Printer TO NAME "DOPDF V7" &&PDF的虛擬印表機,看您用那個都行
SET PRINTER TO "f:\myfile.pdf"
Report Form (vReportName) To File "f:\myfile.pdf" NOCONSOLE NODIALOG
三行搞定 |
|
回頂端 |
|
|
raster
註冊時間: 2010-02-03 文章: 15
第 5 樓
|
發表於: 星期二 五月 24, 2011 4:39 pm 文章主題: |
|
|
我是使用 Bullzip PDF Printer
官網:
http://www.bullzip.com/products/pdf/info.php
下載安裝檔:
http://www.bullzip.com/products/pdf/info.php#download
程式碼範例:
Set Printer To Name ("Bullzip PDF Printer")
bullzip=Createobject("bullzip.pdfprintersettings")
bullzip.setvalue("confirmoverwrite","no") &&一些有的沒的的設定,例如轉完後是否存檔、是否開啟...
bullzip.setvalue("showsaveas","never")
bullzip.setvalue("showsettings","never")
bullzip.setvalue("showpdf","no")
bullzip.setvalue("showprogress","no")
bullzip.setvalue("showprogressfinished","no")
select * from AAA into cursor BBB &&反正就是資料來源
bullzip.WriteSettings(.T.)
bullzip.setvalue("output","C:\temp\pdf_output\CCC.PDF") &&設定輸出的位置
bullzip.WriteSettings(.T.) &&這邊我不清楚為何要兩次...
formname='REPORT FORM DDDD.frx TO PRINTER NOCONSOLE' &&我有先用VFP排好一張report,然後這邊就是把report的東西丟往printer(當下也就是指向PDF printer)
&formname
Release bullzip &&收尾
Set Printer To Default
*==============
另外若要合併多張PDF的話:
file_txt="A01.PDF|A02.PDF|A03.PDF" &&這些PDF要先產生好
bullzip.setvalue("mergefile",file_txt)
bullzip.WriteSettings(.T.)
bullzip.setvalue("output","C:\temp\pdf_output\CCC_final.PDF")
bullzip.WriteSettings(.T.) |
|
回頂端 |
|
|
Cedric
註冊時間: 2003-08-02 文章: 19
第 6 樓
|
發表於: 星期三 六月 15, 2011 4:46 pm 文章主題: 請教一下VFP轉PDF (用 dopdf v7) |
|
|
ckp6250 寫到: | 早期我也是用 Ghostscript 來轉 pdf
後來嫌麻煩,不用它了
建議比較簡單的方法是
Set Printer TO NAME "DOPDF V7" &&PDF的虛擬印表機,看您用那個都行
SET PRINTER TO "f:\myfile.pdf"
Report Form (vReportName) To File "f:\myfile.pdf" NOCONSOLE NODIALOG
三行搞定 |
有試用過上述三行指令
Set Printer TO NAME "DOPDF V7"
SET PRINTER TO "D:\轉檔_PDF\1etest.pdf"
Report Form test To File "D:\轉檔_PDF\1etest.pdf" NOCONSOLE NODIALOG
在執行第3行時 會出現 儲存PDF檔 的視窗
按確認後, 除了 1etest.pdf 外, 會另外產生一個 test.pdf
test.pdf 可以開啟檔案
但 1etest.pdf 會出現以下訊息
acrobat無法開啟 "1etest.pdf", 因為檔案類型不受支援, 或者檔案已損壞(例如作為電子郵件附件傳送但解碼不正確).
要建立ADOBE PDF文件, 請使用來源應用程式, 然後將文件列印至adobe PDF.
請問, 這該如何解決呢? 謝謝 |
|
回頂端 |
|
|
Cedric
註冊時間: 2003-08-02 文章: 19
第 7 樓
|
|
回頂端 |
|
|
arronlee
註冊時間: 2013-09-04 文章: 6
第 8 樓
|
|
回頂端 |
|
|
ezpos
註冊時間: 2011-04-20 文章: 323
第 9 樓
|
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 10 樓
|
|
回頂端 |
|
|
|