メールで受信した.docxをpandocを使用して正しいPDFに変換しようとしています(GNU / Linuxを使用しています)。
文字エンコードに関するエラーがあります:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
私はエンコーディングを特定しようとしました:
$ file -i file .docx
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
charset=binary
(私は期待していたcharset=iso8859-15
)に少し驚いています。しかし、とにかく.docxをutf8に変換しようとしましたが、機能していません:
$ iconv -t utf-8 file.docx
P! $iconv: séquence d'échappement non permise à la position 16
pandocドキュメントのコマンドラインでも同じエラーが発生します。
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
この.docxをpandocでPDFに変換するにはどうすればよいですか?
iconv
を使用して、ソース文字セットを提供することをお勧めし-f
ます。たとえば、動作するiconv -f ISO-8859-15 -t utf-8 file.docx
可能性があります。ただし、.docxファイルの形式はわかりません。
iconv
直接実行しても.docx
動作しそうにありません。iconv
入力は、指定された形式または推測された形式のテキストファイルであると想定しています。.docx
ファイルは実際には(ほとんど)xmlファイルを含むzipファイル(圧縮されたアーカイブ)です。.docx
ファイルを解凍iconv
し、構成ファイルで実行してから、すべてを新しい.docx
に再圧縮する運がおそらくあるかもしれませんが、私はそれがうまくいくとは思いません。たとえば、ドキュメントの実際のコンテンツを含むxmlファイルは、エンコードを指定します:encoding="UTF-8"
。