請教如何抓取報表畫面 |
|
peipei36
一般會員 發表:8 回覆:51 積分:16 註冊:2002-03-13 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 請教一下下... 當報表輸出為A4橫印時,我想抓取報表內容畫面,不知該如何做?! (也就是說,報表畫面是處於「含捲軸」的大畫面,我想直接透過程式碼取得 它的內容並存成圖形檔,不然,透過一般抓圖軟體必須拼裝圖片...) 先謝謝您耐心看完我的問題!! 發表人 - peipei36 於 2002/03/13 13:21:22哈哈!您來對地方了! 請至本站"會員貢獻檔案上傳專區"下載fineprint軟體, 可印表前將預視的畫面轉至剪貼簿,再到小畫家貼上就有圖檔了! 有問題再發問吧! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
peipei36
一般會員 發表:8 回覆:51 積分:16 註冊:2002-03-13 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 感謝站大提供這麼「偷懶」的工具^^~ 不過,我在98執行發現(該網站有for 98的FinePrint), 部份文字顯示不完整、粗體字模糊掉.... 我原來想要透過Delphi的QuickReport在報表Preview時, 利用它的QRPrint取得Bitmap,並存成圖形檔... 因為我想這樣應該是最不會失真的(透過報表顯示元件QRPrint..) 但試不出來(取到的圖都是nil..)~ 不知是不是我的想法不對...謝謝站大囉^^嗯!您說得對,給我一點時間試試您說的方法! 應是可行的! 請等我幾天,ok? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
ccl
一般會員 發表:2 回覆:12 積分:2 註冊:2002-03-11 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 利用它的QRPrint取得Bitmap,並存成圖形檔... 因為我想這樣應該是最不會失真的(透過報表顯示元件QRPrint..) 但試不出來(取到的圖都是nil..)~ 不知是不是我的想法不對...謝謝站大囉^^我試過了,可以抓到圖,但是抓到的是QuickRep1在設計階段的畫面, 並非預視時看到的畫面,我是用 QuickRep1.PaintTo(image1.handle,0,0) 所以可能此路不通... ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
peipei36
一般會員 發表:8 回覆:51 積分:16 註冊:2002-03-13 發送簡訊給我 |
謝謝站大~
本來想放棄了...不過看您解問題的比我問問題的還努力...
決定不睡覺也要給它踹出來^^~
結果試成功了..至少可以存成MetaFile...
procedure TForm1.SummaryBand1AfterPrint(Sender: TQRCustomBand; BandPrinted: Boolean); var mf1:TMetaFile; begin mf1 := TMetaFile.Create; mf1.Assign(QuickRep1.QRPrinter.GetPage(2)); //第幾頁 mf1.SaveToFile('c:\tmp.emf'); mf1.Free; end;再次感謝您的辛苦囉!! ps.好像QRPrinter才是真正runtime時保有該影像的地方... 發表人 - peipei36 於 2002/03/15 13:41:28 發表人 - peipei36 於 2002/03/15 13:42:04 |
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|
peipei36
一般會員 發表:8 回覆:51 積分:16 註冊:2002-03-13 發送簡訊給我 |
啊~~我高興得太早了...
我試這樣的方式..若圖片大一些(例如A4橫印)..
仍會造成記憶體出錯..等於並未解決>.< 另外,MetaFile如何轉我尚未試,我先以word或Emf viewer的軟體測ok..
不然,若要轉bmp,不曉得透過Clipboard行不行得通..
例如:
var MyFormat : Word; AData : THandle; APalette: HPALETTE; begin QuickRep1.QRPrinter.GetPage(1).SaveToClipboardFormat(MyFormat,AData,APalette); ClipBoard.SetAsHandle(MyFormat,AData); ...發表人 - peipei36 於 2002/03/15 17:04:07 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |