manipuler une imprimente pdf sur serveur php

devsof
Invité n'ayant pas de compte PHPfrance

04 juil. 2012, 09:32

Bonjour à tous,
Voilà, je travail sur un système de type GED, qui génère et gère beaucoup de formulaire et des bons de commande pour des produit..., le but de mon intervention est de faire en sorte que l'application oblige l'utilisateur d'imprimer les formulaire (en PDF) pour garder une trace...,
mon idée c'est d’installer une imprimante pdf côté serveur et d'automatiser les impression des formulaires PHP (c-a-d imprimer la page en cours que l'utilisateur aperçoit sur le navigateur en pdf ).

voilà ce que j'ai trouver :

$printer = ("PDFCreator");
$ph = printer_open($printer);
$content1 = "ma page web";
// Set print mode to RAW and send PDF to printer
printer_set_option($ph, PRINTER_MODE, "RAW");
printer_write($ph, $content1);
printer_close($ph);


Le problème c'est que si je met l'url de ma page web dans $content j'ai tout le code en php qui est recopier dans le fichier pdf creé.
J'ai essayé de convertir ma page avec html2pdf avant de l'imprimer avec PDFCreator mais cela ne fonctionne pas non plus.

je voudrais savoir s'il existe une fonction ou une solution qui fait la même chose comme si : on va sur le menu du navigateur Fichier->imprimer et choisir PDFCreator comme imprimante.

Voilà j'éspére que j'étais clair dans mon explication.
Merci d'avance de vos nombreuse réponses.

ViPHP
xTG
ViPHP | 7331 Messages

04 juil. 2012, 10:59

Le set option spécifie un mode RAW.
Autrement dit une lecture brute du fichier et non une interprétation de son contenu.
Faut te pencher donc sur les arguments disponibles pour cette fonction de cette librairie et voir si on peut spécifier du HTML ou bien PDF. ;)

ViPHP
ViPHP | 2577 Messages

04 juil. 2012, 11:00

Bonjour,

PDFcreator ne sert pas à imprimer, mais à générer un fichier pdf via la simulation de l'impression. Il transforme un format "imprimante" en format pdf. Par exemple, il laisse word faire la mise en page puis récupère le résultat pour la transformation en pdf.

Ensuite, il n'est pas possible depuis le serveur d'imprimer sur le poste du client, il faut utiliser du javascript pour déclencher l'impression et encore, l'utilisateur peut annuler. Pas sur que ca marche pour du pdf. Eventuellement, il faudrait que le serveur connaisse l'imprimante et lui envoie le flux d'impression.

devsof
Invité n'ayant pas de compte PHPfrance

04 juil. 2012, 11:19

Merci xTG;
en fait il existe 3 option : "txt" "raw" et "emf" j'ai essayé les trois option sans succès !



Merci Mazarini;
Une question : est ce qu'il est possible d'imprimer (générer) sur le serveur avec PDFCreator ou autre (sans utiliser fpdf !) puis enregistrer les documents pdf quelque part dans les répertoires du système ?

ViPHP
ViPHP | 2577 Messages

04 juil. 2012, 12:02

J'ai fait ca, mais en vb : ouverture de word et lancement d'une impression sur l'imprimante pdfcreator. Malheureusement je n'ai plus les sources (passsage au produit d'adobe) mais il y a des exemples.

Il faut voir si tu peux créer un objet word (sous windows) et ensuite travailler avec cet objet.
En gros :
- choisir l'imprimante par défaut
- ouvrir word
- ouvrir le document html
- lancer l'impression
- fermer le document
- fermer word

Voir la doc : http://fr2.php.net/manual/fr/refs.utilspec.windows.php
Normalement il faut utiliser les mêmes objets/méhodes/propriétés que tu trouveras dans des exemples VB ou cscript (je ne sais pas s'il y a des exemples PHP)

devsof
Invité n'ayant pas de compte PHPfrance

04 juil. 2012, 12:16

OK , je vai étudier tout ça..

Sinon sais tu s'il est possible de faire des appel système (sous Windows) que je puisse les intégrer dans du code PHP afin de faire une impression ?

ViPHP
ViPHP | 2577 Messages

04 juil. 2012, 13:18

Regarde la page que j'ai donné en lien, sinon il y a la fonction system() et d'autres analogues.

devsof
Invité n'ayant pas de compte PHPfrance

04 juil. 2012, 15:13

OK, Merci beaucoup;

Mammouth du PHP | 2278 Messages

06 juil. 2012, 21:28

Tu peux aussi te demander si l'imprimante est capable de remplacer le e par un a quand il le faut.
Une imprimAnte c'est un peu moins aberra/ent.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD