Saya mencoba untuk mengkonversi .docx yang diterima melalui pos ke pdf yang benar dengan menggunakan pandoc (saya menggunakan GNU / Linux).
Saya memiliki kesalahan terkait pengkodean karakter:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
Saya mencoba mengidentifikasi penyandian:
$ file -i file .docx
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
Saya sedikit terkejut dengan charset=binary
(saya mengharapkan charset=iso8859-15
). Namun saya mencoba untuk mengkonversi .docx ke utf8 dan tidak berfungsi:
$ iconv -t utf-8 file.docx
P! $iconv: séquence d'échappement non permise à la position 16
Saya memiliki kesalahan yang sama dengan baris perintah dari dokumentasi pandoc :
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
Bagaimana saya bisa mengkonversi .docx ini ke pdf dengan pandoc?
iconv
set karakter sumber, menggunakan -f
bendera. Misalnya, iconv -f ISO-8859-15 -t utf-8 file.docx
mungkin berhasil. Tidak tahu apa format file .docx.
iconv
langsung pada .docx
file tidak mungkin berfungsi iconv
mengasumsikan bahwa inputnya adalah file teks dalam beberapa format yang ditentukan atau disimpulkan. Sebuah .docx
file yang sebenarnya adalah file zip (arsip terkompresi) mengandung (kebanyakan) file xml. Anda mungkin memiliki sedikit keberuntungan membuka ritsleting .docx
file, menjalankan iconv
file konstituen, dan kemudian zip semuanya kembali menjadi yang baru .docx
, tapi saya tidak akan bertaruh itu berfungsi. Untuk satu hal, file xml yang mengandung konten sebenarnya dari dokumen menentukan penyandiannya:, encoding="UTF-8"
misalnya.