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?
iconv
um conjunto de caracteres de origem, usando o -f
sinalizador. Por exemplo, iconv -f ISO-8859-15 -t utf-8 file.docx
pode funcionar. No entanto, não faço idéia do formato de um arquivo .docx.
iconv
diretamente em um .docx
arquivo funcione. iconv
assume que sua entrada é um arquivo de texto em algum formato especificado ou inferido. Um .docx
arquivo é na verdade um arquivo zip (um arquivo compactado) contendo (principalmente) arquivos xml. É possível que você tenha alguma sorte em descompactar o .docx
arquivo, executando iconv
nos 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.