Estou tentando converter um .docx recebido pelo correio em um pdf correto usando o pandoc (estou usando o GNU / Linux).
Tenho um erro em relação à codificação de caracteres:
$ pandoc file.docx -o file.pdf
pandoc: Cannot decode byte '\x87': Data.Text.Encoding.decodeUtf8: Invalid UTF-8 stream
Eu tentei identificar a codificação:
$ file -i file .docx
file.docx: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary
Estou um pouco surpreso com charset=binary(eu estava esperando charset=iso8859-15). No entanto, tentei converter o .docx para utf8 de qualquer maneira e não está funcionando:
$ iconv -t utf-8 file.docx
P! $iconv: séquence d'échappement non permise à la position 16
Eu tenho o mesmo erro com a linha de comando da documentação do pandoc :
iconv -t utf-8 file.docx | pandoc | iconv -f utf-8
Como posso converter este arquivo .docx para pdf com pandoc?
iconvum conjunto de caracteres de origem, usando o -fsinalizador. Por exemplo, iconv -f ISO-8859-15 -t utf-8 file.docxpode funcionar. No entanto, não faço idéia do formato de um arquivo .docx.
iconvdiretamente em um .docxarquivo funcione. iconvassume que sua entrada é um arquivo de texto em algum formato especificado ou inferido. Um .docxarquivo é na verdade um arquivo zip (um arquivo compactado) contendo (principalmente) arquivos xml. É possível que você tenha alguma sorte em descompactar o .docxarquivo, executando iconvnos arquivos constituintes e depois compactando tudo novamente em um novo .docx, mas eu não apostaria que ele funcione. Por um lado, o arquivo xml que contém o conteúdo real do documento especifica sua codificação: encoding="UTF-8"por exemplo.
