【Delphi】【問題】使用MODI 列印TIF文件會太小 |
尚未結案
|
cwvdavid
一般會員 發表:1 回覆:4 積分:1 註冊:2005-02-16 發送簡訊給我 |
不曉得各位先進有沒有過這種情形, 其實敝人是需要將TIF文件(很多頁)透過Delphi列印出來,
目前在這裡只找到2篇有介紹的
http://delphi.ktop.com.tw/topic.php?topic_id=53772
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=55116 雖然這兩篇的重點不在於列印,而是OCR,
但敝人也藉著這2篇,另外參考微軟的說明,
透過PrintOut,順利將Tif文件列印出來了... 問題是,如果一個Tif文件,內含2頁以上,
第二頁之後的,會變的非常非常小 敝人的程式碼如下
procedure TForm1.Button2Click(Sender: TObject);
var
ddt: IDocument;
i: Integer;
begin if OpenDialog1.FileName = '' then
begin
ShowMessage('請先選擇一個tif檔案!');
exit;
end; ddt := IDispatch(CreateOleObject('MODI.Document')) as IDocument;
try
ddt.Create(OpenDialog1.FileName);
//第一次執行程式時, 會發生[類別尚未登錄]
//所以要try之後再執行一次, 才會成功(之後就不會了)
except
ddt.Create(OpenDialog1.FileName);
end;
i:=ddt.Images.Count - 1; ddt.PrintOut(0,i,1,'FinePrint','',true,1);
ddt := nil;
end;
只要使用了PrintOut,就會有這個問題, 後來敝人在
http://www.codeproject.com/csharp/MartinsPaperlessDesktop.asp
找到了 AxMODI 的使用,(不過是給dotNET的...) 敝人實測後,發現只要import AxMODI
(它也是在 Microsoft's Document Imaging Library 裡面)
(不過它是屬於工具列上面的控制項元件) import之後,在列印前,
加入下面2行程式(下面2行是VB.NET的寫法)
AxMiDocView1.Document = ddt 'ddt就是Delphi的IDocument
AxMiDocView1.Refresh()
(當然,要先把AxMiDocView拉到畫面上,或是事先宣告) 這麼一來,所有的Tif畫面都會因為有
AxMiDocView,而不會走樣, 問題就是,敝人在Delphi 6試著要從
Microsoft's Document Imaging Library 中
加入控制項,但就是沒有成功(應該說跟本不知道怎麼加...) 更令人頭痛的是,在Google,AxMiDocView所能查到的資料
少之又少,... 在無計可施之下,只好來向前輩們求助,
望不吝指教, 謝謝大家
敝人衷心感謝,謝謝
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |