convertir des documents en pdf - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 11-10-2004 à 15:44:01
tu peux le faire à partir d'OpenOffice par exemple 
soit directement depuis la barre d'outils, soit en fesant imprimer dans un fichier pdf 
 
edit: j'avais pas fait gaffe que tu souhaitais le faire ne ligne de commande, là je sait pas mais j'imagine qu'il est possible de faire une macro avec OO
Marsh Posté le 11-10-2004 à 15:45:54
smea> ok mais je pense qu'il cherche un moyen pour scripter tout ça en ligne de commande  
 
J'avais déjà regardé, et j'avais pas trouvé (peut-être pas bien cherché  )
 ) 
 
Ça m'intéresse toujours 
Marsh Posté le 11-10-2004 à 15:49:30
j'viens de me souvenir que tu peux le faire avec la commande a2ps  
 
 
| Citation : [peshane@smeamdk10 peshane]$ a2ps --help  | 
Marsh Posté le 11-10-2004 à 15:50:02
salut, 
ouais, en fait, je voudrais scripter tout ca, c'est pour cela que je demandais s'il existait un script ou un petit soft. 
 
J'ai aussi bien cherché avant de poser ma question mais j'ai rien trouvé! 
 
Tenez moi au courant si vous avez du neuf. 
 
Merci 
++
Marsh Posté le 11-10-2004 à 15:56:26
Je pense avoir trouvé  
 
une macro OOo, qui a l'air d'être utilisable en ligne de commande  
 
http://www.oooconv.de/engine/HowToConv.php?lang=fr 
Marsh Posté le 11-10-2004 à 16:10:38
héhé, on se rapproche ... 
http://www.oooforum.org/forum/viewtopic.php?t=3772
Marsh Posté le 11-10-2004 à 16:46:26
Bon alors, à partir du dernier lien que j'ai donné, voilà la démarche : 
 
 ) apparaît.
 ) apparaît. | Sub ConvertWordToPDF( cFile )   | 
 
(vous pouvez supprimer le squelette par défaut (sub main ...) 
![[:zebra33] [:zebra33]](https://forum-images.hardware.fr/images/perso/zebra33.gif) 
   ), enregistrez le dans votre répertoire personnel (sous le nom test.doc par exemple
 ), enregistrez le dans votre répertoire personnel (sous le nom test.doc par exemple  ).
 ). | /usr/lib/openoffice/program/soffice "macro:///Convertisseur.Module1.ConvertWordToPDF($HOME/test.doc)" | 
 
 
  
Reste plus qu'à faire des scripts (et des servicesmenus pour KDE) pour intégrer tout ça dans notre environnement favori 
Marsh Posté le 11-10-2004 à 16:58:24
ya pas sans passer par oo??? genre pour une debian en mode text !!
Marsh Posté le 11-10-2004 à 17:02:15
| petitefonc a écrit : ya pas sans passer par oo??? genre pour une debian en mode text !!  | 
 
Si tu veux éviter OOo, va voir du côté de wvware : http://wvware.sourceforge.net/ 
Mais bon, côté rendu, je sais pas ce que ça donne  
 
 
Note, que la macro OOo doit passer en mode texte  
 
Puisque une fois, la macro écrite, l'appel ne nécessite pas l'ouverture de fenêtre (je pense qu'il faut utiliser l'option --invisible ...)
Marsh Posté le 11-10-2004 à 17:02:34
aparement il y a "cl-pdf" mais j'ai jamais testé
Marsh Posté le 11-10-2004 à 17:04:43
Je confirme. 
Avec l'option -invisible (un seul tiret  ), aucune fenêtre
 ), aucune fenêtre  donc pas de X et autres cochoncetés nécessaires
 donc pas de X et autres cochoncetés nécessaires
Marsh Posté le 11-10-2004 à 17:08:49
je n'ai meme pas de serveur X d'installé et g pas l'intention d'en installer 1 ...  
yavais pas une solution avec samba ( genre pdf printer ?? )
Marsh Posté le 11-10-2004 à 17:15:35
salut, 
moi aussi, je n'ai pas de serveur X d'installer et je ne peux pas en installer 1, sinon, c clair que la solution avec OOo est bien pratique...
Marsh Posté le 11-10-2004 à 17:15:48
ben oui, mais le pb, c'est que ça ça prends quoi comme format de fichier en entrée cette imprimante 
Marsh Posté le 11-10-2004 à 17:18:55
ben ça ^rend des données brut!!!  
tu crois pas ke ton imprimante a tout les format dans ça petite memoire! c le PC ki converti le format en donné brutes vers le port imprimante..... d'où le PDF printer de samba!!! 
 
mais jec plus comment ça fonctionne :-( 
merci
Marsh Posté le 11-10-2004 à 19:02:04
| petitefonc a écrit : ya pas un print-pdf ki est utilisé avec samba ???  | 
 
 
j'ai trouvé ca : http://www.bashprofile.net/article.php3?id_article=119 
 
Marsh Posté le 11-10-2004 à 19:05:52
| ohan a écrit : j'ai trouvé ca : http://www.bashprofile.net/article.php3?id_article=119  | 
 
 
et aussi ca : http://higgins.free.fr/doc/PDF-Ser [...] html#ss3.2
Marsh Posté le 11-10-2004 à 19:06:05
voir la fin pour Samba : 
http://forum.hardware.fr/forum2.ph [...] 0&subcat=0
Marsh Posté le 11-10-2004 à 21:50:07
| bobuse a écrit : Bon alors, à partir du dernier lien que j'ai donné, voilà la démarche :  
   
 
   
 
   
   | 
 
 
Salut 
j'ai une erreur lorsque je lance la commande  
 
/usr/lib/openoffice/program/soffice "macro:///Convertisseur.Module1.ConvertWordToPDF($HOME/test.doc)" 
 
Runtime Error Basic 
oDoc.storeToURL( cURL, Array(MakePropertyValue( "FilterName", "writer_pdf_Export" ),) ==> Variable d'objet non paramétrée 
 
as tu une idée ? 
 
merci 
 
a+ 
 
el liberator 
Marsh Posté le 11-10-2004 à 21:54:50
Bon alors, à partir du dernier lien que j'ai donné, voilà la démarche : 
 
 ) apparaît.
 ) apparaît. | Sub ConvertWordToPDF( cFile )   | 
 
(vous pouvez supprimer le squelette par défaut (sub main ...) 
![[:zebra33] [:zebra33]](https://forum-images.hardware.fr/images/perso/zebra33.gif) 
   ), enregistrez le dans votre répertoire personnel (sous le nom test.doc par exemple
 ), enregistrez le dans votre répertoire personnel (sous le nom test.doc par exemple  ).
 ). | /usr/lib/openoffice/program/soffice "macro:///Convertisseur.Module1.ConvertWordToPDF($HOME/test.doc)" | 
 
 
  
Reste plus qu'à faire des scripts (et des servicesmenus pour KDE) pour intégrer tout ça dans notre environnement favori  
 
 
Salut 
 
j'ai une erreur au lancement de la commande : 
/usr/lib/openoffice/program/soffice "macro:///Convertisseur.Module1.ConvertWordToPDF($HOME/test.doc)" 
 
Runtime Erreur Basic  
oDoc.storeToURL( cURL, Array(MakePropertyValue( "FilterName", "writer_pdf_Export" ),) 
 
Variable d'objet non Paramétrée 
 
as tu une idée ? 
 
merci 
 
a+ 
 
el liberator 
 
Marsh Posté le 12-10-2004 à 09:16:03
ohan> Je comprends pas tout  
 
 
Ta question de départ était de convertir des sxw en pdf en ligne de commande. L'imprimante samba, je vois pas trop le rapport  
 
 
el liberator> As-tu bien un fichier test.doc dans ton repertoire personnel ?
Marsh Posté le 13-10-2004 à 15:40:26
Effectivement, pour convertir du DOC en PDF, OOo est probablement la meilleure solution. 
 
Mais le fait qu'avec l'option "-invisible", OOo n'ouvre pas de fenêtre, ne veut pas dire qu'il ne se connecte pas au serveur X. Typiquement, il en a besoin pour tout un tas de choses ennuyantes, comme accéder aux fontes, etc... 
 
Donc la ligne de commande donnée marche bien dans une fenêtre X, mais pas dans un script système ou en mode console. 
 
Pour contourner ce problème, il suffit d'installer le serveur virtuel xvfb (X Virtual Framebuffer). Sous Debian, le paquet s'appelle xvfb, sous SuSE, c'est xextra. Ensuite, on lance : 
 
| xvfb-run ooffice "macro:///Convertisseur.Module1.ConvertWordToPDF($HOME/test.doc)"' | 
 
ça mouline un peu (quand même presque 6 secondes pour un Hello World sur un Athlon XP et tout dans le cache disque), mais ça devrait marcher   
 
 
Attention toutefois à installer la macro pour l'utilisateur qui exécutera le script (dans ~/.openoffice/<version>/user/basic).
Marsh Posté le 13-10-2004 à 16:41:56
Ha d'accord ! Merci pour la précision et la solution  
 
 
Cependant, la solution qui utilise X peut tout de même étre scripter en mode console 
Marsh Posté le 13-10-2004 à 20:35:08
| bobuse a écrit : ohan> Je comprends pas tout  | 
 
 
Salut 
effectivement mon fichier n'était pas dans mon home 
mais maintenant j'ai un  Segmentation fault lorsque je lance 
la macro 
 
a+ 
 
el liberator
Marsh Posté le 11-12-2004 à 16:10:27
J'ai moi aussi un nombre important (+-1000) de .doc a convertir en pdf. 
J'ai essayé la solution avec open office mais il y a au moins un document qui n'est pas passé. 
Toujours avec open office j'ai essayé les convertions suivantes : 
  - imprimer dans un fichier en PostScript 
  - convertir en pdf avec ps2pdf 
La convertion fonctionne; mais j'ai une erreure lors de la fermeture du document j'ai un message controleur disagre (très bref), puis ooffice se termine par Segmentation fault. 
Lors du test de la macro pas à pas tout est OK. 
Quelqu'un peut-il m'indiquer où est le problème ? 
 
la macro : 
 
Sub ConvertWordToPS () 
 dim oDoc as object 
 dim document as object 
 dim dispatcher as object 
 
 cFile = "/home/alain/tmp/3.DOC" 
 cURL = ConvertToURL (cFile) 
 
 ' Open the document. 
 ' Just blindly assume that the document is of a type that OOo will 
 '  correctly recognize and open -- without specifying an import filter. 
 Dim args1(0) As New com.sun.star.beans.PropertyValue 
 args1(0).Name = "Hidden" 
 args1(0).Value = True 
 oDoc = StarDesktop.loadComponentFromURL (cURL, "_blank", 0, args1()) 
'	document = oDoc.CurrentController.Frame 
 
 cFile = Left (cFile, Len (cFile) - 4) + ".ps" 
 cURL = ConvertToURL (cFile) 
 
 'Voulez vous choisir une imprimante particulire ? 
 Dim mPrintopts1(0) As New com.sun.star.beans.PropertyValue 
 Dim mPrinter(1) As New com.sun.star.beans.PropertyValue 
 mPrinter(0).Name = "Name" 
 mPrinter(0).value = "Generic PostScript output (distillable)" 
 mPrinter(1).Name = "PrinterFormat" 
 mPrinter(1).Value = "A4" 
 mPrintopts1(0).Name = "FileName" 
 mPrintopts1(0).Value = cFile 
 oDoc.SetPrinter (mPrinter()) 
 
 'Pour imprimer simplement les documents, faire ceci :  
 oDoc.Print(mPrintopts1()) 
 
 'Enregistre en HTML 
 cFile = Left (cFile, Len (cFile) - 3) + ".html" 
 cURL = ConvertToURL (cFile) 
 
 Dim args2(0) As New com.sun.star.beans.PropertyValue 
 args2(0).Name = "FilterName" 
 args2(0).Value = "HTML (StarWriter)" 
 oDoc.StoreAsURL (cURL, args2()) 
 
 oDoc.setModified (False) 
 oDoc.close (True) 
End Sub 
 
p.s. : Bien qu'elle s'appelle ConvertWordToPS la macro converti également le document en html.
Marsh Posté le 24-02-2005 à 20:18:13
moi ce que je recherche et que je n'ai pas trouvé, c'est un moyen d'augmenter le degré de compression en pdf. 
Par exemple, j'ai un fichier bourré d'images volumineuses, et je voudrais que ça compresse en même temps le degré de résolution de images. 
Marsh Posté le 24-02-2005 à 20:22:56
| Nelyot Tchagui a écrit : moi ce que je recherche et que je n'ai pas trouvé, c'est un moyen d'augmenter le degré de compression en pdf.  | 
 
 
imprime dans un fichier avec une mauvaise qualité (75 dpi), puis ps2pdf ? 
 
Nâe Ryo Tchagui ?
Marsh Posté le 24-02-2005 à 20:43:59
je vois pas comment imprimer "dans un fichier". 
J'ai mon .ps qui fait 187Mo; quelle commmande pour l''imprimer en mauvaise qualité?
Marsh Posté le 24-02-2005 à 21:41:52
quel est le format du document au départ ? 
ce que je te propose, et qui fait gagner des pouiemes, c'est de réduire la taille du .ps, en imprimant en basse qualité (dépend du soft). 
Marsh Posté le 24-02-2005 à 22:41:36
en fait j'avais un pdf que j'ai mis en ps et que je voudrais mettre en pdf mais plus petit que le premier. Je me demande comment imprimer basse qualité (je veux bien utiliser un autre soft)
Marsh Posté le 24-02-2005 à 22:48:36
et tu n'a pas le fichier source qui a permis de générer ce pdf ?
Marsh Posté le 24-02-2005 à 22:53:22
ben si mais c'est un fichier publisher, je crois pas que ce soit possible d'ouvrir le moindre .pub sous linux.
Marsh Posté le 24-02-2005 à 22:58:18
| Nelyot Tchagui a écrit : ben si mais c'est un fichier publisher, je crois pas que ce soit possible d'ouvrir le moindre .pub sous linux. | 
 
OOo le fait pas ?
Marsh Posté le 11-10-2004 à 15:42:33
Bonjour,
est ce qu'il existe un petit soft ou script qui converti des .doc ou des .sxw en pdf via la ligne de commande.
Merci pour vos infos
++