Como converter em lote .doc ou .docx para .pdf

18

Preciso converter em lote um conjunto de arquivos .docou no terminal, sem usar uma GUI..docx.pdf

Seria útil se eu pudesse processar em lote vários arquivos.

Eu também gostaria de manter o máximo de metadados possível.

Ringtail
fonte
A melhor resposta é instalar outro aplicativo e usar uma "impressora pdf". O que está errado usando um método CLI ou vou perder os meta-dados
Ringtail
Eu não disse que havia algo errado com oowriter, gscan2pdf ou qualquer outro método da GUI. Eu estava procurando a CLI e pretendo incorporá-la ao .bashrc para que eu pudesse pdf ~/some_.docx, isso é tudo. Obrigado pela sugestão.
Ringtail
11
Veja também esta resposta .
Takkat 17/03/12
@ Takkat - Essa resposta coloca em zona duplicada para mim.
RobotHumans

Respostas:

28

O lowriter pode ser usado como uma ferramenta de linha de comando (o lowriter faz parte do LibreOffice)

lowriter --convert-to pdf *.doc
convert /home/bodhi/Documents/testdoc2.doc -> /home/bodhi/Documents/testdoc2.pdf using writer_pdf_Export
convert /home/bodhi/Documents/testdoc.doc -> /home/bodhi/Documents/testdoc.pdf using writer_pdf_Export

evince testdoc.pdf

Como não tenho janelas, faça o download do testdoc a partir daqui

www.mltweb.com/prof/testdoc.doc

Pantera
fonte
libreofice gera erros usando este método, reclama de não encontrar /home/user/documents/test.docx blá
Ringtail
que comando você usou? Você tem um test.docx?
Pantera
11
Funciona perfeito para mim! Cuidado ao usar caracteres "espaço" na linha de comando ... Quando você chegar ao caractere de espaço simplesmente pressione "guia";)
Pitto
11
O lowriter não converte arquivos docx corretamente. Pelo menos nem sempre.
Cético Jule
11
Quando tentei o seu lowritercomando sugerido no Ubuntu 12.04, ele abriu uma janela inicial e congelou. Eu o matei com Cc e tentei novamente sem uma DISPLAYvariável. Desta vez, ele primeiro imprimiu um erro sobre a exibição ausente, mas converte o documento sem problemas. É um comportamento esperado, que o comando possa funcionar apenas sem uma DISPLAYvariável de ambiente?
kasperd
7

Eu uso unoconv, que converte todos os formatos suportados por LibreOffice.

Francisco Dreyfuss
fonte
11
Apenas para o registro: $ unoconv myfile.docx(cria myfile.pdf)
tokland
3

Eu uso o seguinte script:

for f in *.doc
do
lowriter --headless --convert-to pdf "$f"
done

--headless impedirá o Libreoffice de abrir 100s de arquivos e eventualmente travar se você tentar isso com diretórios que contêm muitos arquivos .doc

Bruni
fonte
0

Na minha opinião, a melhor maneira é com unoconv.

Primeiro instale o pacote:

sudo apt install unoconv

e depois converta para pdf usando este comando:

unoconv -f pdf XXYY.docx

(Substitua XXYY.docxpelo nome do seu arquivo.)

user882893
fonte
Razões pelas quais você escolheria desconversar sobre outras opções?
gatorback 15/04