Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| problème de réglage avec la fonction: PrintFormattedPDF | |
| | Auteur | Message |
---|
Oscaribout
Nombre de messages : 471 Date d'inscription : 29/12/2016
| Sujet: problème de réglage avec la fonction: PrintFormattedPDF Dim 8 Nov 2020 - 1:02 | |
| Bonsoir Klaus, J'ai voulu mettre à jour le mini tableur pour Windows avec la fonction imprimer. L'image que j'ai au départ: elle devient: C'est le mieux que j'arrive à faire. J'ai testé avec Background, avec image, avec le paramétrage de TxtPars$(0) . J'ai toujours un problème de proportion. La partie du code correspondant de ce qui en reste: - Code:
-
no% = grilObjImprime% clear no% item_add no%,"Background,"+ grilCaptureTableur$ : ' Background,nom affichage d'une image de fond sur toute la page ' item_add no%,"Image,0,0,"+item_read$(grilLc%,count(grilLc%))+","+item_read$(grilHc%,count(grilHc%))+"," +grilCaptureTableur$ : ' Image,x,y,w,h,nom afficher une image #n=indice sans #: nom=nom du fichier ' item_add no%,"Image,0,0,700,400,#0" : ' Image,x,y,w,h,nom ' TxtPars$(0) = grilCaptureTableur$ res% = dll_call5("PrintFormattedPDF",handle(no%),adr(TxtPars$),adr(Intpars%),adr(FloatPars),adr(grilPDF$)) execute grilPDF$ L'image est sauvegardé en BMP, seul possible avec Panoramic | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: problème de réglage avec la fonction: PrintFormattedPDF Dim 8 Nov 2020 - 1:46 | |
| Alors, si je comprends bien, tout le tableau est contenu dans une seule image BMP. Et tu essayes d'éditer cette image en PDF.
Actuellement, l'impression en PDF se fait dans le format DIN A4 mode portrait. D'autres formats pourront être ajoutés plus tard - l'implémentation est modulable.
La commande Background étire et/ou comprime l'image de sorte à remplir entièrement la page DIN A4 (210x297 mm). Si ton image n'a pas exactement ces dimensions, il est normal et inévitable qu'elle soit déformée.
Tu as essayé également avec la commande Image, en donnant les dimensions du rectangle résultant comme 700x400. Même raisonnement, mais en plus brutal: la doc indique bien que les coordonnées sont données en unités "PDF". Il faut 23 unités PDF pour faire un millimètre. Tu as donc défini un rectangle de 30,3 mm de large et de 17,4 mm de haut. Normal que le rendu ne soit pas bon...
Etant donné que l'édition se fait (pour le moment) obligatoirement en mode portrait, et étant donné que ta dimension la plus large est la dimension horizontale (700 dans ton code), il faut adapter les dimensions du rectangle de sortie de sorte ue le tableau remplisse horizontalement la page (ou presque), et ajuster la dimension verticale dans exactement la même proportion. Je suppose que les dimensions 700 et 400 sont celles de ton image que tu veux afficher, mesurées en pixels ? Alors, je te propose de procéder comme suit:
1. La largeur de la page DIN A4 en unités PDF est 4958. Choisis cela comme valeur "w" dans la commande Image. 2. Le facteur de proportionalité est donc de 4958 / 700 = 7,08. Comme c'est une valeur "malaisée" à itiliser avec des nombres entiers, je te propose de définir un facteur de proportionnalité de 7. 3. Tu recalcules les nouvelles dimensions avec ce facteur. Cela donne: - largeur = w = 700 * 7 = 4900 - hauteur = h = 400 * 8 = 3200 4. Tu peux alors afficher l'image par la commande Image,0,0,4900,3200,... et tu n'auras plus de déformations.
De façon plus générale, pour automatiser le processus, tu fais le calcul suivant: 1. déterminer la plus grande des dimensions de ton image (dans ton cas, c'est la largeur). 2. tu choisis la dimension correspondante de la page DIN A4 en unités PDF, soit 4958 pour la largeur et 7017 pour la hauteur. 3. tu divises la dimension choisie de la page PDF par la dimension choisie de ton image et tu tronques le résultat. Surtout pas d'arrondi ici ! 4. tu multiplies chacune des dimensions de ton image par ce même facteur et le tour est joué - pas de déformations !
EDIT
Tout autre facteur de proportionnalité inférieur à celui obtenu par ce calcul conviendrait également, bien sûr. Tout dépend de ce que tu veux obtenir. Avec les dimensions indiquées ci-dessus, tu pourrais imprimer 2 images de la même dimension sur une page. Il sufira alors de faire Image,0,3500,4900,3200,... et tu auras placé la seconde image sous la première. Tu peux aussi utiliser un facteur plus petit et composer ta page d'édition par des images les unes à côté des autres et les unes en-dessous des autres, façon mosaique. Tout dépendra de cd que tu voudras obtenir. Tu peux aussi placer du texte au-dessus, en-dessous, à gauche ou à droite de l'image. Tout dépendra de ton choix de facteur de proportionnalité et de la position x,y de départ pour placer l'image. | |
| | | Oscaribout
Nombre de messages : 471 Date d'inscription : 29/12/2016
| Sujet: Re: problème de réglage avec la fonction: PrintFormattedPDF Dim 8 Nov 2020 - 2:24 | |
| - Klaus a écrit:
- Il faut 23 unités PDF pour faire un millimètre
Alors là j'ai appris des choses, et je te remercie pour m'avoir répondu. Mon tableur est composé de x colonnes par x lignes. Comme je ne peux pas faire une copie d'écran car celle-ci ne prend qu'un picture, j'ai donc une manipulation qui copie l'image de chacun-d'eux pour la reporter sur un seul picture. Je ferais cela demain, et je mettrais mon tableur à jour. Bonne nuit | |
| | | Contenu sponsorisé
| Sujet: Re: problème de réglage avec la fonction: PrintFormattedPDF | |
| |
| | | | problème de réglage avec la fonction: PrintFormattedPDF | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |