2009-01-18 7 views
2

Je cherchais une solution pour l'impression côté client de rapports et de formulaires préformatés à partir d'une application Web PHP. Notez que ces pages ne sont pas imprimées. Plutôt joliment alignés fixes Formulaires reçus, les bons de commande, Ledger etc.Impression de rapports côté client à partir d'applications Web PHP

Quelque chose que j'ai de si. Utilisation de PDF: Existe-t-il une méthode simple d'un clic pour imprimer le rapport du côté client? Le choix évident d'ouvrir le PDF dans une fenêtre, puis sélectionnez Fichier -> Imprimer semble trop lourd. Utilisation de Flash: J'ai vu un site proposant une impression par simple clic via le flash. Je ne sais pas ce qui fonctionne en arrière-plan. Toute idée à ce sujet sera utile.

Active-X/Silverlight (?): Je ne veux pas limiter mes utilisateurs sur IE seulement. Mais cette exigence d'impression en un clic est si rigide que je préférerais passer aux plates-formes MS seulement si elle accomplit la tâche. Notez que le clic simple permet d'afficher la boîte de dialogue d'impression et que l'utilisateur clique une seconde fois pour l'impression. Mais plus de complexité que cela est un inconvénient.

Répondre

3

Si le format est si rigide, vous avez besoin d'un format comme PDF. HTML/CSS est tellement variable que vous ne l'obtiendrez jamais pareil sur tous les navigateurs. Les pages Web Plug n'ont pas vraiment de concept de pages (bien qu'il y ait un certain support pour des choses comme le style des médias d'impression CSS).

De plus, tout le monde n'a pas d'imprimante. Essayer de forcer quelque chose à imprimer est vraiment la mauvaise approche et mettra généralement certains de vos clients hors tension.

La solution minimale consiste à créer une page de réception avec le CSS d'impression emdia pour lui donner l'apparence d'une réponse la plupart du temps.

Si cela ne suffit pas, vous devez aller au format PDF. Malheureusement, cela devient alors difficile comme this question regarding HTML+CSS to PDF conversion illustrates. PrinceXML fait un travail remarquable à cette conversion, mais ce n'est pas bon marché. Html2PDF est le meilleur de la grappe open source, mais a des problèmes (voir cette réponse pour plus de détails). J'ai eu ce même problème dans l'espace Java et pour les factures finissant par utiliser Jasper Reports. Cependant, je n'ai pas vraiment vu une solution de rapport équivalente pour PHP. Python a reportlab, ce qui semble un candidat probable pour faire ce genre de travail aussi.

Peut-être votre meilleure option est de générer le PDF directement. C'est un peu plus fastidieux mais cela évite les nombreux pièges de la conversion HTML vers PDF. This tutorial (Part 2) explique comment.

+1

De nos jours, http://code.google.com/p/wkhtmltopdf/ et http://phantomjs.org sont des projets open source proches de PrinceXML. –

1
<a href = "#" onclick = "window.print(); return false;">Print!</a> 
0

Furter à Nelson LAQUET, vous pouvez mettre window.print() dans l'attribut onload de la balise corps de sorte que la boîte de dialogue d'impression apparaît au chargement de la page,

(ou document.ready de l'utilisation jquery() pour réaliser le même, ou quel que soit l'offre des autres frameworks JS)

Questions connexes