0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

書類pdfをxmlに変換するWindowsコマンド

Last updated at Posted at 2024-10-09

一般に、Office系システムや帳票システム等で作成されたPDFは
テキストや罫線の情報をそのまま保持しており
テキスト検索やコピーなどができる状態になっています。

大量のPDFを対象に何かしたい場合、XML化するとテキスト処理ができ扱いやすくなります。
様々なライブラリもございますが、
一番手軽に使えるのは、Office系の変換です。
試しにやってみるには、「ファイルを開く」でPDFを開き、「名前を付けて保存」でXML形式を選択します。

以下、Windowsでフォルダ内のPDFファイルをxml変換する方法をご紹介します。

Microsoft Officeの場合

こちらのWordマクロを参考にしました。
拡張子を"doc"ではなく"pdf"に、処理内容を"xml形式で保存"にします。

フォルダ内のWordファイルを処理する
https://yourpearloyster.com/windows/wordvba/700.html

表示更新は止める方がオススメです。

Application.ScreenUpdating プロパティ - Microsoft Learn
https://learn.microsoft.com/ja-jp/office/vba/api/word.application.screenupdating

マクロをコマンドライン実行する方法もあります。

Microsoft Office 製品のコマンド ライン スイッチ
https://support.microsoft.com/ja-jp/office/microsoft-office-%E8%A3%BD%E5%93%81%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89-%E3%83%A9%E3%82%A4%E3%83%B3-%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81-079164cd-4ef5-4178-b235-441737deb3a6

Libre Officeの場合

Libreには形式変換専用コマンドが用意されています。

File Conversion Filter Names
https://help.libreoffice.org/latest/en-US/text/shared/guide/convertfilters.html

ところがdocからpdfなど、上記に記載されている形式以外では、なかなか成功しません。
pdfからxmlにする方法として、成功したのはDrawで扱うfodg形式です。
fodg形式は描画要素をXMLで保有しています。

rem ------------------------------
rem Libre Drawをサイレント実行してpdfファイルをfodg形式に変換するバッチ
rem ------------------------------
rem 空のフォルダにこのバッチ(拡張子を.batで保存)と対象pdf(複数可)を入れて実行
rem Draw以外も含めたLibre全終了するまでファイルを掴むので注意
rem ------------------------------

for %%f in (*.pdf) do (
  "C:\Program\LibreOffice\sdraw.exe" --headless --convert-to fodg %%f
)

その他

Google WorkspaceもGASでWordの場合と同様のマクロを書けばできそうです。
ほかプログラミング言語毎の内容やOffice系以外のツールを使用する場合など方法は無限です。

類似内容でPower ShellでPDFの文字を抽出する方法の紹介もございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?