web-dev-qa-db-fra.com

Gestion des modèles Doc / Docx sur un serveur sans interface graphique pour produire des fichiers PDF de préférence sans utiliser OpenOffice.org

Sur un serveur Web de production, je dois produire des lettres d'après un modèle que j'ai obtenu au format binaire MS-Word. J'utilise PHP et pour la tâche de recherche et de remplacement, j'ai trouvé PHPWord, qui peut gérer les fichiers Docx. J'ai donc converti le modèle en OpenXML sur mon poste de travail local. Malheureusement, le résultat est également Docx.

Le but est de produire un seul PDF que l'utilisateur puisse télécharger pour lui permettre d'imprimer très facilement un paquet de lettres.

Maintenant, je dois trouver un moyen de:

  • Rechercher et remplacer du texte dans un fichier PDF
  • Convertissez Docx en PDF sans perte de formatage
  • Modifier le modèle de document d'origine sans perte de formatage et sans utiliser COM
  • Convertissez Docx en Doc sans perte de formatage (ce qui semble presque impossible pour le modèle a l'air bien dans Word, mais techniquement, le formatage est fait est une grosse pile de ...) afin que je puisse le convertir en utilisant wvPDF

Ce que je ne veux pas utiliser à part OpenOffice.org, ce sont des services Web. Je connais PHPLiveDocx mais je ne veux pas dépendre d'un service externe pour des raisons de performance, de disponibilité, de sécurité. Également, acheter un logiciel n'est pas une option dans ce cas (cela ne peut pas influencer cela).

Fonctionnant sur un serveur Web public, je ne veux pas utiliser OpenOffice.org - pas même sans tête, car il tirera environ 160 Mo de fichiers binaires compressés (!) Et la meilleure pratique consiste à ne pas charger de fichiers binaires non vraiment besoin sur un serveur public. Bien que ce soit un dernier recours pour utiliser oo.o, je veux m'assurer que j'ai exclu toute autre option possible.

Le système d'exploitation hôte est CentOS 5.5.

Où puis-je aller d'ici?

Cordialement, Luxifer

3
luxifer

À ma connaissance, aucune application ne peut le faire sans une dépendance de Libre Office.

Toutefois, vous n'avez pas besoin d'installer la suite bureautique complète lorsque vous effectuez uniquement des conversions en ligne de commande.

Vous pouvez essayer si l'outil unoconv Install unoconv répond à vos besoins. Il a python et python-uno comme dépendance. Ce dernier installera également libreoffice-core en tant que dépendance, mais pas la suite bureautique complète.

10
Takkat

AbiWord convertira tous les formats qu’il reconnaît à partir de la ligne de commande, y compris tous ceux que vous mentionnez. Par exemple,. convertir odt en pdf:

abiword --to=pdf filename.odt

convertir .docx en .doc:

abiword --to=doc filename.docx

(Si vous souhaitez effectuer une recherche, convertissez-le simplement en HTML ou RTF, voire TXT, en texte brut, et effectuez une recherche à cet endroit; convertissez-le si nécessaire.)

Mais quelles sont exactement les raisons évidentes de ne pas installer OpenOffice afin que vous puissiez utiliser ses bibliothèques avec, par exemple, unoconv?

4
frabjous

Vous pouvez essayer l'exemple côté serveur AbiWord indiqué dans ce lien http://www.advogato.org/person/msevior/diary.html?start=65

1
Madhava

Essayez avec PyODConverter ( voir ici )

0
cupakob