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

讀取PDF的方法與元件

答題得分者是:mephise
juneo
高階會員


發表:103
回覆:190
積分:118
註冊:2004-05-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-07-27 16:25:45 IP:111.251.xxx.xxx 訂閱
問題:我想請問,如果要將PDF轉TEXT,需要怎麼做?
之前有找到一篇將PDF打開後,用複製貼上的方法將PDF文字轉貼到MEMO1元件的文章,不過我電腦毀了,就再找不到。

我有找過站上的PDF相關文章,我找不到有可以開啟PDF與讀取PDF的文章,請大大指教一下,謝謝。


mephise
高階會員


發表:4
回覆:149
積分:205
註冊:2004-02-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-07-30 18:13:38 IP:59.115.xxx.xxx 訂閱
如果只是要在 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-09-12 09:09:10 IP:112.85.xxx.xxx 未訂閱
更进一步说,楼上说明的是扩展delphi功能的方法。
利用上面的方法,就可以将你系统安装的active-x控件加以利用,
当然前提是你的机器上面要安装有相应的active-x控件。
juneo
高階會員


發表:103
回覆:190
積分:118
註冊:2004-05-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2012-02-16 15:57:30 IP:111.251.xxx.xxx 訂閱
安裝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, 註解 無‧
系統時間:2017-10-20 0:43:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!