Bonjour,
Imprimer du texte à une échelle précise à un endroit précis est souvent pénible
Il faut commencer par connaitre l'imprimante en cours, c'est à dire sa résolution et son format de papier, puis faire un certain nombre de calcul.
L'alternative simple est de générer un document PDF (directement et non pas à l'aide d'une imprimante virtuelle)
ABBKlaus a effectué pour PureBasic, un excellent portage de l’excellent librairie PHP FPDF (qui sert à générer du PDF depuis un serveur Web utilisant PHP)
À télécharger ici:
http://www.purebasicpower.de/?PurePDF
Pas de panique, bien qu'indiquée pour PB 5.2, ça fonctionne très bien pour la 5.31
Il y a plusieurs intérêts à faire du PDF directement
- Tu définis la taille de la page dans le programme (par défaut A4)
- Tu positionnes texte et image en unité métrique plutôt qu'en pixels ou dpi
- Tu peux archiver directement tes rapports ou les envoyer par mail
En ce qui concerne le texte, tu as une fonction
pdf_Cell() qui permet d'afficher des blocs de texte (comme un logiciel de PAO).
Le texte contenu dans un bloc (même une simple ligne) peut être centré, justifié etc. L'affichage de cadre est facultatif.
Exemple tiré du tutorial
Code : Tout sélectionner
; --- Nom du document PDF
Define file$="Tutorial01 Hello World.pdf"
; --- Créé le document
pdf_Create()
; --- Ajoute une page
; Sans autre paramètre la page est une A4
; La marge est de 1 cm (on peut la changer avec pdf_SetMargins)
pdf_AddPage()
pdf_SetFont("Arial","B",16)
; --- Créé une cellule de 19 mm sur 10 avec un cadre visible
; Rappel: par défaut les marges sont de 1 cm, et l'origine en haut à gauche
; La largeur utilisable est donc de 19 cm, la hauteur 27,7 cm
; en faisant un cadre de 19 cm le texte sera toujours centré quelque soit sa taille
pdf_Cell(190,10,"Centré avec cadre",1, 0, #PDF_ALIGN_CENTER)
; --- Descend de 2 cm (par rapport au haut de la zone imprimable)
pdf_SetY(20)
; --- Créé la même chose, mais sans cadre visible
pdf_Cell(190,10,"Centré sans cadre",0, 0, #PDF_ALIGN_CENTER)
; --- Sauvegarde le document
pdf_Save(file$)
; --- Ouvre le document dans le visualiseur PDF installé
RunProgram(file$)
Rapide et simple.
La licence de PurePDF te permet de l'utiliser même pour une application commerciale (indiquer l'auteur est recommandé et apprécié)
Attention: si tu installe le package tel quel, les exemples te ferons un message d'erreur:
« Nom déjà utilise par une commande (provenant de la bibliothèque 'PurePDF'). »
La raison: La lib est déjà chargé car elle se trouve dans le répertoire UserLibrairies et XincludeFile empêche de la recharger une deuxième fois (comportement normal)
il faut alors mettre en commentaire dans les exemples les deux lignes
; #PurePDF_Include=1
; XIncludeFile "PurePDF.pb"
en faisant l'installation par défaut, tu as l'aide contextuelle et le tout dans Aide / Aide externe
