JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Affichage d'un texte formaté dans un picture Sam 23 Déc 2017 - 16:32 | |
| Je dois avoir un os chez moi, je regarde... Et merci pour le cadeau de Noël ! Je crois que la différence vient des paramètres que je donne dans RichEditGeometry, mais bon, si je multiplie le résultat hauteur rendu par la fonction par un facteur de 2/3 ça me donne un résultat exact dans tous les tests que j'ai fait. Donc ma sub de conversion de rtf en bmp (je vais aussi la mettre dans le 1er post): - Code:
-
DIM frtf$,fbmp$ frtf$ = "C:\TEMP\MonDocument.rtf": ' document créé dans WordPad fbmp$ = "Z:\Imgbmp.bmp": ' image résultante (chemin à adapter) WIDTH 0,600: HEIGHT 0,SCREEN_Y-30: BORDER_SMALL 0: COLOR 0,164,255,255 RtfToBmp(frtf$,fbmp$) ' Affichage du résultat: PICTURE 1: TOP 1,10: LEFT 1,10: WIDTH 1,550: HEIGHT 1,HEIGHT(0)-50 CAPTION 0,clipboard_string_paste$: ' dimensions de l'image FILE_LOAD 1,fbmp$ END ' ============================================================================== SUB RtfToBmp(frtf$,fbmp$) ' Conversion d'un texte formaté .RTF en image .BMP (ou clip si fbmp$="") ' Si fichier, les dimensions sont dans le clipboard, sous la forme wwwxhhh) ' Le Form 0 doit être assez grand pour contenir l'ensemble du texte. DIM_LOCAL RE%,res%,wt%,ht%,fm%,im%,mg%,mh%,x%,y% mg%=(WIDTH(0)-WIDTH_CLIENT(0))/2: mh%=HEIGHT(0)-HEIGHT_CLIENT(0)-mg%: ' marges Form 0 DLL_ON "C:\PANORAMIC\KGF\KGF.dll": ' <================== À ADAPTER ========== RE% = DLL_CALL1("RichEditCreate",HANDLE(0)) res% = DLL_CALL5("RichEditGeometry",RE%,0,0,600,800): ' x, y, w, h res% = DLL_CALL2("RichEditFileLoad",RE%,ADR(frtf$)) ' dimensions du résultat : res% = DLL_CALL4("RichEditGetTextSizes",RE%,HANDLE(0),ADR(wt%),ADR(ht%)) fm%=900 FORM fm%: TOP fm%,0: LEFT fm%,0: WIDTH fm%,SCREEN_X: HEIGHT fm%,SCREEN_Y BORDER_HIDE fm%: HIDE fm%: 2D_TARGET_IS fm%: WAIT 100 ht% = ht%-ht%/3 x% = LEFT(0)+mg%+3: y% = TOP(0)+mh%+3: ' (bordures du RE% = 3 pixels) im%=fm%+1: IMAGE im%: 2D_IMAGE_COPY im%,x%,y%,x%+wt%,y%+ht%: ' capture de l'image affichée res% = DLL_CALL1("RichEditDelete",RE%): ' suppression du RichEdit DLL_OFF IF fbmp$ = "" CLIPBOARD_COPY im% ELSE FILE_SAVE im%,fbmp$: clipboard_string_copy str$(wt%)+"x"+str$(ht%) END_IF 2D_TARGET_IS 0: DELETE fm%: DELETE im% END_SUB ' ============================================================================== | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Affichage d'un texte formaté dans un picture Sam 23 Déc 2017 - 18:39 | |
| Tant mieux si tu as trouvé ta solution, bien que je ne comprenne pas tout à fait cette logigue de 2/3... Mais ce n'est pas grave.
Pour finir en beauté avant Noël, j'ai ajouté une nouvelle fonction: le paramétrage des arrêts de tabulation, pour faire des affichages en colonnes ! | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Affichage d'un texte formaté dans un picture Sam 23 Déc 2017 - 19:37 | |
| Moi non plus je ne comprends pas trop et ce n'est pas très satisfaisant pour un programmeur, mais bon, ça marche comme ça et je vais passer à autre chose.
En tout cas merci pour ton implication Klaus, et merci aussi pour ton dernier (?) cadeau avant Noël ! à étudier... | |
|
Contenu sponsorisé
| Sujet: Re: Affichage d'un texte formaté dans un picture | |
| |
|