Ubuntu Server LibreOffice Converter para erro txt

2

Executando headless (única opção desde o servidor 14.04) tentando converter arquivos .doc para .txt para poder ser ingerido pelo php. Executando o

soffice --headless --convert-to txt test.doc

produz um arquivo test.txt, com o conteúdo como:

504b 0304 1400 0008 0000 0313 2247 9f03
2ec4 2b00 0000 2b00 0000 0800 0000 6d69
6d65 7479 7065 6170 706c 6963 6174 696f
6e2f 766e 642e 6f61 7369 732e 6f70 656e
...
0000 c1a3 0000 4d45 5441 2d49 4e46 2f6d
616e 6966 6573 742e 786d 6c50 4b05 0600
0000 000e 000e 0094 0300 0007 a500 0000
00

a conversão para .pdf funciona bem.

Estou achando que falta uma biblioteca ... mas não sei por onde começar. Eu fiz a instalação direta do libreoffice ... apt-get install libreoffice

executar os mesmos arquivos no mac com o libreoffice funciona muito bem, então eu posso descartar qualquer problema de tipo de arquivo.

Alguém tem alguma ideia?

    
por DakotasKustoms 02.09.2015 / 04:36

1 resposta

0

A partir da sequência de bytes inicial 504b 0304 , é possível deduzir que a saída está na forma de um zip archive.

Na verdade, um teste simples com um arquivo .doc mínimo revela que especificar --convert-to txt sozinho resulta em um arquivo OpenDocument Text - mas com uma extensão .txt :

:~$ soffice --headless --convert-to txt testdoc.doc
convert /home/steeldriver/testdoc.doc -> /home/steeldriver/testdoc.txt using 
Overwriting: /home/steeldriver/testdoc.txt

:~$ file testdoc.txt
testdoc.txt: OpenDocument Text

:~$ zipinfo testdoc.txt
Archive:  testdoc.txt
Zip file size: 8764 bytes, number of entries: 15
-rw----     2.0 fat       39 b- stor 15-Sep-02 15:58 mimetype
-rw----     2.0 fat     1136 b- stor 15-Sep-02 15:58 Thumbnails/thumbnail.png
-rw----     2.0 fat     4065 bl defN 15-Sep-02 15:58 content.xml
-rw----     2.0 fat     8849 bl defN 15-Sep-02 15:58 settings.xml
-rw----     2.0 fat      894 bl defN 15-Sep-02 15:58 meta.xml
-rw----     2.0 fat    14890 bl defN 15-Sep-02 15:58 styles.xml
-rw----     2.0 fat      899 bl defN 15-Sep-02 15:58 manifest.rdf
-rw----     2.0 fat        0 b- stor 15-Sep-02 15:58 Configurations2/toolpanel/
-rw----     2.0 fat        0 b- stor 15-Sep-02 15:58 Configurations2/progressbar/
-rw----     2.0 fat        0 b- stor 15-Sep-02 15:58 Configurations2/floater/
-rw----     2.0 fat        0 b- stor 15-Sep-02 15:58 Configurations2/statusbar/
-rw----     2.0 fat        0 b- stor 15-Sep-02 15:58 Configurations2/toolbar/
-rw----     2.0 fat        0 b- stor 15-Sep-02 15:58 Configurations2/popupmenu/
-rw----     2.0 fat        0 b- stor 15-Sep-02 15:58 Configurations2/menubar/
-rw----     2.0 fat      978 bl defN 15-Sep-02 15:58 META-INF/manifest.xml
15 files, 31750 bytes uncompressed, 6938 bytes compressed:  78.1%

Para forçar a conversão de texto simples, é necessário especificar um filtro de saída , bem como uma extensão:

:~$ soffice --headless --convert-to txt:Text testdoc.doc
convert /home/steeldriver/testdoc.doc -> /home/steeldriver/testdoc.txt using Text
Overwriting: /home/steeldriver/testdoc.txt

:~$ file testdoc.txt
testdoc.txt: UTF-8 Unicode (with BOM) text

Observe que ainda é UTF-8 com um BOM: Não consegui encontrar um filtro que produza ASCII simples. Se você precisa absolutamente de ASCII, sempre haverá iconv , por exemplo.

iconv -t ASCII//TRANSLIT testdoc.txt
    
por steeldriver 02.09.2015 / 18:17