Aller au contenu

Sujets conseillés

Posté

Bonjour tout le monde,

Je suis bloqué sur une application que j'essaye de développer, je souhaiterais créer des bordereau sur lesquels il y aurais plusieurs informations appelées en fonctions de ce que l'utilisateur désire : voila à quoi cela ressemble

Pole NANTES

mercredi 8 juillet 2009

Ici un code barre

BORDEREAU DE DISTRIBUTION DES DOCUMENTS

M. Nom de l'employé

Recevez le ou les documents ci-joints pour la mise à jour de votre collection pour "le nom de renseignement"

Ce bordereau est à restituer émargé dans les quinze jours après réception dans la boite prévue à cet effet.

DATE et SIGNATURE :

Je suis coincé sur plusieurs choses, j'ai déjà créer un bordereaux en php qui interrogent ma base, il marche plus tôt bien sauf que au niveau de la mise en page sa ne colle pas :blush: car le bordereaux s'affiche via un écho et quand je demande à créer plusieurs bordereaux, et bien le bordereau peut se retrouver sur deux pages ...

Ce que j'aurais aimer savoir, serait comment faire si je créer le bordereaux en pdf et que je laisse par exemple plusieurs champs pour y insérer mes données.

ou bien comment faire pour que mon bordereaux soit bien ajustée sur les pages.

Merci à vous :)

Posté (modifié)

En PDF, je m'étais fait une petite classe pour gérer ce type de problème, celle-ci permettait d'écrire des lignes et testait à chaque fin de ligne si tu n'arrivait pas en bout de page, créait une page le cas échéant et replaçait le pointeur à l'endroit voulu après avoir inséré l'en-tête.

Je te partagerai bien le code, mais malheureusement c'était de l'ajax/js pour un projet AIR, et ce n'est pas très lisible :)

Avec le pdf, c'est toujours le même souci, sans compter le fait qu'il est impossible ou presque de ce fait de respecter les règles de typo...

Gérer le pointeur x,y de cette manière est très archaïque, mais malheureusement je pense que tu n'as pas le choix, j'ai récemment fait un facturier PDF avec FPDF, c'est un peu la misère à ce niveau.

Je te conseille d'étendre la class FPDF et d'y ajouter une méthode qui gère ce type de chose.

Sinon il existe une librairie payante pdflib qui gère peut-être ces éléments, je dis peut-être car je ne la connais pas (ce serait bien qu'un initié intervienne dessus d'ailleurs).

Modifié par SStephane
Posté

Merci de vos réponses

sinon

Salut,

Je n'ai pas tout compris à ton problème, mais sache que tu peux générer du PDF à partir du PHP grâce à FPDF : http://www.fpdf.org/

enfaite mon bordereau que tu peut voir en haut s'affiche sur une page php il est contenu dans un echo, il y a un formulaire qui est destiné à l'utilisateur pour lancer la création du ou des bordereaux, pour cela il entre une info et il obtient des bordereaux remplis avec nom, date du jour etc...

mais mon problème est qu'il ne veut pas s'afficher en ajuster sur une page, en gros que le bordereaux peut être coupé et mis sur deux pages, donc inutilisable...

J'ai pensé à autre chose mettre le bordereaux sur une autre page, et le formulaire sur une autre, et quand la requête est lancé elle affiche l'autre page avec le bordereau dessus, par-contre je sais pas comment forcer la mise en page pour que les bordereau ne se coupe... (sachant que je suis débutant et que je ne connais pas masse de langage :unsure: )

Posté

Soit tu crées tout en PDF (généré avec PHP), et dans ce cas il faut utiliser l'une des librairies PHP mentionnées dans les messages ci-dessus : en PDF, la gestion des pages ne pose plus aucun problème.

Soit tu génères du HTML (avec du PHP bien sûr), et dans ce cas tu peux créer une feuille de style pour l'impression (media="print"), et utiliser la propriété page-break-before:always; pour imposer un saut de page.

C'est l'une ou l'autre solution au choix, mais je n'en vois pas de troisième !

Posté

malheureusement la propriété page-break-before:always; n'a pas l'air d'être correctement comprise par tous les navigateurs, ou alors c'est parce que j'utilisais quelques div en float :blushing:

Posté

Désolé du retard de réponse, mais effectivement tous les navigateur ne le prenne pas, sous firefox c'est ok, par contre j'ai oublié de précisé que c'est développé pour IE6, et la sa marche pas :dots:

Posté (modifié)

Salut,

En partant du principe que j'ai bien compris ce que tu voulais (ce qui n'est pas tout à fait sûr ^^), je crois que je ferais l'affichage du bordereau (dont les champs ont étés remplis via formulaire) directement en PDF en utilisant FPDF ou PDFLib par exemple...

Dans le manuel de FPDF il y a des méthodes qui peuvent peut-être t'aider pour ton problème de saut de page (à vérifier) : AcceptPageBreak et SetAutoPageBreak.

D'une manière générale, pour créer des PDF je te conseille la classe FPDF car elle est gratuite, bien documentée et tu pourra trouver pas mal de scripts en complément pour des besoins spécifiques (sur leur site et sur internet en général).

EDIT :

Je viens de vérifier et la propriété page-break-before:always; fonctionne sous IE6 (il est spécifié IE4 et +).

Il faut savoir que le saut de page n'est visible qu'à l'impression et pas sur l'écran directement (sauf en faisant un aperçu avant impression).

Modifié par Noaric
Posté

salut noaric merci de ta réponse, et désolé j'ai un peut de mal à me faire comprendre...

enfaite sa serai bien avec fpdf, mais le truc c'est qu'enfaite l'utilisateur qui prépare le bordereau à un formulaire à disposition mais il n'y a qu'un seul champs :)

enfaite il entre une information (par exemple un code postale) et la il aura automatiquement tout les champs qui se rempliront, (requêtes sql...) donc ce que je voudrais savoir c'est si je lance ma création de bordereaux avec fpdf est ce que je pourrait positionner exactement les endroit ou les informations devront être extraites?

merci encore, je vous tiens au courant de l'avancement.

Posté

Bien sûr, tu pourras faire tout ce que tu veux. Puisque tu c'est du php, tu auras les mêmes possibilités qu'avec un script classique. Si FPDF ne pouvait générer que des pages PDF "statiques", il ne servirait à rien ;)

Posté

Je vous remercie de l'aide que vous m'avez fournis! sa marche bien, à part quelque petit soucis de mise en page, enfaite si je lance une création de bordereaux je me retrouve avec un bordereaux par page, et je peut en avoir jusqu'à 300 à faire et sa risque de demander beaucoup de papier ^^"

donc je vais voir avec les propriété du css : page-break-before:always changé le always avec un auto ou autre je vous tiens au courant si je trouve :)

merci encore !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...