実現したいこと
PDFの生データをPDFのベタデータに変換したいため、chromeでPDFとして印刷しています
自動で実行したいのですが、何かしらのスクリプトで実行できれば教えていただけると助かります。
発生している問題・分からないこと
コパイロットでvbsやPowershellで作成してみましたが、実現に至っていません
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
コパイロットでvbsやPowershellで作成してみましたが、実現に至っていません
補足
特になし
「PDFの生データ」と「PDFのベタデータ」とは何ですか?
単にPDFファイルを印刷したいということででしょうか?
> vbsやPowershellで作成してみました
動かなくてもいいので、そのコードを提示いただくことはできますか?
ありがとうございます。
具体的に言うと生データは中の文字が選択できるような状態で、ベタデータとは選択できなくなるデータです。自己流の表現でスミマセン。
おっしゃる通り、PDFで印刷したいということでした。
今PCが利用できないので、コードは後ほど提示させていただきます
ということは、印刷といっても、紙に出力するのでなくファイルに出力したいということでしょうか。
また、一般的にPDFはAdobeのAcrobatDCなどで印刷すると思うのですが、Chromeを使っているのはなぜでしょうか。
ベタデータ、というのはPDFにアウトラインをかけたい、ということでしょうか?
元のpdfが、文字列オブジェクトで構成されたpdfなのか、テキスト情報が付加された画像で構成されたpdfなのかで「具体的にすること」が変わると思います。前者なら「画像化してpdfにする」、後者なら「画像オブジェクトから紐付いているテキスト情報を削除する」になるはずです。入力のpdfにどのようなものを想定しているのかを書く方がよいでしょう。
あと「目的が何か」も必要そうです。上記の手段だと「適当なソフトでOCRをかけるだけ」で内容はテキストとして抽出できるでしょう。「適当なソフトでOCRをかけるというその一手間をかけさせたい」が目的ならそれでよいのですが、目的が別ならそれは書いた方がよいと思います。
ありがとうございます。目的についてですが、有料のAIOCRソフトを使ってPDFの部分部分を細かく読み取るRPAを作成しているのですが、私の表現するところの生データのPDFではデータがうまく読み込めません。印刷機能を使ってPDFのベタデータ(画像ということだと思います)にすると、読み込みが成功します。RPAでその作業も行っているのですが、この部分がこけやすくて困っています。
そこで、ここだけスクリプトで実現したいです。ソフトは何でも良いですが、コパイロットでvbsで作ろうとしたときAdobeではうまくいかなそうだったのでchromeにしただけです。(ちなみにRPAでもchromeで実行中)
具体的にはこの条件になります。PDFをこの条件にするスクリプトを求めています。(ここ1年くらい悩んでて、うまくいかなかってない)
https://help-dxsuite.inside.ai/hc/ja/articles/7926962917785-%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%A7%E3%81%8D%E3%82%8B%E7%94%BB%E5%83%8F%E3%81%AE%E5%BD%A2%E5%BC%8F%E3%81%AF%E3%81%AA%E3%82%93%E3%81%A7%E3%81%99%E3%81%8B
説明不足でスミマセン。スクリプトにこだわっている理由は、RPAの一部に組み込みたいからです。実行するのは人ではなく、ロボットにやらせる部分です。
ImageMagick – Mastering Digital Image Alchemy
https://imagemagick.org/
ImageMagick の convert コマンドを利用する場合は以下の様になります。
convert -density 300 input.pdf 'output-%03d.jpg'
各ページが JPEG 形式の画像ファイルに変換されて出力されます。(output-001.jpg, output-002.jpg, ...)
ありがとうございます
画像かというキーワードでコパイロットに質問を変えたところ、ゴーストスクリプトやimagemagikを勧めてくれました
しかし、脆弱性もあるようなので、会社でのインストールは厳しそうです
良い方法が見つかったと思ったのですが…
やはり難しいのでしょうか
それでは Poppler に含まれている pdftoppm コマンドはどうでしょうか。(Popplerにも脆弱性があるかもしれませんが)
Poppler
https://poppler.freedesktop.org/
Windows 版のバイナリは以下で配布されています。
Releases · oschwartz10612/poppler-windows
https://github.com/oschwartz10612/poppler-windows/releases
実行方法は以下の通りです。
pdftoppm -r 300 -jpeg input.pdf output
-r は解像度(DPI) を指定します。output-01.jpg, output-02.jpg, ... が出力されます。
