2

Python を使用して、暗号化されたドキュメント (doc/docx) を PDF に変換しようとしています。

私がすることは:

  • 最初に別のフォルダーで一時的に復号化します
  • unoconv コマンド ラインを使用して、復号化されたファイルを pdf に変換します。

unoconv -f pdf -eSelectPdfVersaion=1 [path-to-file]

変換は実行されますが、doc および docx ファイルで、元の暗号化されたファイルには影響しないドキュメント (復号化されたファイルと pdf の両方) の外観が変更されていることに気付きました (ファイルを単純に復号化してテストしました)。 Windows クライアントと元の復号化されたファイルから)。

外観は基本的に、ページ数に影響するドキュメント スタイルの変更です。たとえば、13 ページの Word ドキュメントは 14 ページの Word ドキュメントに復号化され、14 ページの PDF ファイルに変換されます。同様に、348 ページの doc ファイルは 330 ページの doc ファイルに変換され、次に 330 ページの PDF ファイルに変換されます。

私は、Microsoft Word と Unoconv (4.3) と共にインストールされた LibreOffice のバージョンとの間で、スタイルにわずかな非互換性があることを発見しました。テストを行ったところ、フォントが LibreOffice 互換のフォントに変更され、元のフォントとはサイズがわずかに異なることがわかりました。

LibreOffice の新しいバージョン (5.1、5.3) をインストールしました。私のテストでは、復号化された doc/docx ファイルは適切なフォーマットとページ番号を持っていましたが、unoconv は新しいバージョンを利用せず、4.3 のままでした。スタイルとページ数が正しくありません。

私は使用しようとしました:

soffice --headless --convert-to pdf [path-to-file] --outdir [path-to-export-directory]

しかし、それは何もしません。

  1. 4.3 以外の LibreOffice バージョンで unoconv を利用する方法はありますか?

  2. --convert-to コマンドを LibreOffice 5.1 または 5.3 で動作させる方法はありますか?

4

1 に答える 1

1

試してみることができるいくつかの手順を次に示します。

sudo apt remove libreoffice*

を使用して最新バージョンの libreoffice をインストールします。

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get install libreoffice

libreoffice が正常にインストールされたかどうかを確認するには、次のように入力します。

libreoffice --version

これはバージョン番号を返すはずです

次にMicrosoftフォントをインストールします

sudo apt install ttf-mscorefonts-installer

また、ドキュメントに付属すると予想されるその他のフォントの依存関係もインストールします

最後に、以下のコマンドを使用して pdf に変換します。バックグラウンドで libreoffice アプリケーションが実行されていないことを確認してください

libreoffice --headless --invisible --convert-to pdf "test.docx" --outdir files

filesというフォルダにpdfが見つかるはずです

これは ubuntu 18.04.5 LTS で動作します。

于 2020-10-08T10:49:11.763 に答える