Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Python-Fr] word vers pdf : retour d'expérience ?

15 réponses
Avatar
bruno at modulix
(NB : posté sur fr.comp.lang.python et python@aful.org)

Hello bonjour

D'abord, le contexte: un client nous demande de passer =~ 3000 documents
words en PDF, en ajoutant quelques mentions au passage...

Bon, pas un problème technique majeur a priori, mais j'ai peu
d'expérience dans ce genre de bricoles (ça fait plusieurs années que je
n'ai pas bossé sous Windows et ma seule expérience avec le format PDF
consiste en la lecture de documents au dit format dans un outil conçu
pour !-)

Une petite recherche sur Google m'a permis de trouver aussi bien des
utilitaires capable de générer du PDF à partir de word (généralement via
Ghostscript ou assimilé -> PDFCreator, qvPdf etc) que des bibliothèques
permettant de créer des PDF par code (reportlab of course) - plus bien
sûr des solutions basées sur OOo.

A priori, j'envisage un petit script Python insérant les mentions qui
vont bien dans les documents words et appelant le convertisseur
(PDFCreator, qvPdf, ???), mais peut-être y-a t'il mieux à faire ?

Comme je suppose que le problème n'est pas nouveau, je serais intéressé
par tout conseil - lien - retour d'expérience sur la question...

Merci d'avance
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"

10 réponses

1 2
Avatar
Bertrand B
(NB : posté sur fr.comp.lang.python et )

A priori, j'envisage un petit script Python insérant les mentions qui
vont bien dans les documents words et appelant le convertisseur
(PDFCreator, qvPdf, ???), mais peut-être y-a t'il mieux à faire ?

Comme je suppose que le problème n'est pas nouveau, je serais intér essé
par tout conseil - lien - retour d'expérience sur la question...

Merci d'avance


Je pense que c'est une solution rapide (pdfcreator se met à la place de
l'imprimante). Personnellement j'utilise manuellement pdfcreator et en
suis satisfait.

Une autre solution peut être encore plus rapide serait d'éditer en
postscript puis d'utiliser ps2pdf en traitement par lot.

Avatar
Alain Reymond

(NB : posté sur fr.comp.lang.python et )

A priori, j'envisage un petit script Python insérant les mentions qui
vont bien dans les documents words et appelant le convertisseur
(PDFCreator, qvPdf, ???), mais peut-être y-a t'il mieux à faire ?

Comme je suppose que le problème n'est pas nouveau, je serais intéressé
par tout conseil - lien - retour d'expérience sur la question...

Merci d'avance



Je pense que c'est une solution rapide (pdfcreator se met à la place
de l'imprimante). Personnellement j'utilise manuellement pdfcreator et
en suis satisfait.


Oui ? Bon, info utile, je prend !-)

Une autre solution peut être encore plus rapide serait d'éditer en
postscript puis d'utiliser ps2pdf en traitement par lot.

<rouge-avec-la-honte>

Ahum... Evidemment...
</rouge-avec-la-honte>

Merci, je vais étudier ça, ça me semble effectivement le plus simple.
L'outil PrintConductor permet de sélectionner une liste de fichiers

(doc, xls, etc) et de les imprimer en batch sur une imprimante choisie.
Il suffit de choisir une imprimante de type pdfcreator et de configurer
ce dernier pour qu'il donne automatiquement le nom fichier pdf à chaque
fois.
Ca devrait rouler après...

Alain



Avatar
Bruno Desthuilliers

(NB : posté sur fr.comp.lang.python et )

A priori, j'envisage un petit script Python insérant les mentions qui
vont bien dans les documents words et appelant le convertisseur
(PDFCreator, qvPdf, ???), mais peut-être y-a t'il mieux à faire ?

Comme je suppose que le problème n'est pas nouveau, je serais intéressé
par tout conseil - lien - retour d'expérience sur la question...

Merci d'avance



Je pense que c'est une solution rapide (pdfcreator se met à la place de
l'imprimante). Personnellement j'utilise manuellement pdfcreator et en
suis satisfait.


Oui ? Bon, info utile, je prend !-)

Une autre solution peut être encore plus rapide serait d'éditer en
postscript puis d'utiliser ps2pdf en traitement par lot.

<rouge-avec-la-honte>

Ahum... Evidemment...
</rouge-avec-la-honte>

Merci, je vais étudier ça, ça me semble effectivement le plus simple.


Avatar
Didier
Alain Reymond wrote:


(NB : posté sur fr.comp.lang.python et )

A priori, j'envisage un petit script Python insérant les mentions
qui >>> vont bien dans les documents words et appelant le



convertisseur >>> (PDFCreator, qvPdf, ???), mais peut-être y-a t'il
mieux à faire ?

Comme je suppose que le problème n'est pas nouveau, je serais
intéressé >>> par tout conseil - lien - retour d'expérience sur la



question...

Merci d'avance



Je pense que c'est une solution rapide (pdfcreator se met à la
place >> de l'imprimante). Personnellement j'utilise manuellement


pdfcreator et >> en suis satisfait.

Oui ? Bon, info utile, je prend !-)

Une autre solution peut être encore plus rapide serait d'éditer en
postscript puis d'utiliser ps2pdf en traitement par lot.

<rouge-avec-la-honte>

Ahum... Evidemment...
</rouge-avec-la-honte>

Merci, je vais étudier ça, ça me semble effectivement le plus
simple.
L'outil PrintConductor permet de sélectionner une liste de fichiers

(doc, xls, etc) et de les imprimer en batch sur une imprimante
choisie. Il suffit de choisir une imprimante de type pdfcreator et
de configurer ce dernier pour qu'il donne automatiquement le nom
fichier pdf à chaque fois.
Ca devrait rouler après...

Alain
Pourquoi ne pas manipuler word et pdfcreator en com pour faire le tout?


a+

Didier

--




Avatar
Michel Claveau
Bonjour !

Pourquoi ne pas manipuler word & pdfcreator en com pour faire le tout?


Ben, oui ! D'autant plus qu'il est possible de configurer PDFcreator,
pour qu'il crée automatiquement le, ou les, fichiers, sans poser aucune
question (dans PDFcreator 0.8.1rc9, cela se fait par "imprimante" +
"options" + "sauvegarde automatique", à gauche).

Pour le pilotage de Word, il y a une classe toute prête, dans le wiki.

--
@-salutations

Michel Claveau

Avatar
jean-michel bain-cornu
Pourquoi ne pas manipuler word et pdfcreator en com pour faire le tout?
Didier
Théoriquement, on peut aussi faire une macro python dans Open Office

pour charger le document word (ce qui marche bien) et le sauvegarder en
pdf (ce qui marche bien aussi), mais j'avoue que les exemples donnés sur
le site OO ne sont pas bien clairs quand au chargement de fichiers.
Si ça t'intéresse, je peux chercher un peu plus.
jm

Avatar
Frédéric Momméja
jean-michel bain-cornu écrivait le 16/05/06 8:29 :
Pourquoi ne pas manipuler word et pdfcreator en com pour faire le tout?
Didier
Théoriquement, on peut aussi faire une macro python dans Open Office

pour charger le document word (ce qui marche bien) et le sauvegarder en
pdf (ce qui marche bien aussi), mais j'avoue que les exemples donnés sur
le site OO ne sont pas bien clairs quand au chargement de fichiers.
Si ça t'intéresse, je peux chercher un peu plus.


Il y avait ça, très récemment annoncé sur clpa :
http://www.thomas-guettler.de/scripts/ooo2any.py.txt

Pour le fil correspondant :
http://groups.google.fr/group/comp.lang.python.announce/browse_thread/thread/e0199f12d5be8a84/4ad1449ef560f9d7?hl=fr%2F#4ad1449ef560f9d7

Le même en plus court : ;)
http://minilien.com/?uspCQIMKTu

--
Frédéric Momméja


Avatar
bruno at modulix
Michel Claveau wrote:
Bonjour !

Pourquoi ne pas manipuler word & pdfcreator en com pour faire le tout?



Ben, oui ! D'autant plus qu'il est possible de configurer PDFcreator,
pour qu'il crée automatiquement le, ou les, fichiers, sans poser aucune
question (dans PDFcreator 0.8.1rc9, cela se fait par "imprimante" +
"options" + "sauvegarde automatique", à gauche).

Pour le pilotage de Word, il y a une classe toute prête, dans le wiki.

Nickel :-)


--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"


Avatar
Michel Claveau
Bonsoir !

Le problème, avec OOo, c'est que ça fonctionne avec le Python embarqué.
Or, il s'agit d'un Python 2.3, et je n'ai jamais réussi à installer
Python 2.4 à la place.

De plus, il est impossible d'installer PyWin32 ("LA" librairie
windows), sans "casser" le Python normal. Et c'est logique, puisqu'il y
a des paramètres unique dans la base de registre.

Autre chose, pour piloter OOo depuis Python, via uno, sans passer par
COM, je n'ai réussi qu'en passant par le Python embarqué, et jamais
autrement. Cela empêche l'utilisation depuis les logiciels (en Python)
habituels.

Enfin, le pilotage d'OOo par Python via COM se passe assez mal.
D'abord, la documentation est quasi inexistante. Ensuite, il y a un
problème avec Python, qui n'arrive pas à récupérer les structures
renvoyées par OOo. Pour contourner le problème, j'ai été obligé
d'utiliser, dans Python, des appels à des fonctions VBscript (via
Active-Scripting). Un comble !


Si quelqu'un avait des solutions à ces différents problèmes, je suis
intéressé.

Et merci d'avance.


--
@-salutations

Michel Claveau
Avatar
jean-michel bain-cornu
Bonjour,
Le problème, avec OOo, c'est que ça fonctionne avec le Python embarqué.
Or, il s'agit d'un Python 2.3, et je n'ai jamais réussi à installer
Python 2.4 à la place.

De plus, il est impossible d'installer PyWin32 ("LA" librairie windows),
sans "casser" le Python normal. Et c'est logique, puisqu'il y a des
paramètres unique dans la base de registre.

Autre chose, pour piloter OOo depuis Python, via uno, sans passer par
COM, je n'ai réussi qu'en passant par le Python embarqué, et jamais
autrement. Cela empêche l'utilisation depuis les logiciels (en Python)
habituels.

Enfin, le pilotage d'OOo par Python via COM se passe assez mal. D'abord,
la documentation est quasi inexistante. Ensuite, il y a un problème avec
Python, qui n'arrive pas à récupérer les structures renvoyées par OOo.
Pour contourner le problème, j'ai été obligé d'utiliser, dans Python,
des appels à des fonctions VBscript (via Active-Scripting). Un comble !


Si quelqu'un avait des solutions à ces différents problèmes, je suis
intéressé.
En complément à tout ce que tu exposes, il ne faut pas oublier que OO

fonctionne aussi (et surtout ?) sous Linux (et solaris ?), ou
pywin32/com n'existent pas que je saches.
J'ai commencè à regarder un peu et j'ai trouvé des exemples mais qui
sont trop touffus pour le problème initial, qui était de charger un
fichier word et de le sauver en pdf.
Si l'on reste dans l'esprit de python, quelques lignes devraient suffire.
A suivre...
jm

1 2