Estou tentando converter arquivos docx para pdf no meu servidor Ubuntu usando a linha de comando, mas nenhum dos conversores que tentei até agora parece converter arquivos do Word 2007/2010/2013 corretamente.
Aparentemente, os conversores on-line podem gerenciá-lo sem problemas, mas os serviços da Web não são uma opção porque os arquivos contêm dados confidenciais. Para testes, eu uso esse arquivo do Word 2007 porque contém alguns elementos importantes (fórmulas, gráficos vetoriais, imagens, listas etc.). Testei as seguintes ferramentas (em parte deste post ):
lowriter
(LibreOffice Writer) - saída incorreta (o círculo deveria estar na última página, não na primeira)
unoconv
- o mesmo que o LibreOffice, pois não usa seu próprio conversor. A conversão para odt primeiro e depois para pdf atrapalha completamente o arquivo.
abiword --to=pdf filename.doc
- incorreto e incompleto (faltam muitos elementos):
OpenOffice Writer - mesmo resultado que o abiword
wvPDF
- trava com a seguinte mensagem de erro:
~ $ wvPDF 2007_Office_DocEncryption.docx test.pdf
Diretório atual: / home / webmt / dev / test /
Algum problema ao executar o látex.
Verifique se há erros no test.log
Continuando...
Falha na conversão para dvi
Existe alguma maneira de converter arquivos docx para PDF no Linux corretamente? Também me ajudaria se eu soubesse que funciona para alguém com algum dos programas que eu já mencionei. Vou começar uma recompensa assim que a SE me permitir.
ps Estou usando o servidor Ubuntu 12.04
Conclusão :
Eu tive que concluir que, para mim, por enquanto, não existe uma ferramenta confiável que funcione com os novos formatos do MS Word e todos os tipos de elementos no Ubuntu e crie uma cópia individual dos arquivos docx. Nenhuma das ferramentas que testei conseguiu converter o arquivo de amostra corretamente. Como enfrentarei tipos muito diferentes de versões / conteúdos de documentos e a qualidade da saída tem uma das maiores prioridades, terminarei realizando as conversões por meio de macros VB no Word em um servidor Windows conectado ao meu Linux.
Definirei o post com os melhores resultados como resposta aceita. No entanto, a recompensa destinava-se a uma solução com conversão absolutamente correta. Obrigado a todos, novamente.
fonte
Respostas:
Essa resposta é aprovada em todos os testes, mas no fluxograma do documento de teste.
Por que isso é melhor do que outros métodos sugerem até agora?
Eu testei os outros métodos sugeridos até agora (especialmente
oowriter
eebook-convert
), mas eles passam menos testes que esse método. Oebook-convert
método retira as margens e uma parte dos textos do documento.Este método ainda produz melhores resultados do que um conversor profissional como rainbowpdf .
Também tentei convertê-lo para html, mas o desenho com o quadrado no círculo e o fluxograma está incorreto.
Por que o teste do fluxograma falha?
Parece que o libreoffice e o unoconv têm alguns problemas ao renderizar corretamente o fluxograma que está no arquivo .docx. Provavelmente porque foi feito usando arte inteligente no Microsoft Office. Esse é o problema. Esse é um bug também discutido neste tópico . As informações textuais e visuais estão presentes no pdf resultante do método acima, como você pode ver (eu tive que selecionar o texto).
A cor da fonte, por exemplo, não é lida corretamente e algumas linhas são muito longas. Não conheço nenhuma solução linux capaz de exibir arte inteligente corretamente. :(
Essa também é a razão pela qual todas as
print
soluções publicadas nesta página não o satisfarão.Em resumo
Em resumo, o que você está fazendo é realmente difícil e, no momento, não há soluções que o satisfaçam totalmente. O calcanhar de Aquiles das conversões de docx2pdf é a arte inteligente. Se você puder viver sem isso ou se encontrar uma maneira de identificar arte inteligente e convertê-la de alguma forma em uma imagem, poderá alcançar seu objetivo.
Opção 1. Forçar seus usuários a lidar com o problema
Esta é uma solução muito deselegante. Os criadores de conteúdo podem salvar a arte inteligente como jpg, conforme descrito nas páginas de ajuda do escritório e, portanto, a conversão seria possível no seu servidor.
Opção 2. Desvie do problema
Se os fluxogramas costumam ser muito semelhantes e, dependendo de quão bom você é um desenvolvedor, você pode tentar converter a arte inteligente separadamente. Você pode extrair o arquivo drawing1.xml do cluster de documentos .docx e, em seguida, usar o processamento de linguagem natural e alguns hacks malucos para reconstruir uma arte inteligente. Por exemplo, você precisaria mexer com esse tipo de xml:
Ou, como solução mínima, você extrai pelo menos o texto (
<a:t>
?) Do arquivo e o salva de maneira mais fácil. Ou, se os fluxogramas dos seus PDFs forem iguais, você pode escrever um script para alterar a cor do texto e o comprimento da linha no próprio xml. Então você pode executardoc2pdf
e ter um arquivo que tenha essencialmente todas as informações corretas, mas talvez não a formatação. No caso de fluxogramas, você provavelmente também desejaria incluir parte da formatação, porque a formatação faz parte das informações.Opção 3. Use um serviço de terceiros
Eu fiz mais algumas pesquisas nos últimos dias e encontrei um serviço que faz a conversão perfeitamente: zamzar . O Zamzar permite que você envie um arquivo docx e, em seguida, envie um link para você. Eles também têm um serviço (pagando?) Onde você pode enviar qualquer arquivo para [email protected] e depois recuperar o arquivo convertido em sua caixa de entrada. Você pode criar facilmente um sistema em torno disso, para enviar o arquivo automaticamente e analisá-lo a partir do email. Isso não é muito trabalho e o resultado final é o melhor.
Notas
Na verdade, dediquei um tempo para testar os diferentes métodos propostos nesta página. Faça os comentários com os testes reais.
fonte
lowriter
é agoralowriter --convert-to pdf input_file.docx
. O uso--pt pdf
falhará silenciosamente.Esta é uma solução de linha de comando que funciona decentemente --- mas usa software proprietário.
Penso que o problema básico é que os formatos do Microsoft Word são totalmente compreensíveis apenas para o Microsoft Word (mesmo que existam diferenças entre as versões - existem arquivos do Word do passado que são abertos incorretamente no formato das versões mais recentes). Todas as outras soluções são aproximações e hacks, para que funcionem ou não, dependendo do arquivo.
Portanto, para ter certeza de que você precisa processar seus arquivos .docx com uma instalação do Microsoft Word (e sim, acho que é a opção deles e justa). Se você não quiser usar o Word, não use - eu vou com LaTeX pelo meu trabalho, mas é difícil convencer o resto do mundo ao redor ...).
Estou usando, desde as idades, o Crossover para executar o Microsoft Office no meu Linux Desktop (1), achando bastante útil. Talvez também funcione com vinho - nunca tentei.
Eu faço a conversão usando esta configuração:
1) Eu tenho o Crossover instalado
2) Tenho minha versão do Microsoft Office instalada no Crossover
3) No Microsoft Word, desative a "impressão em segundo plano"
4) Eu tenho a
cups-pdf
impressora instalada e selecionada como impressora padrão.5) Para fazer a conversão, execute (dicas aqui ):
6) Seu arquivo convertido aparecerá no
~/PDF/
diretórioO documento é publicado quase perfeitamente (há algum desalinhamento na resposta 2, mostrado no meu Office Word 2007 ao executar o Crossover - não sei se está relacionado à minha versão do Windows).
Agora, o problema é que a interface da palavra gráfica será exibida --- eu não sei como torná-la "decapitada". As opções de linha de comando do Word não ajudaram ...
(1) Não tenho relação alguma com os Codeveawers - apenas um usuário satisfeito.
fonte
Eu também tive esse problema no passado, não tive que usá-lo recentemente, então não sei se ele ainda está me afetando.
Quanto a responder à pergunta:
Esta pergunta: Como converter em lote .doc ou .docx em .pdf fornece um motivo nos comentários por que sua conversão
lowriter
pode estar falhando:A resposta desta pergunta também pode ajudar:
Como posso converter um arquivo ODT para um PDF?
Você iria correr
libreoffice --headless --convert-to pdf *.odt
. Você pode obter mais informações sobre o libreoffice com o comandoman libreoffice
se precisar de ajuda para entender ou ajustar o comando para funcionar.No entanto, você não pode ter o LibreOffice aberto no momento, conforme este bug: https://bugs.freedesktop.org/show_bug.cgi?id=37531
Esta questão também está relacionada ao Ubuntu, embora esteja no SuperUser: https://superuser.com/questions/156189/how-to-convert-word-doc-to-pdf-in-linux
A primeira resposta tem duas opções, uma usando o CUPS e criando uma impressora PDF, a outra usando o LaTex, embora você tenha dito que o LaTex estava falhando.
Quanto à conversão para PDF via CUPS PDF, você executaria
sudo apt-get install cups-pdf
seguido poroowriter -pt pdf your_word_file.doc(x)
. Isso pode ajudar com seu problema de autor.Provavelmente, esse é um problema com o fato de você estar tentando converter para PDF a partir do DOC / DOCX, quando a maioria das ferramentas usa ODT, pois estão relacionadas ao LibreOffice / OpenOffice / AbiWord. Assim, eles falham ao tentar convertê-lo do formato Microsofts DOCX ou na conversão para ODT.
Existem vários erros com uma conversão de .docx w. Word Art (a versão está incluída):
https://bugs.freedesktop.org/show_bug.cgi?id=33072 - 3.3.0 rc 2 (acredito que desatualizado)
https://bugs.freedesktop.org/show_bug.cgi?id=63289 - 4.0.2.2
https://bugs.freedesktop.org/show_bug.cgi?id=62251 - 4.0.0.3
https://bugs.freedesktop.org/show_bug.cgi?id=65260 - Não especificado
Isso é do fórum do LibreOffice referente à conversão de .doc e um pouco de .docx: http://en.libreofficeforum.org/node/5096 . É a partir de janeiro de 2013, então deve aplicar um pouco.
Além de tudo isso, eu realmente não sei. Espero que você resolva seu problema!
fonte
Se você possui o Libreoffice instalado, pode tentar converter usando isso. Basta pressionar Ctrl+ Alt+ Tno teclado para abrir o Terminal. Quando abrir, execute o (s) comando (s) abaixo:
Outra opção é instalar o Cups PDF .
Para fazer isso, basta pressionar Ctrl+ Alt+ Tno teclado para abrir o Terminal. Quando abrir, execute o (s) comando (s) abaixo:
Em seguida, crie uma nova impressora, defina-a como uma impressora de arquivos PDF e nomeie como desejar, desde que você saiba o nome e execute:
E seu arquivo PDF será no
~/PDF
.fonte
Aqui está a verdade amarga: as soluções do Office para Linux são falhas totais! Sou usuário em tempo integral do GNU / Linux há muitos anos e sempre procurei e tentei diferentes soluções de escritório, desde o antigo Open-Office até o Libre-Office, Abi-Word, etc. todos falharam em me ajudar a trabalhar no meu escritório. Ainda piora quando se trata de idiomas não latinos (idiomas da direita para a esquerda, como persa, árabe, etc.). O usuário precisa lutar com esses softwares para realizar seu trabalho! E a compatibilidade do Microsoft Office simplesmente não está lá. Posso falar horas e horas do quanto tentei e todas elas falharam comigo, mas esse não é o objetivo desta pergunta.
Também tentei instalar e executar o Microsoft Office usando o WINE, e de alguma forma bem-sucedido, mas não funcionou bem e travou principalmente quando tentei abrir os arquivos do meu escritório.
O LaTeX está bem, mas não é uma solução de escritório. O LaTeX é para definição de tipo, e é mais como uma ferramenta profissional, e não há planilhas nem apresentações.
Então, qual é a solução?
Esta não é uma solução de linha de comando. A única solução que encontrei em todos esses anos, para me manter dentro do meu sistema operacional GNU / Linux e também fazer meus trabalhos de escritório, é usar uma instalação mínima do Microsoft Windows em uma máquina virtual (como o VirtualBox) e instalar um terno do Microsoft Office.
Pode não parecer bonito, mas é a única solução que funciona perfeitamente e me impede de lutar com soluções ruins para o escritório no meu precioso tempo. No começo, eu mesmo pensei que essa não era uma boa solução, mas depois de falhar com todos os outros e fazer essas coisas de VM por mais de 2 anos, estou muito feliz com isso
:)
==================================================== ==============================
NOTA-1: Não estou anunciando produtos da Microsoft! Apenas tentando ajudar a resolver o problema e seguir em frente com a vida.
NOTA-2: Como enfatizado acima, essa NÃO é uma solução de linha de comando. Então, por que postar a resposta? Porque é uma opção testada e bem trabalhada! Se nenhuma solução de linha de comando WORKING estiver disponível (o que eu suspeito é o caso), ter uma opção ALTERNATIVA é melhor do que NÃO.
fonte
wine
vez da máquina virtual?WINE
não correu bem. O programa não funcionou como no Windows (mostrou um comportamento incorreto) e também travou muito!Aqui estão alguns aplicativos que você pode experimentar e verificar se eles funcionam com o FF Multi Converter ou o Kingsoft Office .
fonte
Instale o Calibre no Software Center ou Synaptic e defina a saída padrão para PDF.
Em um prompt de shell, execute
fonte
ValueError: No plugin to handle input format: docx
. O Google não ajudou em nada, então vou relatar um erro.