失礼します。
[課題内容]
私たちのプロジェクトでは、doc/docxの内容をOCRにかけて、wordドキュメント内のテキスト、画像内テキスト、図形内テキストのすべてをデータベースに登録したいと考えています。その際、一旦doc/docxをPDFに変換する必要があり、それについてLibreOfficeをCLIで用いています。
その上で、現状Dockerコンテナ環境上で、Wordファイル(Doc, Docx)をLibreOfficeでPDF変換する際に、元ファイルにおけるページ構成の状態と異なる出力になってしまうことが確認されています。
これを解消するための、コマンドラインオプションや、Docker環境内でのマクロの適用の仕方をご教示頂ければ幸いです。あるいは、当該の事象がLibreOfficeのバグによって発生するものであり、LibreOffice以外のソースを使った方が良いのかについても教えて頂ければ幸いです。
[現状について]
- WSLのUbuntu環境で、LibreOffice 24.2.5.2を使用しており、こちらでは検証用docファイルに対して、一応望ましい出力がされている
- 元docファイルのフォントはすべて、MS 明朝。対して、WSL内で変換したPDFは日本語文字がIPA 明朝・数字がDejaVu Sans。Dockerコンテナ内で変換したPDFは日本語文字がIPA 明朝・数字がNoto Sans
- WSL内PDFはLine Spacing(行間幅)が1.7であるのに対して、Docker内PDFは1.92。元docファイルは1.16(等倍率の長さがそもそもpdfとdocでは違う可能性あり)
- Docker環境内のLibreOfficeもDockerfileから24.2.5.2をインストール。
- WSL内の/usr/share/fonts内のフォントはDocker内にコピー済み
- WSL内のLibreOfficeの設定ファイル(~/.config/libreoffice/)はDocker内にコピー済み
- registrymodifications.xcuなどでNoto SansフォントをDejaVu Sansに置き換える設定などを記述したが出力結果は変わらず
- 数字のフォントを一律でDejaVu Sansにするbasicマクロを組み、Docker内の/root/.config/libreoffice/4/user/Scripts/basic/下に配置して、マクロを呼びながらPDF化のコマンドを叩いたが、コマンド自体はエラーメッセージ等出力されなかったが、マクロが実行された形跡がない。別にマクロが正常に動作しているかを確認するための簡易なマクロを組み、そちらも実行したがやはり何も出力がされない。
質問文自体が長くなってしまうため、Dockerfileの記述どのようにしているかなどは適宜コメントに返信する形をとりたいと思います。
[検証用ファイル]
- 元docファイル :
doctest4.doc (31 KB)
(new users can post 2 links というコメントが出たので、PDFに関しては改めてコメントで貼ります。)