線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:5581
推到 Plurk!
推到 Facebook!

哪裡有轉出 PDF 的 dll 或元件?

答題得分者是:t27
holydisciple
一般會員


發表:3
回覆:24
積分:10
註冊:2009-11-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-11-09 10:15:00 IP:220.128.xxx.xxx 訂閱
各位大大,

我需要從 Delphi 轉出 pdf 的 dll,現在使用 PowerPDF,免費但不支援中文,我只好把中文字連同底圖先轉為點陣圖,再把點陣圖轉為 pdf,但這樣有缺點,一是文字會模糊,二是文字無法複製。

有哪位大大使用過 PDF 轉出功能的元件或 dll,請推薦一下,要錢的也可以,我現在用 Delphi 2006 的 Win32 模式,不能用轉檔元件,例如那種 QuickReport 轉 pdf 的元件。元件必須支援由 Delphi 提供的繪圖和文字函式直接輸出至 pdf 格式,例如呼叫 Canvas.TextOut, FillRect 等函式,因為報表程式輸出的內容都用 Canvas 裡面的函式產生,轉出 pdf 也必須如此。

謝謝
------
有沒有可能,上帝使用程式操作世界?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-11-10 01:44:34 IP:118.169.xxx.xxx 未訂閱
FastReport 有提供這類功能
holydisciple
一般會員


發表:3
回覆:24
積分:10
註冊:2009-11-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-11-11 11:11:59 IP:220.128.xxx.xxx 訂閱
版主大大,

我的報表程式是自己寫的,都用 Canvas 的函式輸出文字和圖形,有辦法呼叫 FastReport 的某些函式就能產生 pdf 嗎?
------
有沒有可能,上帝使用程式操作世界?
t27
中階會員


發表:34
回覆:95
積分:90
註冊:2002-06-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-11-12 14:00:03 IP:61.224.xxx.xxx 訂閱
可以參考看看

http://www.pdfforge.org/

相關程式範例參考:

procedure TFrmBS00P.ToPDF(cOutFile:string;nProgram:integer = 1);
var
PDFCreator, PDFOptions, S_Options :Variant;
InFname,OutFname,OutDir,PrinterName,DefaultPrinter,DefaultDir,cExt : string;
O_Options, O_Creator : OleVariant;
procedure SetDefaultPrinter1(NewDefPrinter: string);
var
ResStr: array[0..255] of Char;
begin
StrPCopy(ResStr, NewdefPrinter);
WriteProfileString('windows', 'device', ResStr);
StrCopy(ResStr, 'windows');
SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Longint(@ResStr));
end;
begin
PrinterName := 'PDFCreator';

if GetPDFPrinter(PrinterName) then
begin
InFname := cOutFile;
cExt := ExtractFileExt(InFname);
OutFname := StringReplace(InFname,cExt,'',[]);
OutFname := ExtractFileName(OutFname);
OutDir := ExtractFilePath(InFname);
PDFCreator := CreateOleObject('PDFCreator.clsPDFCreator');
PDFCreator.cStart('/NoProcessingAtStartup');
PDFCreator.cOption('UseAutosave') := 1;
PDFCreator.cOption('UseAutosaveDirectory') := 1;
PDFCreator.cOption('AutosaveDirectory') := OutDir;
PDFCreator.cOption('AutosaveFilename') := OutFname;
PDFCreator.cOption('AutosaveFormat') := 0; //0:PDF
PDFCreator.cOption('AutosaveStartStandardProgram') := nProgram;//1;
PDFCreator.cOption('ShowAnimation') := 0;
PDFCreator.cOption('NoConfirmMessageSwitchingDefaultprinter') := 1;
PDFCreator.cVisible := False;
PDFCreator.cWindowState := 1;
PDFCreator.cClearcache;
//2009.02.16
//SetDefaultPrinter1(PrinterName);
PDFCreator.cDefaultPrinter := PrinterName;
//PDFCreator.cPrintfile(InFname);
PDFCreator.cPrinterStop := False;
DeleteFile(cOutFile);
end
else
begin
ShowMsg(MTInfo,'未裝設 PDFCreator Driver !');
end;
end;


編輯記錄
t27 重新編輯於 2009-11-12 14:07:25, 註解 無‧
holydisciple
一般會員


發表:3
回覆:24
積分:10
註冊:2009-11-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-11-12 17:58:08 IP:220.128.xxx.xxx 訂閱
t27 大大,

PDFCreator 好像是轉檔程式,要先轉出一個資料檔之類的,再把檔名交給 PDFCreator 轉成 PDF,是這樣嗎?
因為我的報表不只有文字,還有圖形和線條,要把圖形轉到資料檔,可能不容易。
------
有沒有可能,上帝使用程式操作世界?
t27
中階會員


發表:34
回覆:95
積分:90
註冊:2002-06-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-11-12 20:57:05 IP:61.228.xxx.xxx 訂閱
 PDFCreator 是類似 adobe writer 的東西, 用法也一樣
只是它可以被程式叫用.
只要印表機設定到PDFCreator, 即可輸出為PDF檔.
編輯記錄
t27 重新編輯於 2009-11-12 20:59:21, 註解 無‧
系統時間:2024-04-19 9:51:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!