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 berfungsiiconv
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, menjalankaniconv
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.Jawaban:
Dalam dokumentasi di sini ,
.docx
tidak terdaftar sebagai input yang kompatibel :Cobalah sesuatu yang lain, seperti Libreoffice - yang dapat melakukan docx, selama Anda tidak keberatan dengan beberapa kesalahan pemformatan.
EDIT:
Deskripsi sekarang mengatakan bahwa Pandoc sekarang tampaknya mendukung pembacaan dari Word DOCX (serta DocBook dan beberapa format lainnya):
Seperti yang disarankan @evilsoup, ini mungkin berhasil:
Ya, Anda dapat menggunakan perintah libreoffice dengan
--outdir
, tetapi output html tidak selalu bekerja seperti itu ...Saya memberikan tes cepat ini, dan tampaknya berhasil, selain Pandoc menabrak karena gambar gif dalam dokumen
sumber
<BR>
s dari html).Ini masih muncul pada pencarian google jadi saya ingin mencatat ini: pandoc tidak dapat membaca docx ketika pertanyaan ini diajukan (kesalahannya adalah ketika mencoba membaca file biner) tetapi karena versi 1.13 dapat, dan ia melakukan pekerjaan yang cukup bagus.
sumber