GetPDFTextEx

〜解説〜
PDFファイルをテキストファイルに変換するGetPDFText()の拡張版APIです。
指定されたページを取得する事ができて、進行状況のプログレスバーが表示されるようになります。

〜引数〜
PDF:PDFファイルのハンドル
StartPos:読み込みを開始するページの番号
EndPos:読み込みを終了するページの番号
SaveFileName:保存先のファイル名
Windowhandle:親ウインドウのハンドル(処理中にDLLがウインドウを制御します)
LinePage:ページごとに区切り線をいれるかどうか TRUE or FALSE

〜戻り値〜
成功:1 失敗:(-1)失敗(-2)ユーザーによって処理をキャンセルされた

〜備考〜
進行状況のプログレスバーが表示されるようになってますので、
重いPDFファイルを操作する場合などはこちらの関数を使用してください。
本来はコールバックを使用した方が良いのですがカンタンなやり方にしてみました。

〜サンプル〜

C/C++

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                                 LPSTR lpszCmdLine, int nCmdShow)
{   
  HINSTANCE pdftools=NULL; // pdftool.dllのインスタンスハンドル
  pLoadPDF  LoadPDF=NULL;  // LoadPDF API
  pFreePDF  FreePDF=NULL;  // FreePDF API
  pGetPDFPageCount GetPDFPageCount=NULL; // GetPDFPageCount API
  pGetPDFTextEx GetPDFTextEx=NULL; // GetPDFTextEx API
  int pdf,pagecnt;

  // DLLの読みこみ
  pdftools = LoadLibrary("pdftool.dll");
  if (pdftools!=NULL)
  {  
     //各APIの呼び出し
     LoadPDF = (pLoadPDF)GetProcAddress(pdftools, "LoadPDF"); 
     FreePDF = (pFreePDF)GetProcAddress(pdftools, "FreePDF"); 
     GetPDFPageCount = (pGetPDFPageCount)GetProcAddress(pdftools, 
                                                 "GetPDFPageCount");  
     GetPDFTextEx = (pGetPDFTextEx)GetProcAddress(pdftools, 
                                                 "GetPDFTextEx"); 
       // PDFファイルを読み込む
       pdf =LoadPDF("c:\\test.pdf");
       // PDFファイルのページ数を取得する
       pagecnt =GetPDFPageCount(pdf);
       // 1ページ目から最後のページをテキストに変換
       GetPDFTextEx(pdf,1,pagecnt,"c:\\test.txt",0,true);
       // // PDFファイルのハンドルを解放する
       FreePDF(pdf);

      FreeLibrary(pdftools);
   }
   return(0);
}

Delphi

procedure TForm1.Button1Click(Sender: TObject);
var
 pdf,pagecnt: integer;
begin
 // PDFファイルを読み込む
 pdf:=LoadPDF('c:\test.pdf');
 // PDFファイルのページ数を取得する
 pagecnt:=GetPDFPageCount(pdf); 
 // 1ページ目から最後のページをテキストに変換
 GetPDFTextEx(pdf,1,pagecnt,'c:\test.txt',Self.Handle,true);
 // PDFファイルのハンドルを解放する
 FreePDF(pdf);
end;

VB

Private Sub Command1_Click()
Dim pdf, pagecnt, Ret As Long 
 ' PDFファイルを読み込む
 pdf = LoadPDF("c:\test.pdf")
 ' PDFファイルのページ数を取得する
 pagecnt = GetPDFPageCount(pdf)
 ' 1ページ目から最後のページをテキストに変換
 Ret = GetPDFTextEx(pdf, 1, pagecnt, "c:\test.txt", Me.hWnd, False)
  ' PDFファイルのハンドルを解放する
 FreePDF (pdf)
End Sub
※VBAの場合は「Me.hWnd」を「Application.Hwnd」にします。


ホーム