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 |
|
|
| Impression d'image sans ressource externe | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Impression d'image sans ressource externe Jeu 14 Nov 2019 - 14:59 | |
| En fait je l'utilise pour imprimer des maquettes de pages A4, créées à l'écran en Panoramic. Le Picture source fait 778x1100 qui me donne une image grandeur nature aux proportions voulues (mon écran fait 1920x1200...), mais ça peut être n'importe quoi. L'intérêt c'est l'utilisation de fonctions incluses dans Windows, donc accessibles directement depuis Panoramic. L'orientation d'impression (portrait/paysage) est automatique en fonction des proportions de l'image. La SUB est PrintA4(), vec un petit exemple, pour voir: - Code:
-
DIM fr$,w%,h%,mg1,mg2,mg3
fr$ = "C:\TEMP\Test.bmp" WIDTH 0,820: HEIGHT 0,1150: COLOR 0,0,255,255: BORDER_SMALL 0 w% = 778: h% = 1100 PICTURE 1: WIDTH 1,w%: HEIGHT 1,h% 2D_TARGET_IS 1 mg1 = 20: mg2 = 40: mg3 = 60 2D_PEN_COLOR 0,0,255: 2D_RECTANGLE mg1,mg1,w%-mg1,h%-mg1 2D_PEN_COLOR 255,0,0: 2D_RECTANGLE mg2,mg2,w%-mg2,h%-mg2 2D_PEN_COLOR 0,255,0: 2D_RECTANGLE mg3,mg3,w%-mg3,h%-mg3 FILE_SAVE 1,fr$ PrintA4(fr$) FILE_DELETE fr$ END
SUB PrintA4(f$) ' Impression d'une page A4 (image, dimensions quelconques mais proportions A4) ' sur l'imprimante par défaut en ligne de commande ' Marges non imprimables périphériques: ~ 3 mm G/D, 3,5 mm H/B sur A4 ' ATTENTION: l'image est redimensionnée (compactée) pour tenir dans la zone ' imprimable, cad -3 mm droite et gauche, -3,5mm haut et bas. ' -> surface imprimée = 204x290 mm, centrée ' Orientation Portrait/Paysage automatique en fonction des proportions ' de l'image à imprimer DIM_LOCAL q$,scr$,pt$,a$,k%,ptr$ q$ = CHR$(34) scr$ = "Cscript %WINDIR%\System32\Printing_Admin_Scripts\fr-FR\Prnmngr.vbs -g" EXECUTE_WAIT "cmd.exe|/c "+scr$+" |clip": a$ = CLIPBOARD_STRING_PASTE$ k% = INSTR(a$,"est "): ptr$ = TRIM$(RIGHT_POS$(a$,k%+4)): ' -> nom imprimante pt$ = "rundll32 shimgvw.dll ImageView_PrintTo /pt" EXECUTE_WAIT "cmd.exe|/c "+pt$+" "+f$+" "+q$+ptr$+q$ END_SUB La sub commence par récupérer le nom de l'imprimante par défaut, qui est nécessaire pour la fonction d'impression, ce qui allonge la durée d'exécution (quelques secondes).. PS, précisions: l'image (le fichier image) donnée à imprimer est de dimensions quelconques, mais impérativement aux proportions d'une page A4 (210 x 297), sinon elle sera tronquée à l'impression. Donc en fait c'est plutôt réservé à l'impression d'une page complète. PS2: je remarque que l'image est redimensionnée (tassée...) à l'impression pour tenir dans la zone imprimable. Ainsi mon picture/image 778x1100 sera imprimé sur 204x290 mm au milieu de la feuille (marges latérales = 3 mm, haut/bas = 3,5 mm, chez moi, c'est peut-être variable selon l'imprimante...). Ça peut être un inconvénient et il faut en tenir compte. | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 15 Nov 2019 - 15:35 | |
| Ouaouh ! Ca, c'est du pointu ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Impression d'image sans ressource externe Ven 15 Nov 2019 - 17:42 | |
| Salut jj, Pointu, pas tant que ça, mais c'est fou toutes ces ressources internes qu'on ignore... J'ai modifié la sub pour tenir compte automatiquement des marges non imprimables, comme ça on dessine sur un picture aux proportions A4, ce qui sera imprimé en sera l'image exacte (sauf que bien sûr les fameuses marges non imprimables resteront blanches !): - Code:
-
SUB PrintA4(f$) ' - Impression de l'image d'une page A4 (dimensions quelconques mais ' proportions A4) sur l'imprimante par défaut en ligne de commande. ' - L'impression tient compte des marges non imprimables périphériques: ' = 3 mm G/D, 3,5 mm H/B sur A4 -> surface imprimée = 204x290 mm, centrée ' - Orientation Portrait/Paysage automatique en fonction des proportions ' de l'image à imprimer. DIM_LOCAL p%,n2%,q$,fm$,wi%,hi%,ppm,x%,y%,scr$,pt$,a$,k%,ptr$ p% = 950: q$ = CHR$(34) fm$ = "C:\TEMP\imgpr.bmp" n2% = NUMBER_2D_TARGET PICTURE p%: FILE_LOAD p%,f$: FILE_SAVE p%,fm$: 2D_TARGET_IS p% IMAGE p%+1 FILEBIN_OPEN_READ 1,fm$: ' dimensions de l'image de la page A4 FILEBIN_POSITION 1,18: wi% = FILEBIN_READ(1)+256*FILEBIN_READ(1) FILEBIN_POSITION 1,22: hi% = FILEBIN_READ(1)+256*FILEBIN_READ(1) FILEBIN_CLOSE 1 ppm = hi%/297: ' pixels par mm ' agrandissement pour compenser les marges non imprimables: x% = 3*ppm: y% = 3.5*ppm: ' marges non imprimables 2D_IMAGE_COPY p%+1,x%,y%,wi%-x%,hi%-y%: ' sans les marges FILE_SAVE p%+1,fm$ scr$ = "Cscript %WINDIR%\System32\Printing_Admin_Scripts\fr-FR\Prnmngr.vbs -g" EXECUTE_WAIT "cmd.exe|/c "+scr$+" |clip": a$ = CLIPBOARD_STRING_PASTE$ k% = INSTR(a$,"est "): ptr$ = TRIM$(RIGHT_POS$(a$,k%+4)): ' -> nom imprimante pt$ = "rundll32 shimgvw.dll ImageView_PrintTo /pt" EXECUTE_WAIT "cmd.exe|/c "+pt$+" "+fm$+" "+q$+ptr$+q$ FILE_DELETE fm$ 2D_TARGET_IS n2%: DELETE p%: DELETE p%+1 END_SUB Le seul truc dont je ne suis pas sûr, c'est les dimensions de ces marges, chez moi c'est 3 mm de chaque côté et 3,5 mm en haut et en bas, ça dépend peut-être de l'imprimante, auquel cas ce serait à ajuster. Je me sers aussi pas mal de WinTextPrint.exe de l'ami Klaus, très pratique, mais là je voulais faire un truc indépendant. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Impression d'image sans ressource externe Ven 15 Nov 2019 - 21:18 | |
| MARGES NON IMPRIMABLES
Une astuce pour connaître les dimensions des marges non imprimables de son imprimante: - Lancer Word, ou Word Starter - Menu 'Mise en page', 'Marges', 'Marges personnalisées' - Mettre les 4 marges Haut, Bas, Gauche, Droite à 0, puis 'OK' - -> affichage d'une fenêtre d'alerte, cliquer 'Corriger' - -> affichage des marges minimales.
Chez moi par exemple ça donne haut 0,32 bas 0,34 gauche 0,32 droite 0,31 mm. C'est la théorie. Au final, j'obtiens toujours une image de 204x290 mm centrée sur une feuille A4 (210x297) | |
| | | Contenu sponsorisé
| Sujet: Re: Impression d'image sans ressource externe | |
| |
| | | | Impression d'image sans ressource externe | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |