Cette réponse est acceptée tous les tests, mais celui de l'organigramme dans votre document de test.
sudo apt-get install unoconv
doc2pdf respondus-docx-sample-file.docx
Pourquoi cette méthode est-elle meilleure que les autres méthodes proposées jusqu'à présent ?
J'ai testé les autres méthodes proposées jusqu'à présent (notamment oowriter
y ebook-convert
), mais ils passent moins de tests que cette méthode. Les ebook-convert
supprime les marges et une partie des textes du document.
Cette méthode donne même de meilleurs résultats qu'un convertisseur professionnel. rainbowpdf .
J'ai également essayé de le convertir en html, mais le dessin avec le carré dans le cercle et l'organigramme sont incorrects.
Pourquoi le test de l'organigramme échoue-t-il ?
Il semble que libreoffice et unoconv aient des problèmes pour rendre correctement l'organigramme qui se trouve dans le fichier .docx. Ceci est probablement dû au fait qu'il a été créé en utilisant art intelligent dans Microsoft Office. C'est là le problème. C'est le problème. un insecte également discuté sur ce fil . Les informations textuelles et visuelles sont présentes dans le pdf résultant de la méthode ci-dessus, comme vous pouvez le voir (j'ai dû sélectionner le texte, cependant).
La couleur de la police, par exemple, n'est pas bien lue et certaines lignes sont trop longues. Je ne connais pas de solution linux capable d'afficher correctement le smart art :(
C'est également la raison pour laquelle tous les print
Les solutions affichées sur cette page ne vous satisferont pas.
En bref
En bref, ce que vous faites est vraiment difficile et il n'y a actuellement aucune solution qui vous satisfera pleinement. Le talon d'Achille des conversions docx2pdf est l'art intelligent. Si vous pouvez vous en passer ou si vous pouvez trouver un moyen de repérer les erreurs de conversion, vous pouvez vous en passer. art intelligent et de la convertir d'une manière ou d'une autre en une image, vous pouvez atteindre votre objectif.
Option 1. Obliger les utilisateurs à résoudre le problème
Il s'agit d'une solution très peu élégante. Vos créateurs de contenu pourraient sauvegarder leur art intelligent sous forme de jpg, comme décrit dans la rubrique pages d'aide du bureau et donc la conversion serait possible sur votre serveur.
Option 2. Contourner le problème
Si les organigrammes sont souvent très similaires et en fonction de votre niveau de développement, vous pourriez essayer de convertir l'art intelligent séparément. Vous pourriez extraire le fichier drawing1.xml du groupe de documents .docx, puis utiliser le traitement du langage naturel et quelques bidouillages pour reconstruire l'art intelligent. Par exemple, il faudrait travailler avec ce type de 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 pouvez au moins extraire le texte ( <a:t>
?) du fichier et l'enregistrer d'une manière plus simple. Ou si les organigrammes de vos PDF sont tous identiques, vous pourriez écrire un script pour changer la couleur du texte et la longueur des lignes dans le xml lui-même. Ensuite, vous pouvez exécuter doc2pdf
et vous obtiendrez un fichier qui contiendra toutes les bonnes informations, mais peut-être pas la mise en forme. Dans le cas des organigrammes, vous voudrez probablement aussi inclure une partie de la mise en forme, parce que la mise en forme est partie de l'information.
Option 3. Utiliser un service tiers
J'ai poursuivi mes 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 et vous envoie un lien par courrier électronique. Ils proposent également un service (payant ?) qui vous permet d'envoyer n'importe quel fichier à pdf@zamzar.com et de recevoir le fichier converti dans votre boîte de réception. Vous pourriez facilement construire un système autour de cela où vous envoyez automatiquement le fichier et l'analysez à partir de l'e-mail. Cela ne demande pas beaucoup de travail et le résultat final est excellent.
Notes
- Si quelqu'un a d'autres services qui font la même chose, n'hésitez pas à les ajouter.
- J'ai envoyé un courrier au service d'assistance de Zamzar pour lui demander s'il disposait d'une interface utilisateur. Ce serait encore plus facile.
- Peut-être aposer pour .NET et Java ? Ou docx4java comme dans ce billet de SO très lié .
- Une autre option consiste à examiner le convertisseur odf qui semble dépassé et qui dépend d'openoffice plutôt que de libreoffice.
- Je peux maintenant confirmer que le programme java convertisseur de jod ne parvient pas non plus à convertir l'organigramme.
J'ai pris le temps de tester les différentes méthodes proposées sur cette page. Veuillez étayer vos commentaires par des tests réels.