Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10全般 : Excel 2010)
PDFファイルをChromeで開いてTXTファイルに変換したい
投稿日時: 20/03/03 11:28:57
投稿者: BuckeyMama

PDFファイルをChromeで開いて、PDF内のテキストをTXTファイルに貼り付けて保存という操作をVBAで行いたいのですが、可能でしょうか?
 
Chromeで開くところまでは、seleniumを使って出来たのですが、そこからデータを取得する方法がわかりません。

回答
投稿日時: 20/03/03 17:17:11
投稿者: simple

確かに、うまくいきませんね。
    Driver.PageSource()
を表示してみると、下記のとおりで、
内部に情報を持っていて、それを埋め込みオブジェクトとして表示しているようです。
 
<html><head></head><body style="height: 100%; width: 100%; overflow: hidden; margin:0px; background-color: rgb(82, 86, 89);"><embed style="position:absolute; left: 0; top: 0;" width="100%" height="100%" src="about:blank" type="application/pdf" internalid="EBBBF69189DF5FE5C79B732525574C77"></body></html>
 
この内部情報にアクセスする方法があればいいんですけど、
下記のQ&A記事を参照してトライしてもうまくいきません。
 
https://stackoverflow.com/questions/58197818/how-to-get-the-url-of-a-pdf-file-from-a-google-chrome-extension
 
トライされているかたの何かの参考になれば、と。
 
ところで、なぜchrome経由ですか?
PDFからTEXTを取り出す方法は別にいくらもありますし、フリーのツールもたくさんあります。
そうしたものがセキュリティの関係で使えないので、あえてchromeなんですか?
そうなら、chromeで手作業でテキストが取れることをもって良し、とするのも一つの考え方ではないですか?

回答
投稿日時: 20/03/08 17:14:26
投稿者: simple

質問したきり放置されているのは残念です。
 
chromeのPDFの取り扱いは、
少し唐突だが、
wordにおける数式オブジェクトと同じだろう。
解釈して表示はするのだが、
その結果をテキストとしてユーザーに
提供することはしていない。マクロでも。
数式の内部を検索することもできない。
 
今回の話も同様に、
手作業で文字列が取り出せるとしても
マクロでそれを取得することはたぶん
出来ないだろう。
 
あなたの所望することができないからといって、
他人のコメントを無視しておいて構わないことにはならない。
会員資格の妥当性が疑われ、残念というほかない。

回答
投稿日時: 20/03/09 10:37:53
投稿者: simple

追記です。
 
手作業であれば、全選択してコピーすればテキストが得られるので、
これをマクロから実行すればよいと考え、以下をトライしてみたが、
s = "" が返るだけでした。

    Dim s As String
    Driver.ExecuteScript "document.execCommand('SelectAll');"
    s = Driver.ExecuteScript("return window.getSelection().toString();")

通常のWebのテキストに対しては、上記が成功するので、
これもやはりPDFを単にembedしていることに起因しているようです。

トピックに返信