PDF/JavaScript:サンプル「画像PDFの確認をする」

TOP > サンプル / 関数 > *      [...]


説明

PDF ファイルが画像だけか、検索できるテキストが存在するかをチェックする。

以下にJSObject を使用したサンプルを示す。

サンプル

001 Sub CommandButton20_Click() 002 Dim objAcroApp As New Acrobat.AcroApp 003 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 004 Dim objAcroPDDoc As Acrobat.AcroPDDoc 005 Dim lRet As Long 006 Dim jso As Object 007 008 'Acrobatアプリケーションを起動する。 009 lRet = objAcroApp.Show 010 'PDFファイルを開いて表示する。 011 lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "") 012 'PDDocオブジェクトを取得する 013 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc() 014 'JavaScriptオブジェクトを作成する。 015 Set jso = objAcroPDDoc.GetJSObject 016 017 Dim lPage As Long 018 Dim i As Long 019 Dim strWord As String 020 Dim bFlg_TextFound As Boolean 021 022 '初期化 023 bFlg_TextFound = False 024 lPage = 0 025 'チェック 026 If Not jso Is Nothing Then 027 'JavaScriptオブジェクトは作成出来た。 028 Do While lPage < jso.numpages 029 'Debug.Print "jso.numpages=" & jso.numpages 030 For i = 1 To jso.getPageNumWords(lPage) 031 strWord = jso.getPageNthWord(lPage, i, True) 032 'Debug.Print "(" & strWord & ")" 033 'テキストは存在するか? 034 If strWord <> "" Then 035 'テキストが存在した。 036 bFlg_TextFound = True 037 Exit For 038 End If 039 Next i 040 If bFlg_TextFound = True Then Exit Do 041 lPage = lPage + 1 042 Loop 043 End If 044 045 'PDFファイルを閉じます。 046 lRet = objAcroAVDoc.Close(1) 047 'Acrobatアプリケーションを終了する。 048 lRet = objAcroApp.Hide 049 lRet = objAcroApp.Exit 050 If bFlg_TextFound = True Then 051 MsgBox "PDFファイル内にテキストが存在する。" 052 Else 053 MsgBox "PDFファイル内にテキストが存在しない。" 054 End If 055 End Sub


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

補足

  • 上記サンプルは余分なロジックが入っている。
    それは、jso.getPageNumWords(lPage)の値が1以上ならばその頁にテキスト文字が存在する事になる。
    よって、Do While 内だけを
     
    IF jso.getPageNumWords(lPage) > 0 Then
        'テキストが存在した。
        bFlg_TextFound = True
        Exit Do
    End If
    lPage = lPage + 1 '※これが無いとループする
      
    というロジックにしても良い。

動作確認環境

  • WindowsXP Pro + SP2 + フルWindowsUpdate +
    Acrobat 7.0.9 Pro + Office 2003

戻る

「PDF/JavaScript:サンプル「画像PDFの確認をする」」への3件のフィードバック

  1. こんにちは。
    たびたび質問します。
    PDF内にテキストがあるのはサンプルで確認できたのですが
    画像とその画像の高さって求めれますか?
    PDFをメモ帳でひらくとXObject に Heightがあります。
    これが「1」となっているXObjectを削除したいと思ってます。

  2. 「画像とその画像の高さ」ですか?
    一応、再チェックしましたが、OLEにはその様な機能は有りません。
    Acrobat本体にその様な情報を表示する機能が無い場合、OLEにも無いと思ってください。
    PDFTKにもそんな機能があった記憶は無いです。
    iTextは今は全く手を付けていないので判りません。
    「XLSOFT : easyPDF SDK(市販ツール)」と「ABCpdf(市販ツール)」も、これまた全く未調査(理由:金が無い)なので判りません。
    一応気には留めておきます。
    スイマセンが、現段階では良い返事は出来ません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


★ 文章での質問は難しいですよネ。でも、早く解決して、家に帰りたい。


SAMURAI Plugin

コメントをする時は出来れば以下もお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れる時はコードを全て全角文字列にしてください。コチラで半角に戻します。それでもエラーが回避できない時はコメント下さい。個別に対処します。



お仕事で当サイトを見ている方へ
考え込んだら、ご質問下さい。
一緒に解決策を考えましょう。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください