讀取PDF的方法與元件 |
答題得分者是:mephise
|
juneo
高階會員 發表:103 回覆:190 積分:118 註冊:2004-05-13 發送簡訊給我 |
|
mephise
高階會員 發表:4 回覆:149 積分:205 註冊:2004-02-09 發送簡訊給我 |
如果只是要在 Form 上面顯示PDF, 然後手動複製貼上到 Memo 上的話, 這倒是不難
1. 你的電腦上必須先安裝 Acrobat Viewer 2. 在你的 Delphi IDE 環境主選單上 Component | Import Component 3. 選擇 Import ActiveX Control 4. Delphi IDE 會幫你找出電腦上目前所有的 Active Control 5. 選擇 Adobe Arcobat Viewer 然後安裝它 6. 這下子你的元件盤就多了一個 TAcroPDF 的元件了, 你可以用它來顯示 PDF 擋案 7. 能顯示就能複製貼上了, 大功告成! 此外, 例如你想要在 Form 上面顯示 Flash 也是這麼搞的, 你的IE想要能顯示Flash 的話, IE就會問你要不要下載 Flash 的 Active Control 只要曾經下載過, 你的 Delphi IDE 就會幫你找到, 於是你的 Form 也能顯示 swf 的 Flash 動畫了 希望這就是你想要的 ^_^ PS. 我是使用 XE, 如果你是其他版本, 步驟會略有不同, 但是基本原理是一樣的 ===================引 用 juneo 文 章=================== 問題:我想請問,如果要將PDF轉TEXT,需要怎麼做? 之前有找到一篇將PDF打開後,用複製貼上的方法將PDF文字轉貼到MEMO1元件的文章,不過我電腦毀了,就再找不到。 我有找過站上的PDF相關文章,我找不到有可以開啟PDF與讀取PDF的文章,請大大指教一下,謝謝。
------
Mephise Chen 前興德工程師 |
lucky4wj
一般會員 發表:1 回覆:11 積分:17 註冊:2008-11-06 發送簡訊給我 |
|
juneo
高階會員 發表:103 回覆:190 積分:118 註冊:2004-05-13 發送簡訊給我 |
安裝PDF元件的方法
1.使用功能列上的Component 2.Import ActiveX Control 3.選擇Adobe Acrobat Browser Control Type Library 4.接著點install繼續安裝就可以了 5.ActiveX 裡面就會多個AcroPDF1 元件 範例程式碼 [code cpp] //以下三個程序必須分開執行,混在一起會造成時間上複製不全 void __fastcall TForm1::Button1Click(TObject *Sender) { //開啟PDF檔案 AnsiString temp = "1.pdf"; PDFOpen(temp); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { //全選與複製動作 PDFAllCopy(0); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { //將記憶體的資料複製到Memo中,在儲存成為TXT檔案 PDFSaveAs("temp.txt"); } //--------------------------------------------------------------------------- void __fastcall TForm1::PDFOpen(AnsiString FileName) { //開啟PDF檔案 AnsiString temp = FileName; wchar_t *pdfFile = new wchar_t[temp.Length() 1]; temp.WideChar(pdfFile, temp.Length() 1); AcroPDF1->LoadFile(pdfFile); AcroPDF1->gotoFirstPage(); delete pdfFile; } //--------------------------------------------------------------------------- void __fastcall TForm1::PDFAllCopy(TObject *Sender) { //全選與複製動作 AcroPDF1->SetFocus(); //::SetFocus(AcroPDF1->Handle); keybd_event(VK_CONTROL, 0, 0, 0); // 按下 Ctrl keybd_event(65, 0, 0, 0); // 按下 A keybd_event(65, 0, KEYEVENTF_KEYUP, 0); // 放開 A keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // 放開 Ctrl keybd_event(VK_CONTROL, 0, 0, 0); // 按下 Ctrl keybd_event(67, 0, 0, 0); // 按下 C keybd_event(67, 0, KEYEVENTF_KEYUP, 0); // 放開 C keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // 放開 Ctrl } //--------------------------------------------------------------------------- void __fastcall TForm1::PDFSaveAs(AnsiString SaveFileName) { //將記憶體的資料複製到Memo中,在儲存成為TXT檔案 SendMessage(AcroPDF1->Handle,WM_COPY,0,0); TMemo *ed = new TMemo(AcroPDF1); ed->Parent = this; SendMessage(ed->Handle,WM_PASTE,0,0); ed->Lines->SaveToFile(SaveFileName); delete ed; } //--------------------------------------------------------------------------- [/code] 參考資料 請問使用pdf元件,呼叫另存文字檔的函式或是秀出他的功能列 http://delphi.ktop.com.tw/board.php?cid=168&fid=913&tid=72893 請問使用AcroPDF.dll這個原件是否有全選複製的函式? http://delphi.ktop.com.tw/board.php?cid=168&fid=913&tid=71519 如何於Delphi中顯示Adobe PDF檔案資料 http://delphi.ktop.com.tw/board.php?cid=31&fid=97&tid=18246 如何使 程式像 Acrobat Read 般銜在 IE 中 http://delphi.ktop.com.tw/board.php?cid=30&fid=72&tid=28022 請問"pdf.ocx" 這個元件的問題 http://delphi.ktop.com.tw/board.php?cid=168&fid=912&tid=71064
編輯記錄
juneo 重新編輯於 2012-02-16 00:58:40, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |