Convertir docx en PDF

33

J'essaie de convertir les fichiers docx en pdf sur mon serveur Ubuntu en utilisant la ligne de commande , mais aucun des convertisseurs que j'ai essayés jusqu'à présent ne semble convertir Word 2007/2010 / 2013 fichiers correctement.

Les convertisseurs en ligne peuvent apparemment le gérer sans aucun problème, mais les services Web ne sont pas une option car ils contiennent des données sensibles. Pour les tests, j'utilise ce fichier Word 2007 car il contient des éléments importants. (formules, graphiques vectoriels, images, listes, etc.). J'ai testé les outils suivants (en partie de cet article ):

lowriter (LibreOffice Writer) - sortie incorrecte (le cercle est censé être sur la dernière page, pas la première)

unoconv - le même que LibreOffice car il n'utilise pas son propre convertisseur. Convertir en odt puis en pdf perturbe complètement le fichier.

abiword --to=pdf filename.doc - incorrect et incomplet (de nombreux éléments sont manquants):

OpenOffice Writer - même résultat que pour abiword

wvPDF - planter avec le message d'erreur suivant:

  

~ $ wvPDF 2007_Office_DocEncryption.docx test.pdf

     

Répertoire actuel: / home / webmt / dev / test /

     

Un problème avec le latex.

     

Rechercher les erreurs dans test.log

     

Poursuivre ...

     

La conversion en dvi a échoué

Existe-t-il un moyen de convertir correctement les fichiers docx au format PDF sous Linux? Cela m'aiderait également si je savais que cela fonctionne pour quelqu'un avec l'un des programmes que j'ai déjà mentionnés. Je commencerai une prime dès que SE me le permettra.

p.s. J'utilise le serveur Ubuntu 12.04

Conclusion :

Je devais en conclure que pour moi, comme pour l’instant, il n’existe aucun outil fiable capable de fonctionner avec les nouveaux formats MS Word et tous ses éléments sur Ubuntu et de créer une copie personnalisée des fichiers docx. Aucun des outils que j'ai testés ne pouvait convertir le fichier d'exemple correctement. Étant donné que je vais faire face à des versions / contenus de documents très différents et que la qualité de sortie est l'une des plus importantes, je finirai par effectuer les conversions à l'aide de macros VB dans Word sur un serveur Windows connecté à Linux.

Je définirai le post pour obtenir les meilleurs résultats comme réponse acceptée. Cependant, la prime était destinée à une solution avec une conversion absolument correcte. Merci à tous, encore une fois.

    
posée Sceptical Jule 28.12.2013 - 15:12
la source

7 réponses

48

Cette réponse passe tous les tests, mais l’organigramme dans votre document de test.

sudo apt-get install unoconv
doc2pdf respondus-docx-sample-file.docx

Pourquoi est-ce mieux que d'autres méthodes suggèrent jusqu'ici?

J'ai testé les autres méthodes proposées jusqu'à présent (en particulier oowriter et ebook-convert ), mais elles réussissent moins de tests que cette méthode. La méthode ebook-convert dépouille les marges et une partie des textes du document.

Cette méthode permet même d'obtenir de meilleurs résultats qu'un convertisseur professionnel sous la forme rainbowpdf .

J'ai aussi essayé de le convertir en html, mais le dessin avec le carré dans le cercle et l'organigramme est incorrect.

Pourquoi le test de l'organigramme échoue-t-il?

Il semble que libreoffice et unoconv aient des problèmes avec le rendu correct du diagramme qui se trouve dans le fichier .docx. Cela est probablement dû au fait que smart art a été créé dans Microsoft Office. C'est le problème. Ceci est un bogue également discuté sur ce sujet . Les informations textuelles et visuelles sont présentes dans le pdf résultant de la méthode ci-dessus, comme vous pouvez le voir (je devais cependant sélectionner le texte).

La couleur de la police, par exemple, n'est pas correctement lue et certaines lignes sont trop longues. Je ne suis au courant d'aucune solution Linux capable d'afficher correctement l'art intelligent. :(

C'est aussi la raison pour laquelle toutes les solutions print affichées sur cette page ne vous satisferont pas.

En bref

En bref, ce que vous faites est vraiment difficile et il n’existe actuellement aucune solution qui vous satisfera pleinement. Le talon d'Achille des conversions docx2pdf est l'art intelligent. Si vous pouvez vivre sans cela ou si vous pouvez trouver un moyen de repérer l'art intelligent et de le convertir en image, vous pouvez atteindre votre objectif.

Option 1. Forcez vos utilisateurs à gérer le problème

C'est une solution très inélégante. Vos créateurs de contenu peuvent enregistrer leur art intelligent en format jpg, comme décrit dans la les pages d'aide Office et, par conséquent, la conversion serait possible sur votre serveur.

Option 2. Tracez votre chemin autour du problème

Si les organigrammes sont souvent très similaires et en fonction de la qualité d’un développeur, vous pouvez essayer de convertir l’art intelligent séparément. Vous pourriez extraire le fichier drawing1.xml du cluster de documents .docx, puis utiliser le traitement du langage naturel et des astuces pour reconstruire un art intelligent. Par exemple, vous devez utiliser ce type de fichier XML:

<dsp:txBody>
<a:bodyPr spcFirstLastPara="0" vert="horz" wrap="square" lIns="8255" tIns="8255" rIns="8255" bIns="8255" numCol="1" spcCol="1270" anchor="ctr" anchorCtr="0">
<a:noAutofit/>
</a:bodyPr>
<a:lstStyle/>
<a:p>
<a:pPr lvl="0" algn="ctr" defTabSz="577850">
<a:lnSpc><a:spcPct val="90000"/>
</a:lnSpc>
<a:spcBef>
<a:spcPct val="0"/>
</a:spcBef>
<a:spcAft>
<a:spcPct val="35000"/>
</a:spcAft>
</a:pPr>
<a:r>
<a:rPr lang="en-US" sz="1300" b="1" kern="1200"/>
<a:t>All three sides are different lengths
</a:t>
</a:r>
</a:p>
</dsp:txBody>

Ou comme solution minimale, vous devez au moins extraire le texte ( <a:t> ?) du fichier et l'enregistrer. de manière plus simple. Ou si les organigrammes de vos fichiers PDF sont identiques, vous pouvez écrire un script pour changer la couleur du texte et la longueur de la ligne dans le fichier XML lui-même. Vous pourriez alors exécuter doc2pdf et vous auriez un fichier qui contient essentiellement toutes les informations nécessaires, mais peut-être pas la mise en forme. Dans le cas des organigrammes, vous souhaiterez probablement inclure une partie du formatage, car le formatage est partie de l'info.

Option 3. Utiliser un service tiers

J'ai fait d'autres recherches ces derniers jours et j'ai trouvé un service qui effectue parfaitement la conversion: zamzar . Zamzar vous permet de télécharger un fichier docx, puis vous envoie un lien par courrier électronique. Ils ont également un service (payant?) Où vous pouvez envoyer n'importe quel fichier à [email protected], puis récupérer le fichier converti dans votre boîte de réception. Vous pouvez facilement créer un système autour duquel vous envoyez automatiquement le fichier et l'analyse à partir du courrier électronique. Ce n'est pas tellement le travail et le résultat final est le meilleur.

Notes

  • Si quelqu'un a d'autres services qui font de même, n'hésitez pas à les modifier.
  • J'ai envoyé le support zamzar par courrier pour lui demander s’il possède un api. Ce serait encore plus facile.
  • Peut-être que utilisation pour .NET et Java pourrait également aider ? Ou docx4java comme dans cette publication SO liée .
  • Une autre option consiste à consulter le convertisseur odf qui semble daté et dépend d’Openoffice. plutôt que libreoffice.
  • Je peux maintenant confirmer que le jodconverter java est également en panne conversion graphique

J'ai effectivement pris le temps de tester les différentes méthodes proposées sur cette page. Veuillez sauvegarder vos commentaires avec les tests réels.

    
réponse donnée don.joey 01.01.2014 - 14:11
la source
4

J'ai aussi eu ce problème par le passé, je n'ai pas eu à l'utiliser récemment, donc je ne sais pas si cela me concerne toujours.

Pour répondre à la question:

Cette question: Comment convertir par lots .doc ou. docx to .pdf explique les raisons pour lesquelles votre conversion avec lowriter peut échouer:

  

Attention à l’utilisation du caractère "space" à partir de la ligne de commande ...   le caractère d'espace appuyez simplement sur "tab";) - Pitto 16 novembre 12 à 13:11

La réponse à cette question pourrait également vous aider:

Comment puis-je convertir un Fichier ODT dans un fichier PDF?

Vous exécuteriez libreoffice --headless --convert-to pdf *.odt . Vous pouvez obtenir plus d'informations sur libreoffice avec la commande man libreoffice si vous avez besoin d'aide pour comprendre ou modifier la commande pour fonctionner.

Cependant, vous ne pouvez pas avoir LibreOffice ouvert à ce moment-là, selon ce bogue: lien

Cette question est également liée à Ubuntu, même si elle est sur SuperUser: lien

La première réponse a deux options, l’une utilisant CUPS et la création d’une imprimante PDF, l’autre utilisant LaTex, bien que vous ayez dit que LaTex échouait.

En ce qui concerne la conversion au format PDF via CUPS PDF, vous utiliseriez sudo apt-get install cups-pdf suivi de oowriter -pt pdf your_word_file.doc(x) . Cela pourrait vous aider à résoudre votre problème.

Cela est probablement dû au fait que vous essayez de convertir au format PDF à partir de DOC / DOCX, lorsque la plupart des outils utilisent ODT, car ils sont liés à LibreOffice / OpenOffice / AbiWord. Ainsi, ils échouent à essayer de le convertir à partir du format Microsofts DOCX ou lors de la conversion en ODT.

Il existe plusieurs bogues avec une conversion de .docx w. Word Art (la version est incluse):

Ceci provient du forum LibreOffice concernant la conversion depuis .doc et quelque peu .docx: lien . C'est à partir de janvier 2013, donc ça devrait s'appliquer quelque peu.

Au-delà de tout cela, je ne sais vraiment pas. J'espère que vous résoudrez votre problème!

    
réponse donnée RPi Awesomeness 31.12.2013 - 03:40
la source
4

Ceci est une solution en ligne de commande qui fonctionne décemment --- mais utilise un logiciel propriétaire.

Je pense que le problème fondamental est que les formats Microsoft Word sont parfaitement compréhensibles uniquement pour Microsoft Word (même là, il existe des différences entre les versions --- il existe des fichiers Word du passé qui s’ouvrent de manière incorrecte) formaté dans les nouvelles versions). Toutes les autres solutions sont des approximations et des hacks, elles fonctionneront donc ou non en fonction du fichier.

Donc, pour être sûr que vous devez traiter vos fichiers .docx avec une installation de Microsoft Word (et oui, je pense que c’est leur option et que c’est juste. Si vous ne voulez pas utiliser Word, ne l’utilisez pas --- Je pars avec LaTeX pour mon travail, mais il est difficile de convaincre le reste du monde autour de moi…).

J'utilise depuis des siècles Crossover pour exécuter Microsoft Office sur mon bureau Linux (1), le trouvant très utile. Peut-être que ça marche aussi avec du vin - jamais essayé.

Je fais la conversion en utilisant cette configuration:

1) J'ai installé Crossover

2) Ma version de Microsoft Office est installée sous Crossover

3) Dans Microsoft Word, désactivez "impression en arrière-plan"

4) J'ai une imprimante cups-pdf installée et sélectionnée comme imprimante par défaut.

5) Pour effectuer la conversion, exécutez (des astuces ici ):

~/cxoffice/bin/wine --cx-app winword.exe respondus-docx-sample-file.docx /q /n /mFilePrintDefault /mFileExit

6) Votre fichier converti apparaîtra dans le répertoire ~/PDF/ .

Vous documentez presque parfaitement (il y a un mauvais alignement sur la réponse n ° 2, qui apparaît dans Office Word 2007 lors de l'exécution sous Crossover --- Je ne sais pas si cela est lié à ma version de Windows).

Maintenant, le problème est que l’interface de mot graphique apparaîtra - je ne sais pas comment le rendre "sans tête". Options de ligne de commande pour Word n'a pas aidé ...

(1) Je n'ai aucun lien avec Codeveawers - juste un utilisateur heureux.

    
réponse donnée Rmano 03.01.2014 - 18:17
la source
2

Si vous avez Libreoffice installé, vous pouvez essayer de convertir en utilisant cela. Appuyez simplement sur Ctrl + Alt + T sur votre clavier pour ouvrir le terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous:

libreoffice --headless -convert-to pdf <file_name>.docx -outdir output/path/for/pdf

Une autre option consiste à installer Cups PDF .

Pour ce faire, appuyez simplement sur Ctrl + Alt + T sur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous:

sudo apt-get install cups-pdf

Créez ensuite une nouvelle imprimante, définissez-la comme une imprimante de fichier PDF et nommez-la comme vous le souhaitez, à condition de connaître le nom, puis exécutez:

oowriter -pt pdf your_word_file.docx

Et votre fichier PDF sera en ~/PDF .

    
réponse donnée Mitch 01.01.2014 - 12:49
la source
2

Voici l'amère vérité: les solutions Office pour Linux sont des échecs totaux! Je suis un utilisateur GNU / Linux à plein temps depuis de nombreuses années et j'ai constamment cherché et essayé différentes solutions bureautiques, de l’Open-Office à la version ultérieure de Libre-Office, Abi-Word, etc. ont tous échoué à m'aider à faire mon travail de bureau. Cela empire même en ce qui concerne les langues non latines (langues de droite à gauche comme le persan, l'arabe, etc.). L'utilisateur doit se battre avec ces logiciels pour faire son travail! Et la compatibilité avec Microsoft Office n’est tout simplement pas là. Je peux parler des heures et des heures de combien j'ai essayé et ils m'ont tous échoué, mais ce n'est pas le but de cette question.

J'ai également essayé d'installer et d'exécuter Microsoft Office en utilisant WINE, et avec un certain succès, mais ça n'a pas fonctionné et il est tombé en panne quand j'ai essayé d'ouvrir mes fichiers Office.

LaTeX c'est bien, mais ce n'est pas une solution bureautique. LaTeX est pour le réglage de type, et il ressemble plus à un outil de pro, et il n'y a pas de feuilles de calcul, ni de présentations.

Alors, quelle est la solution?

Ce n’est pas une solution en ligne de commande. La seule solution que j’ai trouvée au cours de toutes ces années, de me maintenir dans mon système d’exploitation GNU / Linux consiste à utiliser une installation minimale de Microsoft Windows dans une machine virtuelle (comme VirtualBox) et à installer une combinaison Microsoft Office.

Cela ne semble peut-être pas beau, mais c'est la seule solution qui fonctionne parfaitement et me permet d'éviter de me battre avec des solutions de bureau défectueuses dans mon temps précieux. Au début, je pensais moi-même que ce n'était pas une bonne solution, mais après avoir échoué avec tous les autres et fait ce truc de VM pendant plus de 2 ans, je suis vraiment content. :)

=============================================== =================================

NOTE-1: Je ne fais pas de publicité pour les produits Microsoft! Juste essayer d'aider à résoudre le problème et aller de l'avant avec la vie.

NOTE-2: Comme souligné ci-dessus, ce n’est PAS une solution de ligne de commande. Alors, pourquoi poster la réponse? Parce qu’il s’agit d’une option TESTÉE et qui fonctionne bien! Si aucune solution de ligne de commande WORKING n'est disponible (ce qui est hautement suspect), le fait d'avoir une option ALTERNATIVE est préférable à l'absence d'options.

    
réponse donnée Seyed Mohammad 01.01.2014 - 10:49
la source
1

Voici quelques applications que vous pouvez essayer de voir si elles fonctionnent FF Multi Converter ou vous pouvez essayer Kingsoft Office .

    
réponse donnée rstreeter78 03.01.2014 - 03:55
la source
0

Installez Calibre de Software Center ou Synaptic , et définissez la sortie par défaut sur PDF.

À l’invite du shell, effectuez

  

ebook-convert nomfichier fictif .docx .pdf -h

    
réponse donnée K7AAY 01.01.2014 - 00:35
la source

Lire d'autres questions sur les étiquettes