Ben pandoc (GNU / Linux kullanıyorum) kullanarak posta ile alınan bir .docx doğru bir pdf dönüştürmek çalışıyorum.
Kodlama karakterleri ile ilgili bir hata var:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
Kodlamayı belirlemeye çalıştım:
$ file -i file .docx
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
Biraz şaşırdım charset=binary(bekliyordum charset=iso8859-15). Ancak yine de .docx utf8 dönüştürmek için çalıştı ve çalışmıyor:
$ iconv -t utf-8 file.docx
P! $iconv: séquence d'échappement non permise à la position 16
Pandoc belgelerinden komut satırı ile aynı hata var :
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
Bu .docx'i pandoc ile pdf'ye nasıl dönüştürebilirim?
iconvkullanarak kaynak karakter seti sağlamanızı öneririm -f. Örneğin, iconv -f ISO-8859-15 -t utf-8 file.docxişe yarayabilir. Bir .docx dosyasının biçiminin ne olduğu hakkında hiçbir fikrim yok.
iconvDoğrudan bir .docxdosya üzerinde çalışmanın çalışması olası değildir. iconvgirdisinin belirli veya çıkartılmış bir biçimde bir metin dosyası olduğunu varsayar . Bir .docxdosya aslında (çoğunlukla) xml dosyaları içeren bir zip dosyasıdır (sıkıştırılmış bir arşiv). Muhtemelen, .docxdosyayı iconvaçmak, kurucu dosyalar üzerinde çalışan ve daha sonra her şeyi yeni bir dosyaya yeniden sıkıştırmak için biraz şansınız olabilir .docx, ancak işe bahse girmeyeceğim. İlk olarak, belgenin gerçek içeriğini içeren xml dosyası kodlamasını belirtir: encoding="UTF-8"örneğin.
