Próbuję przekonwertować .docx otrzymany pocztą na poprawny plik pdf za pomocą pandoc (używam GNU / Linux).
Mam błąd dotyczący kodowania znaków:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
Próbowałem zidentyfikować kodowanie:
$ file -i file .docx
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
Jestem trochę zaskoczony charset=binary(spodziewałem się charset=iso8859-15). Jednak mimo to próbowałem przekonwertować .docx na utf8 i to nie działa:
$ iconv -t utf-8 file.docx
P! $iconv: séquence d'échappement non permise à la position 16
Mam ten sam błąd w wierszu polecenia z dokumentacji pandoc :
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
Jak mogę przekonwertować ten .docx na pdf z pandoc?
iconvźródłowego zestawu znaków przy użyciu -fflagi. Na przykład iconv -f ISO-8859-15 -t utf-8 file.docxmoże działać. Nie mam jednak pojęcia, jaki jest format pliku docx.
iconvbezpośrednio na .docxpliku jest mało prawdopodobne. iconvzakłada, że jego dane wejściowe są plikiem tekstowym w określonym lub wnioskowanym formacie. .docxPlik jest w rzeczywistości plik ZIP (a skompresowane archiwum) zawierający (w większości) plików XML. Możliwe, że masz szczęście rozpakować .docxplik, uruchomić iconvpliki składowe, a następnie ponownie skompresować wszystko z powrotem do nowego .docx, ale nie postawiłbym na to, że zadziała. Po pierwsze, plik xml zawierający rzeczywistą treść dokumentu określa jego kodowanie: encoding="UTF-8"na przykład.
