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 de menus, faire-part, cartes de voeux, etc. | |
| | |
Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Impression de menus, faire-part, cartes de voeux, etc. Dim 16 Aoû 2015 - 13:58 | |
| Pour imprimer des cartes diverses, notamment voeux, invitations, menus, etc., ou des livrets de doc. L'impression, que ce soit texte ou graphiques, part d'images de pages au format bmp ou jpg par exemple. Ces images doivent avoir été créées au préalable, par exemple dans un logiciel graphique même simple, ou bien par conversion d'un fichier pdf en images (1 image par page du pdf), pour imprimer une documentation au format voulu. L'utilisation est simple, on fournit les images et le format de sortie désiré (toujours sur A4, feuilles ou carton léger). Il n'y a pas d'appel à des ressources externes, SAUF aux fonctions irremplaçables de Kgf.dll pour l'impression. (PS et puis finalement j'ai aussi utilisé Kgf.dll pour les rotations d'images, plus pratique que mon script vbs Merci Klaus.) Toutes les impressions se font en orientation 'Portrait', les images étant pivotées en conséquence dans le programme (j'ai eu quelques problèmes à faire passer mon imprimante en 'paysage' par programme...). NB je suis parti du principe que les images avaient toutes une marge blanche, et pour la symétrie des pages j'imprime à partir du 0,0 de la feuille, donc dans une petite partie 'non imprimable'. Si l'image n'a pas de marges, il y en aura certaines partie non imprimée, sur les pages qui se trouvent en marge de la feuille. La conversion de texte brut en images est facile à faire (il y a une ébauche de sub dans le programme, non appelée). La conversion de pdf en images se fait avec des ressources externes, ça a déjà été évoqué ici plusieurs fois. Pour le reste, c'est une affaire d'imagination, je n'ai pas voulu mettre la création des images ici pour ne pas alourdir, il faut faire appel à un logiciel de dessin même simple. A noter la fabrication d'un livret au format A7 (8 pages sur A4), pour faire par exemple un petit annuaire téléphonique de portefeuille... (astuce déjà publiée... il y a quelques années ?) On peut aussi imprimer une sélection de photos, mais attention, les images sont automatiquement mises (à l'impression) aux proportions A4 (210x297 = 0,707), il faudrait donc les redimensionner ou découper préalablement pour les mettre aux bonnes proportions, de façon à éviter les déformations. - Code:
-
' Dépliant à partir du format A4: formats A5 (1/2 A4), A6 (1/4 A4) et A7 (1/8 A4) ' (cartes de voeux diverses, invitations, menus, documentation, livrets etc.) LABEL Quit,Seltyp,Selfic,Apercu,Qaperc,Imprime,Mef4,QMef DIM x%,y%,xl%,yl%,w%,h%,wf%,hf%,a$,i%,typ%,kgf$,img$(8),xi%(4),yi%(4),wi%,hi% DIM rc$,xp%,hh%,tmp$,wa4%,ha4%,dlon%,iv$,rep$ rc$ = CHR$(13)+CHR$(10) ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ kgf$ = "C:\PANORAMIC\KLAUS\DLLs\Kgf.dll": ' <=== KGF.DLL CHEMIN À AJUSTER ====== iv$ = "C:\Progra~2\Irfanv~1\i_view32.exe": ' <=== IRFANVIEW CHEMIB À AJUSTER === ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tmp$ = "C:\TEMP\": IF DIR_EXISTS(tmp$)=0 THEN DIR_MAKE tmp$ dlon% = 0
BORDER_SMALL 0: FONT_BOLD 0: COLOR 0,200,200,200: FONT_SIZE 0,10 FONT_NAME 0,"Arial": HEIGHT 0,960 WIDTH 0,720 PICTURE 1: WIDTH 1,WIDTH(0)-20: HEIGHT 1,165: COLOR 1,190,255,255 2D_TARGET_IS 1: PRINT_TARGET_IS 1: FONT_SIZE 1,12: FONT_BOLD 1 x%=30: y%=30: w%=80: h%=w%*297/210 2D_FILL_COLOR 190,255,255 FONT_NAME 1,"Wingdings": PRINT_LOCATE x%-25,y%+h%/2-10: PRINT CHR$(34) FONT_NAME 1,"Arial": 2D_FILL_COLOR 255,255,255 IMAGE 2 ' ----------------- A4 coupé / plié recto/verso = A6 (1/4 de A4) --------------- 2D_RECTANGLE x%,y%,x%+w%,y%+h% 2D_LINE x%,y%+h%/2,x%+w%,y%+h%/2 2D_PEN_DOT: 2D_LINE x%+w%/2,y%,x%+w%/2,y%+h%: 2D_PEN_SOLID PRINT_LOCATE x%+w%/5,y%+h%/6: PRINT "4": PRINT_LOCATE x%+w%/2+w%/5,y%+h%/6: PRINT "1" PRINT_LOCATE x%+w%/5,y%+h%/2+h%/6: PRINT "4": PRINT_LOCATE x%+w%/2+w%/5,y%+h%/2+h%/6 PRINT "1" x%=x%+w%+10: ' verso 2D_RECTANGLE x%,y%,x%+w%,y%+h% 2D_LINE x%,y%+h%/2,x%+w%,y%+h%/2 2D_PEN_DOT: 2D_LINE x%+w%/2,y%,x%+w%/2,y%+h%: 2D_PEN_SOLID PRINT_LOCATE x%+w%/5,y%+h%/6: PRINT "2": PRINT_LOCATE x%+w%/2+w%/5,y%+h%/6: PRINT "3" PRINT_LOCATE x%+w%/5,y%+h%/2+h%/6: PRINT "2": PRINT_LOCATE x%+w%/2+w%/5,y%+h%/2+h%/6 PRINT "3" ' ------------------ A4 plié, recto seul = A6 (1/4 de A4) ---------------------- x%=x%+w%+20 2D_RECTANGLE x%,y%,x%+w%,y%+h% 2D_PEN_DOT: 2D_LINE x%,y%+h%/2,x%+w%,y%+h%/2: 2D_LINE x%+w%/2,y%,x%+w%/2,y%+h% 2D_PEN_SOLID PRINT_LOCATE x%+w%/5,y%+h%/6: PRINT "4": PRINT_LOCATE x%+w%/2+w%/5,y%+h%/6: PRINT "1" xl% = x%+w%/5: yl% = y%+h%/2+h%/6 PRINT_LOCATE xl%,yl%: PRINT "3": PRINT_LOCATE xl%+w%/2,yl% PRINT "2" ' -------------------- A4 paysage, plié recto/verso = A5 (1/2 A4) -------------- x%=x%+w%+20 2D_RECTANGLE x%,y%,x%+h%,y%+w% 2D_PEN_DOT: 2D_LINE x%+h%/2,y%,x%+h%/2,y%+w%: 2D_PEN_SOLID PRINT_LOCATE x%+h%/5,y%+w%/3: PRINT "4": PRINT_LOCATE x%+h%/2+h%/5,y%+w%/3: PRINT "1" x%=x%+h%+10: ' verso 2D_RECTANGLE x%,y%,x%+h%,y%+w% 2D_PEN_DOT: 2D_LINE x%+h%/2,y%,x%+h%/2,y%+w%: 2D_PEN_SOLID PRINT_LOCATE x%+h%/5,y%+w%/3: PRINT "3": PRINT_LOCATE x%+h%/2+h%/5,y%+w%/3: PRINT "2" ' ----------------- Livret A4 paysage plié 8 pages = A7 (1/8 A4) --------------- x%=x%+h%+20 2D_RECTANGLE x%,y%,x%+h%,y%+w% 2D_PEN_DOT: 2D_LINE x%+h%/4,y%,x%+h%/4,y%+w%: 2D_LINE x%+h%/2,y%,x%+h%/2,y%+w% 2D_LINE x%+3*h%/4,y%,x%+3*h%/4,y%+w%: 2D_LINE x%,y%+w%/2,x%+h%,y%+w%/2 2D_PEN_SOLID: 2D_LINE x%+h%/4,y%+w%/2,x%+3*h%/4,y%+w%/2 xp%=x%+2*w%/20: PRINT_LOCATE xp%,y%+w%/8: PRINT "5": PRINT_LOCATE xp%,y%+4*w%/6: PRINT "6" xp%=x%+9*w%/20: PRINT_LOCATE xp%,y%+w%/8: PRINT "4": PRINT_LOCATE xp%,y%+4*w%/6: PRINT "7" xp%=x%+16*w%/20: PRINT_LOCATE xp%,y%+w%/8: PRINT "3": PRINT_LOCATE xp%,y%+4*w%/6: PRINT "8" xp%=x%+24*w%/20: PRINT_LOCATE xp%,y%+w%/8: PRINT "2": PRINT_LOCATE xp%,y%+4*w%/6: PRINT "1"
' légendes a$ = "A4 coupé / plié = A6 A4 plié = A6 A4 plié = A5" a$ = a$+" A4 plié = A7" 2D_FILL_COLOR 190,255,255 PRINT_LOCATE 40,y%-25: PRINT a$ a$ = "recto verso recto " a$=a$+"recto (paysage) verso recto (paysage)" PRINT_LOCATE 50,y%+h%: PRINT a$
ALPHA 9: TOP 9,TOP(1)+HEIGHT(1)+13: LEFT 9,10: CAPTION 9," TYPE : ": COLOR 9,255,255,0 CONTAINER_OPTION 10: TOP 10,TOP(1)+HEIGHT(1): LEFT 10,60: WIDTH 10,WIDTH(1)-60 HEIGHT 10,35: COLOR 10,255,255,180: FONT_SIZE 10,14 OPTION 11: PARENT 11,10: TOP 11,13: LEFT 11,50: CAPTION 11,"1" OPTION 12: PARENT 12,10: TOP 12,TOP(11): LEFT 12,190: CAPTION 12,"2" OPTION 13: PARENT 13,10: TOP 13,TOP(11): LEFT 13,370: CAPTION 13,"3" OPTION 14: PARENT 14,10: TOP 14,TOP(11): LEFT 14,560: CAPTION 14,"4" MARK_ON 11: typ% = 1 FOR i% = 11 TO 14: ON_CLICK i%,Seltyp: NEXT i%
ALPHA 16: TOP 16,TOP(10)+HEIGHT(10)+6: LEFT 16,20 CAPTION 16,"Cliquer ci-dessous pour choisir chaque image de page :" ALPHA 17: TOP 17,TOP(16): LEFT 17,LEFT(16)+155: FONT_NAME 17,"Lucida Console" FONT_BOLD_OFF 17: FONT_SIZE 17,12: HIDE 17 wf% = 150: hf% = wf%*297/210: hh% = hf%+60 x% = 20: y% = TOP(10)+HEIGHT(10)+30 FOR i% = 21 TO 28 PICTURE i%: TOP i%,y%: LEFT i%,x%: WIDTH i%,wf%: HEIGHT i%,hf%: STRETCH_ON i% x%=x%+wf%+20: IF i% = 24 THEN x% = 20: y%=y%+hh% NEXT i% FOR i% = 31 TO 38 ALPHA i%: TOP i%,TOP(i%-10)+hf%: LEFT i%,LEFT(i%-10)+50: CAPTION i%,"Page "+STR$(i%-30) NEXT i% FOR i% = 41 TO 48 EDIT i%: TOP i%,TOP(i%-10)+15: LEFT i%,LEFT(i%-20): WIDTH i%,wf%: COLOR i%,255,255,180 TEXT i%," (clic)": ON_CLICK i%,Selfic NEXT i% FOR i% = 51 TO 58 ALPHA i%: TOP i%,TOP(i%-10)+20: LEFT i%,LEFT(i%-10): FONT_BOLD_OFF i% NEXT i%
ALPHA 65: TOP 65,y%+hh%: LEFT 65,40 CAPTION 65,"Les images sont de dimensions quelconques mais seront imprimées aux proportions A4 (0,707)"
CONTAINER 70: TOP 70,TOP(65)+25: LEFT 70,10: WIDTH 70,WIDTH(0)-40: HEIGHT 70,120 CAPTION 70," IMPRESSION ": COLOR 70,210,210,210 CONTAINER_OPTION 75: PARENT 75,70: TOP 75,20: LEFT 75,10: WIDTH 75,140: HEIGHT 75,60 CAPTION 75,"TYPE 1": COLOR 75,255,255,180 OPTION 76: PARENT 76,75: TOP 76,18: LEFT 76,20: CAPTION 76,"Pages 1 et 4" OPTION 77: PARENT 77,75: TOP 77,TOP(76)+20: LEFT 77,20: CAPTION 77,"Pages 2 et 3" MARK_ON 76 CONTAINER_OPTION 80: PARENT 80,70: TOP 80,TOP(75): LEFT 80,LEFT(75)+WIDTH(75)+20: WIDTH 80,100 HEIGHT 80,60: CAPTION 80,"TYPES 2 et 4" CONTAINER_OPTION 85: PARENT 85,70: TOP 85,TOP(75): LEFT 85,LEFT(80)+WIDTH(80)+20: WIDTH 85,140 HEIGHT 85,60: CAPTION 85,"TYPE 3" OPTION 86: PARENT 86,85: TOP 86,18: LEFT 86,20: CAPTION 86,"Pages 1 et 4" OPTION 87: PARENT 87,85: TOP 87,TOP(86)+20: LEFT 87,20: CAPTION 87,"Pages 2 et 3" MARK_ON 86 ALPHA 88: PARENT 88,70: TOP 88,TOP(85): LEFT 88,LEFT(85)+WIDTH(85)+10: COLOR 88,255,255,180: HIDE 88 a$=" Verso Type 3 (pages 2 et 3) :"+rc$+" réintroduire le recto tel quel"+rc$ a$=a$+" sans le retourner, face imprimée"+rc$+" dessus, page 4 vers l'imprimante." CAPTION 88,a$
BUTTON 90: PARENT 90,70: TOP 90,TOP(75)+HEIGHT(75)+10: LEFT 90,100: WIDTH 90,160 CAPTION 90,"Aperçu et Impression" ON_CLICK 90,Apercu BUTTON 91: PARENT 91,70: TOP 91,TOP(90): LEFT 91,LEFT(90)+200: WIDTH 91,250 CAPTION 91,"INFO: mise en forme après impression": ON_CLICK 91,Mef4 BUTTON 92: TOP 92,HEIGHT(0)-63: LEFT 92,WIDTH(0)-120: CAPTION 92,"Quitter" ON_CLICK 92,Quit
OPEN_DIALOG 95
FORM 200: TOP 200,260: LEFT 200,210: WIDTH 200,300: HEIGHT 200,490: BORDER_SMALL 200 HIDE 200: COLOR 200,255,255,180 PICTURE 201: PARENT 201,200: WIDTH 201,WIDTH(200)-20: HEIGHT 201,140 ALPHA 202: PARENT 202,200: TOP 202,HEIGHT(201): LEFT 202,5: FONT_SIZE 202,10 FONT_BOLD 202 BUTTON 203: PARENT 203,200: TOP 203,HEIGHT(200)-63: LEFT 203,WIDTH(200)/2-40 CAPTION 203,"OK": ON_CLICK 203,QMef 2D_TARGET_IS 201: x% = 40: y% = 30 2D_LINE x%,y%,x%+56,y%: 2D_POLY_TO x%+96,y%-20: 2D_POLY_TO x%+136,y%: 2D_POLY_TO x%+192,y% 2D_POLY_TO x%+192,y%+80: 2D_POLY_TO x%+136,y%+80: 2D_POLY_TO x%+96,y%+100: 2D_POLY_TO x%+56,y%+80 2D_POLY_TO x%,y%+80: 2D_POLY_TO x%,y% 2D_LINE x%+56,y%+80,x%+56,y%: 2D_POLY_TO x%+96,y%+20: 2D_POLY_TO x%+136,y%: 2D_POLY_TO x%+136,y%+80 2D_LINE x%+96,y%-20,x%+96,y%+100: 2D_FLOOD x%+70,y%,195,195,195: 2D_FLOOD x%+110,y%,210,210,210 PRINT_TARGET_IS 201: PRINT_LOCATE x%+25,y%+30: PRINT "6": PRINT_LOCATE x%+70,y%+40: PRINT "7" PRINT_LOCATE x%+112,y%+40: PRINT "8": PRINT_LOCATE x%+160,y%+30: PRINT "1" a$ = " LIVRET TYPE 4"+rc$+" (= 8 pages sur format A4) :"+rc$ a$=a$+"- Après impression, marquer les plis"+rc$ a$=a$+" (3 verticaux et 1 horizontal)."+rc$ a$=a$+"- Inciser au cutter la ligne médiane"+rc$ a$=a$+" entre les plis verticaux 1 et 3."+rc$ a$=a$+"- Plier la feuille en deux dans le sens de"+rc$ a$=a$+" la longueur, impression à l'extérieur."+rc$ a$=a$+"- Replier vers l'extérieur les plis entre"+rc$ a$=a$+" les pages 3/4 et 7/8 (graphique ci-"+rc$ a$=a$+" dessus), puis fermer le tout en livret."+rc$+rc$ a$=a$+" LIVRET TYPE 2"+rc$+" (= 4 pages sur format A4) :"+rc$ a$=a$+"- Après impression, replier la moitié"+rc$ a$=a$+" inférieure derrière la moitié supé-"+rc$ a$=a$+" rieure, puis replier en deux, page 1"+rc$ a$=a$+" dessus." CAPTION 202,a$
2D_TARGET_IS 1: PRINT_TARGET_IS 1 GOSUB Seltyp END ' ============================================================================== Quit: TERMINATE ' ============================================================================== Seltyp: FOR i% = 75 TO 85 STEP 5: COLOR i%,200,200,200: NEXT i% y% = 3 HIDE 88 2D_PEN_COLOR 190,255,255: 2D_PEN_WIDTH 3: 2D_FILL_OFF x% = 25: 2D_RECTANGLE x%,y%,x%+w%*2+25,y%+h%+48 x% = 210: 2D_RECTANGLE x%,y%,x%+w%+20,y%+h%+48 x% = 310: 2D_RECTANGLE x%,y%,x%+2*h%+30,y%+h%+48 x% = 565: 2D_RECTANGLE x%,y%,x%+h%+20,y%+h%+48 2D_PEN_COLOR 255,0,0 IF CHECKED(11) = 1 typ% = 1 x% = 25: 2D_RECTANGLE x%,y%,x%+w%*2+25,y%+h%+48: COLOR 75,255,255,180 ELSE IF CHECKED(12) = 1 typ% = 2 x% = 210: 2D_RECTANGLE x%,y%,x%+w%+20,y%+h%+48: COLOR 80,255,255,180 ELSE IF CHECKED(13) = 1 typ% = 3 x% = 310: 2D_RECTANGLE x%,y%,x%+2*h%+30,y%+h%+48: COLOR 85,255,255,180 SHOW 88 ELSE typ% = 4 IF CHECKED(14) = 1 x% = 565: 2D_RECTANGLE x%,y%,x%+h%+20,y%+h%+48: COLOR 80,255,255,180 END_IF END_IF END_IF END_IF RETURN ' ============================================================================== Selfic: IF rep$<>"" THEN DIR_DIALOG 95,rep$ a$ = FILE_NAME$(95): IF LEN(a$)<5 THEN RETURN IF FILE_EXISTS(a$) = 1 i% = NUMBER_CLICK COLOR i%,255,0,0 DimImage(a$) CAPTION i%+10,STR$(rs_wi%)+" x "+STR$(rs_hi%): ' dimensions image TEXT i%,FILE_EXTRACT_NAME$(a$) FILE_LOAD i%-20,a$: ' aperçu img$(i%-40) = a$ COLOR i%,255,255,180 CAPTION 16, "Répertoire des images: " CAPTION 17, FILE_EXTRACT_PATH$(a$): SHOW 17 END_IF RETURN ' ============================================================================== Apercu: wa4% = 776: ha4% = 297*wa4%/210 FORM 300: TOP 300,0: LEFT 300,0: WIDTH 300,wa4%+1: HEIGHT 300,ha4%+1 IF typ%=4 THEN HEIGHT 300,ha4%+3 BORDER_HIDE 300 FOR i% = 1 TO 4 IF FILE_EXISTS(img$(i%)) = 0 THEN img$(i%)="" NEXT i% SELECT typ% CASE 1: wi% = wa4%/2: hi% = ha4%/2 PICTURE 301: PARENT 301,300 PICTURE 302: PARENT 302,300: LEFT 302,wi%+1 PICTURE 303: PARENT 303,300: TOP 303,hi%+1 PICTURE 304: PARENT 304,300: TOP 304,hi%+1: LEFT 304,wi%+1 FOR i% = 301 TO 304: WIDTH i%,wi%: HEIGHT i%,hi%: STRETCH_ON i%: NEXT i% IF CHECKED(76) = 1: ' couverture (recto) IF img$(4)<>"" THEN FILE_LOAD 301,img$(4): FILE_LOAD 303,img$(4) IF img$(1)<>"" THEN FILE_LOAD 302,img$(1): FILE_LOAD 304,img$(1) ELSE: ' intérieur (verso) IF img$(2)<>"" THEN FILE_LOAD 301,img$(2): FILE_LOAD 303,img$(2) IF img$(3)<>"" THEN FILE_LOAD 302,img$(3): FILE_LOAD 304,img$(3) END_IF CASE 2: wi% = wa4%/2: hi% = ha4%/2 PICTURE 301: PARENT 301,300 PICTURE 302: PARENT 302,300: LEFT 302,wi% PICTURE 303: PARENT 303,300: TOP 303,hi% PICTURE 304: PARENT 304,300: TOP 304,hi%: LEFT 304,wi% FOR i% = 301 TO 304: WIDTH i%,wi%: HEIGHT i%,hi%: STRETCH_ON i%: NEXT i% IF img$(1)<>"" THEN FILE_LOAD 302,img$(1) IF img$(4)<>"" THEN FILE_LOAD 301,img$(4) ' Pivoter les images de 180° IF img$(3)<>"" ImgRotate(img$(3),tmp$+"Img3.jpg","180"): ' rotation 180° FILE_LOAD 303,tmp$+"Img3.jpg" END_IF IF img$(2)<>"" ImgRotate(img$(2),tmp$+"Img2.jpg","180"): ' rotation 180° FILE_LOAD 304,tmp$+"Img2.jpg" END_IF CASE 3: wi% = ha4%/2: hi% = wa4% PICTURE 301: PARENT 301,300 PICTURE 302: PARENT 302,300: TOP 302,wi%+1 FOR i% = 301 TO 302: WIDTH i%,hi%: HEIGHT i%,wi%: STRETCH_ON i%: NEXT i% ' Impressions toujours en mode 'Portrait', il faut pivoter les images IF CHECKED(86) = 1: ' extérieur du dépliant IF img$(1)<>"" ImgRotate(img$(1),tmp$+"Img1.jpg","L"): ' rotation 90° gauche FILE_LOAD 301,tmp$+"Img1.jpg" END_IF IF img$(4)<>"" ImgRotate(img$(4),tmp$+"Img4.jpg","L"): ' rotation 90° gauche FILE_LOAD 302,tmp$+"Img4.jpg" END_IF ELSE IF img$(3)<>"" ImgRotate(img$(3),tmp$+"Img2.jpg","L"): ' rotation 90° gauche FILE_LOAD 301,tmp$+"Img2.jpg" END_IF IF img$(2)<>"" ImgRotate(img$(2),tmp$+"Img3.jpg","L"): ' rotation 90° gauche FILE_LOAD 302,tmp$+"Img3.jpg" END_IF END_IF CASE 4: wi% = ha4%/4: hi% = wa4%/2: ' imensions image imprimée PICTURE 301: PARENT 301,300 PICTURE 302: PARENT 302,300: LEFT 302,hi%+1 PICTURE 303: PARENT 303,300: TOP 303,wi%+1 PICTURE 304: PARENT 304,300: TOP 304,TOP(303): LEFT 304,hi%+1 PICTURE 305: PARENT 305,300: TOP 305,2*wi%+2 PICTURE 306: PARENT 306,300: TOP 306,TOP(305): LEFT 306,hi%+1 PICTURE 307: PARENT 307,300: TOP 307,3*wi%+3 PICTURE 308: PARENT 308,300: TOP 308,TOP(307): LEFT 308,hi%+1 FOR i% = 301 TO 308: WIDTH i%,hi%: HEIGHT i%,wi%: STRETCH_ON i%: NEXT i% IF img$(1)<>"" ImgRotate(img$(1),tmp$+"Img1.jpg","L"): ' rotation 90° droite FILE_LOAD 302,tmp$+"Img1.jpg" END_IF IF img$(2)<>"" ImgRotate(img$(2),tmp$+"Img2.jpg","R"): ' rotation 90° gauche FILE_LOAD 301,tmp$+"Img2.jpg" END_IF IF img$(3)<>"" ImgRotate(img$(3),tmp$+"Img3.jpg","R"): ' rotation 90° gauche FILE_LOAD 303,tmp$+"Img3.jpg" END_IF IF img$(4)<>"" ImgRotate(img$(4),tmp$+"Img4.jpg","R"): ' rotation 90° gauche FILE_LOAD 305,tmp$+"Img4.jpg" END_IF IF img$(5)<>"" ImgRotate(img$(5),tmp$+"Img5.jpg","R"): ' rotation 90° gauche FILE_LOAD 307,tmp$+"Img5.jpg" END_IF IF img$(6)<>"" ImgRotate(img$(6),tmp$+"Img6.jpg","L"): ' rotation 90° droite FILE_LOAD 308,tmp$+"Img6.jpg" END_IF IF img$(7)<>"" ImgRotate(img$(7),tmp$+"Img7.jpg","L"): ' rotation 90° droite FILE_LOAD 306,tmp$+"Img7.jpg" END_IF IF img$(8)<>"" ImgRotate(img$(8),tmp$+"Img8.jpg","L"): ' rotation 90° droite FILE_LOAD 304,tmp$+"Img8.jpg" END_IF END_SELECT BUTTON 309: PARENT 309,300: LEFT 309,WIDTH(300)-160: CAPTION 309,"Imprimer" BUTTON 310: PARENT 310,300: LEFT 310,WIDTH(300)-80: CAPTION 310,"Quitter" ON_CLICK 309,Imprime: ON_CLICK 310,Qaperc COLOR 300,0,0,0: ' pour faire apparaître les lignes de séparation TO_FOREGROUND 300 RETURN ' ============================================================================== Qaperc: DELETE 300 RETURN ' ============================================================================== Imprime: DELETE 300 ' Les rotations d'images nécessaires ont déjà été effectuées dans l'aperçu Pr_init(0) SELECT typ% CASE 1: wi% = Pr_lt%/2: hi% = Pr_ht%/2 IF CHECKED(76) = 1: ' couverture (recto) IF img$(4)<>"" THEN Pr_Image(img$(4),0,0,wi%,hi%,0) IF img$(1)<>"" THEN Pr_Image(img$(1),wi%,0,wi%,hi%,0) IF img$(4)<>"" THEN Pr_Image(img$(4),0,hi%,wi%,hi%,0) IF img$(1)<>"" THEN Pr_Image(img$(1),wi%,hi%,wi%,hi%,0) ELSE: ' intérieur (verso) IF img$(2)<>"" THEN Pr_Image(img$(2),0,0,wi%,hi%,0) IF img$(3)<>"" THEN Pr_Image(img$(3),wi%,0,wi%,hi%,0) IF img$(2)<>"" THEN Pr_Image(img$(2),0,hi%,wi%,hi%,0) IF img$(3)<>"" THEN Pr_Image(img$(3),wi%,hi%,wi%,hi%,0) END_IF ' ligne de coupe, 2 pixels Pr_Ligne(0,hi%,Pr_lt%,hi%,2,0,0) CASE 2: wi% = Pr_lt%/2: hi% = Pr_ht%/2 IF img$(4)<>"" THEN Pr_Image(img$(4),0,0,wi%,hi%,0) IF img$(1)<>"" THEN Pr_Image(img$(1),wi%,0,wi%,hi%,0) IF img$(3)<>"" Pr_Image(tmp$+"Img3.jpg",0,hi%,wi%,hi%,0) END_IF IF img$(2)<>"" Pr_Image(tmp$+"Img2.jpg",wi%,hi%,wi%,hi%,0) END_IF CASE 3: wi% = Pr_ht%/2: hi% = Pr_lt% ' Impressions toujours en mode 'Portrait' IF CHECKED(86) = 1: ' extérieur du dépliant IF img$(1)<>"" Pr_Image(tmp$+"Img1.jpg",0,0,hi%,wi%,0) END_IF IF img$(4)<>"" Pr_Image(tmp$+"Img4.jpg",0,wi%,hi%,wi%,0) END_IF ELSE IF img$(3)<>"" Pr_Image(tmp$+"Img3.jpg",0,0,hi%,wi%,0) END_IF IF img$(2)<>"" Pr_Image(tmp$+"Img2.jpg",0,wi%,hi%,wi%,0) END_IF END_IF CASE 4: wi% = Pr_ht%/4: hi% = Pr_lt%/2: ' dimensions image imprimée IF img$(1)<>"" Pr_Image(tmp$+"Img1.jpg",hi%,0,hi%,wi%) END_IF IF img$(2)<>"" Pr_Image(tmp$+"Img2.jpg",0,0,hi%,wi%) END_IF IF img$(3)<>"" Pr_Image(tmp$+"Img3.jpg",0,wi%,hi%,wi%) END_IF IF img$(4)<>"" Pr_Image(tmp$+"Img4.jpg",0,2*wi%,hi%,wi%) END_IF IF img$(5)<>"" Pr_Image(tmp$+"Img5.jpg",0,3*wi%,hi%,wi%) END_IF IF img$(6)<>"" Pr_Image(tmp$+"Img6.jpg",hi%,3*wi%,hi%,wi%) END_IF IF img$(7)<>"" Pr_Image(tmp$+"Img7.jpg",hi%,2*wi%,hi%,wi%) END_IF IF img$(8)<>"" Pr_Image(tmp$+"Img8.jpg",hi%,wi%,hi%,wi%) END_IF ' lignes de pliage, épaisseur 1 pixel Pr_Ligne(0,wi%,Pr_lt%,wi%,1,-1,0) Pr_ligne(0,2*wi%,Pr_lt%,2*wi%,1,-1,0) Pr_Ligne(0,3*wi%,Pr_lt%,3*wi%,1,-1,0) Pr_Ligne(hi%,0,hi%,Pr_ht%,1,-1,0) ' ligne de coupe, épaisseur 5 pixels Pr_Ligne(hi%,wi%,hi%,3*wi%,5,0,0) END_SELECT Pr_Impr() DLL_OFF: dlon% = 0 ' suppression des images temporaires éventuelles IF FILE_EXISTS(tmp$+"Img1.jpg")=1 THEN FILE_DELETE tmp$+"Img1.jpg" IF FILE_EXISTS(tmp$+"Img2.jpg")=1 THEN FILE_DELETE tmp$+"Img2.jpg" IF FILE_EXISTS(tmp$+"Img3.jpg")=1 THEN FILE_DELETE tmp$+"Img3.jpg" IF FILE_EXISTS(tmp$+"Img4.jpg")=1 THEN FILE_DELETE tmp$+"Img4.jpg" IF FILE_EXISTS(tmp$+"Img5.jpg")=1 THEN FILE_DELETE tmp$+"Img5.jpg" IF FILE_EXISTS(tmp$+"Img6.jpg")=1 THEN FILE_DELETE tmp$+"Img6.jpg" IF FILE_EXISTS(tmp$+"Img7.jpg")=1 THEN FILE_DELETE tmp$+"Img7.jpg" IF FILE_EXISTS(tmp$+"Img8.jpg")=1 THEN FILE_DELETE tmp$+"Img8.jpg" RETURN ' ============================================================================== Mef4: SHOW 200 RETURN ' ============================================================================== QMef: HIDE 200 RETURN ' ============================================================================== SUB ImgRotate(f$,fr$,RL$) f$ = CHR$(34)+f$+CHR$(34) IF UPPER$(RL$) = "R": ' rotation de 90° à droite EXECUTE_WAIT iv$+" "+f$+" /rotate_r /convert="+fr$ ELSE IF UPPER$(RL$) = "L": ' rotation de 90° à gauche EXECUTE_WAIT iv$+" "+f$+" /rotate_l /convert="+fr$ ELSE: ' rotation de 180° EXECUTE_WAIT iv$+" "+f$+" /rotate_l /rotate_l /convert="+fr$ END_IF END_IF END_SUB ' ============================================================================== SUB DimImage(f$) IF VARIABLE("rs_wi%") = 0 THEN DIM rs_wi% IF VARIABLE("rs_hi%") = 0 THEN DIM rs_hi% rs_wi% = 0: rs_hi% = 0: IF FILE_EXISTS(f$) = 0 THEN EXIT_SUB DIM_LOCAL a$,k% EXECUTE_WAIT iv$+" "+f$+" /info=C:\TEMP\zz.txt" FILE_OPEN_READ 9,"C:\TEMP\zz.txt" WHILE FILE_EOF(9) = 0 FILE_READLN 9,a$ IF LEFT$(a$,16)="Image dimensions" a$= RIGHT_POS$(a$,20): k% = INSTR(a$," x") rs_wi%=VAL(LEFT$(a$,k%-1)): a$=RIGHT_POS$(a$,k%+3): k%=INSTR(a$," ") rs_hi%=VAL(LEFT$(a$,k%-1)): EXIT_WHILE END_IF END_WHILE FILE_CLOSE 9: FILE_DELETE "C:\TEMP\zz.txt" END_SUB ' ============================================================================== SUB Text2Bmp(f$,rd$,pol$,size%) ' Conversion texte brut en image(s), police pol$, taille size% ' rd$ = chemin du répertoire résultat (-> fichiers de la forme Pagex.bmp) ' (Annuaire: cf C:\Textes\Annucompact.txt - ' Police= "Lucida Console", Taille= 8 -> 35 lignes de 40 c. /page) ' (pour une taille 8 imprimée, sz est multiplié par 3 = 24) DIM_LOCAL s2p%,s2d%,a$,x%,y%,hl%,mg%,mh%,mb%,n%,fr$ n% = 1: ' n° de page fr$ = rd$+"Page"+STR$(n%)+".bmp" PICTURE 500: HIDE 500: WIDTH 500,840: HEIGHT 500,1188 s2p% = NUMBER_PRINT_TARGET: s2d% = NUMBER_2D_TARGET: 2D_TARGET_IS 500 PRINT_TARGET_IS 500: FONT_NAME 500,pol$: FONT_SIZE 500,3*sz% hl% = TEXT_HEIGHT("ABCxyz",500): ' hauteur d'une ligne mg% = 50: mh% = 20: mb% = 40: ' marges gauche, haut et bas x% = mg%: y% = mh% FILE_OPEN_READ 9,f$ WHILE FILE_EOF(9) = 0 FILE_READLN 9,a$: PRINT_LOCATE x%,y%: PRINT a$ y% = y%+hl% IF y% > HEIGHT(500)-mb% FILE_SAVE 500,fr$: CLS n% = n%+1: fr$ = rd$+"Page"+STR$(n%)+".bmp": ' page suivante y% = mh% END_IF END_WHILE FILE_CLOSE 9 FILE_SAVE 500,fr$ 2D_TARGET_IS s2d%: PRINT_TARGET_IS s2p% DELETE 500 END_SUB ' ============================================================================== SUB Pr_init(orient%) ' Initialisation imprimante ('début d'impression') ' orient% = 0 Portrait, = 1 Paysage ' Dans les paramètres des fonctions, le positionnement initial doit être fait en ' valeurs absolues: distances par rapport aux bords gauche et haut de la feuille ' A4, sans tenir compte des marges non imprimables. ' Les couleurs sont à exprimer au format BGR (en non pas RGB): B*256*256+G*256+R IF dlon% = 0 THEN DLL_ON kgf$: dlon% = 1 IF VARIABLE("phnd%") = 0 THEN DIM phnd% IF VARIABLE("chnd%") = 0 THEN DIM chnd% IF VARIABLE("inip%") = 0 THEN DIM inip% IF VARIABLE("Pr_res%") = 0 THEN DIM Pr_res% IF VARIABLE("Pr_mmpix") = 0 THEN DIM Pr_mmpix: ' pixels par mm IF VARIABLE("Pr_lt%") = 0 THEN DIM Pr_lt%: ' largeur totale IF VARIABLE("Pr_ht%") = 0 THEN DIM Pr_ht%: ' hauteur totale IF VARIABLE("Pr_mg%") = 0 THEN DIM Pr_mg%: ' marge gauche IF VARIABLE("Pr_mh%") = 0 THEN DIM Pr_mh%: ' marge haut IF VARIABLE("Pr_lu%") = 0 THEN DIM Pr_lu%: ' largeur utile IF VARIABLE("Pr_hu%") = 0 THEN DIM Pr_hu%: ' hauteur utile ' Orientation portrait (0) ou paysage (1) Pr_res% = DLL_CALL4("PrinterManager",4,ADR(phnd%),ADR(chnd%),orient%): ' orientation Pr_res% = DLL_CALL4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0): ' init ' Dimensions sans les marges, en pixels: ' ========== ' ATTENTION: Les dimensions sont actualisées en fonction de l'option orientation ! ' ========== Pr_lt% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),3,0,0): ' largeur totale Pr_ht% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),4,0,0): ' hauteur totale IF orient% = 0 Pr_mmpix = Pr_ht%/297: ' pixels par mm, à l'impression en 600 dpi ELSE Pr_mmpix = Pr_lt%/297: ' idem (paysage) END_IF ' Marges non imprimables: décalage en pixels à soustraire gauche et haut: Pr_mg% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),1,0,0): ' marge gauche Pr_mh% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),2,0,0): ' marge haut ' Dimensions utiles, en pixels: Pr_lu% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),7,0,0): ' largeur utile Pr_hu% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),8,0,0): ' hauteur utile ' Couleur trait noir, épaisseur = 1, arrière-plan transparent: inip% = -2 Pr_res% = DLL_CALL6("PrinterFunction",6,ADR(phnd%),ADR(chnd%),0,inip%,1) inip% = 1 END_SUB ' ============================================================================== SUB Pr_Image(f$,x%,y%,w%,h%,u%) ' Impression de l'image f$ en x%,y%, dimensions w% x h% (sera redimensionnée pour ' tenir dans le cadre donné). ' u% = 0: unités pixels, u% = 1, unités millimètres ' ******** NB: coordonnées d'impression (pixels): de 75,75 à 4811,6862 ******** IF inip% = 0 THEN EXIT_SUB: ' imprimante non initialisée (Sub Pr_Init) IF u% = 1: ' unités en mm, conversion en pixels x% = x%*Pr_mmpix: y% = y%*Pr_mmpix: w% = w%*Pr_mmpix: h% = h%*Pr_mmpix END_IF x% = x%-Pr_mg%: y% = y%-Pr_mh% Pr_res% = DLL_call6("PrinterFunction",4,ADR(phnd%),ADR(chnd%),0,x%,y%): ' positionnement Pr_res% = DLL_call6("PrinterFunction",7,ADR(phnd%),ADR(chnd%),ADR(f$),w%,h%) END_SUB ' ============================================================================== SUB Pr_Ligne(x1%,y1%,x2%,y2%,et%,ct%,u%) ' Impression d'une ligne entre x1%,y1% et x2%,y2% ' et% = épaisseur trait, en pixels (ou -1 si inchangé) ' ct% = couleur trait (ou -1 si inchangé) ' u% = 0: unités pixels, u% = 1, unités millimètres ' ******** NB: coordonnées d'impression (pixels): de 75,75 à 4811,6862 ******** IF inip% = 0 THEN EXIT_SUB: ' imprimante non initialisée (Sub Pr_Init) DIM_LOCAL opt1%,opt2%,opt3% x2% = x2%-x1%: y2% = y2%-y1%: ' coordonnées relatives d'arrivée IF u% = 1 x1% = x1%*Pr_mmpix: y1% = y1%*Pr_mmpix: ' mm -> pixels x2% = x2%*Pr_mmpix: y2% = y2%*Pr_mmpix END_IF x1% = x1%-Pr_mg%: y1% = y1%-Pr_mh% IF et%<>-1 OR ct%<>-1 opt3%=et%: opt2%=-1: opt1%=ct% Pr_res%=DLL_CALL6("PrinterFunction",6,ADR(phnd%),ADR(chnd%),opt1%,opt2%,opt3%) END_IF Pr_res%=DLL_CALL6("PrinterFunction",4,ADR(phnd%),ADR(chnd%),0,x1%,y1%): ' posit Pr_res%=DLL_CALL6("PrinterFunction",2,ADR(phnd%),ADR(chnd%),0,x2%,y2%): ' ligne END_SUB ' ============================================================================== SUB Pr_Impr() ' Lancement de l'impression réelle ('fin d'impression') IF inip% = 0 THEN EXIT_SUB: ' imprimante non initialisée (Sub Pr_Init) Pr_res% = DLL_CALL4("PrinterManager",3,ADR(phnd%),ADR(chnd%),0) inip% = 0 END_SUB ' ==============================================================================
Modif du 17/08: - Ajout d'un aperçu avant impression, dans lequel se font les rotations nécessaires pour l'affichage et l'impression. - Abandon de la rotation d'images par kgf.dll, beaucoup trop lente (50s pour 10 images), j'ai remis le script vbs qui est dix fois plus rapide Mise à jour 17/08 22h30 Finalement, pour rotations d'images (et dimensions d'images), je fais appel à IrfanView qui est très sûr et très rapide. Évidemment il faut l'avoir installé quelque part chez soi (il existe une version 'portable') 18/8 Suppression du choix préalable du répertoire des images, inutile.
Dernière édition par JL35 le Mar 18 Aoû 2015 - 16:34, édité 4 fois | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Lun 17 Aoû 2015 - 8:09 | |
| Salut JL35,
Cet utilitaire m'intéresse, car tous les ans je dois préparer pour le Noël des assistantes maternelles de ma commune, un faire-part tenant sur une demi-feuille A4 (exactement comme dans l'encadré rouge de ton image ci-dessus). Ce qui fait 2 faire-parts par feuille à découper et à plier.
Il me reste à le tester.
A+ | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Lun 17 Aoû 2015 - 8:59 | |
| Bel outil mais je n'en n'ai pas l'utilisation pour l'instant ! Je le garde sous le coude pour le cas ou... Merci JL35 | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Lun 17 Aoû 2015 - 13:24 | |
| Merci les amis ! Jean Claude, pour le cas qui t'intéresse tu as donc le choix entre faire du recto/verso, tout sur la même feuille, ou imprimer d'abord les couvertures (1 et 4) sur papier genre bristol 160g puis un encart (2 et 3) sur papier normal. Mais d'après ce que je comprends, seul le recto t'intéresse. Si tu testes, dis-moi si ça te convient. Comme je disais, je n'ai pas mis le logiciel pour fabriquer les images elles-mêmes (composées de textes et d'images), mais il y a mille façons de faire ça, l'essentiel étant qu'elles soient aux bonnes proportions (proportions A4). PS: J'ai modifié là-haut, en ajoutant un aperçu avant impression, utile pour voir si tout est conforme aux attentes. Je l'ai fait chez moi grandeur nature, au format réel d'une page A4 (21x29,7), j'ai un écran de 24" , il se peut que sur des écrans plus petits le bas de la page soit un peu tronqué. Dans ce cas il faudra réduire le paramètre wa4% au début du s/p Apercu, le reste devrait s'ajuster automatiquement. Remarque: pour cet aperçu je crée un Form provisoire (300) qui contient des pictures d'affichage. Puis, après aperçu/impression je fais un Delete de ce Form, et là j'obtiens une 'Abstract error', non bloquante. Si je relance l'aperçu, je le recrée, je quitte à nouveau, plus d'erreur...
Dernière édition par JL35 le Lun 17 Aoû 2015 - 17:41, édité 1 fois | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Lun 17 Aoû 2015 - 17:32 | |
| - Citation :
- d'après ce que je comprends, seul le recto t'intéresse.
Non ! au contraire je fais 2 invitations par feuille A4, je la coupe en 2, puis je plie chacun des 2 morceaux obtenus. Je suis exactement dans la configuration n°1 de ton programme. Mais je vais tester et ensuite je te dirais quoi... A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Lun 17 Aoû 2015 - 17:43 | |
| Bonjour Jean Claude, on s'est croisés, regarde j'ai fait une modif (ajout de l'aperçu).
Donc tu imprimes également le verso de la feuille (intérieur de l'invitation, pages 2 et 3). (j'ai aussi ajouté un trait de coupe pour ce cas). | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Lun 17 Aoû 2015 - 18:06 | |
| premier essai: 1) dommage que çà ne tienne pas dans l'écran. J'ai une hauteur d'écran de 900Px, mais c'est pas suffisant. Mais ça n'empêche pas de travailler. 2) quand je clique dans l'édit "répertoire des images" je suis obligé de sélectionner une image pour continuer, il me semble que c'est le dossier contenant les images que l'on cherche. 3) je sélectionne la même image dans la partie 1, et là plantage. Désolé, çà bloque. A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Lun 17 Aoû 2015 - 20:28 | |
| 1) Le seul remède c'est de réduire le paramètre wa4% comme j'ai dit plus haut, pour que ça tienne, tant pis si ce n'est pas grandeur nature, ça ne change rien. ( ou alors acheter un écran plus grand ) 2) Effectivement, il faut cliquer une image quelconque du répertoire pour choisir celui-ci, qui sera extrait du nom de l'image cliquée. Je n'ai pas trouvé d'autre moyen de choisir un répertoire. 3) Je regarde, mais d'après ce que je vois ça coince dans kgf.dll ... appelé dans le sous-programme Selfic, sub Imgsize(), appel de la fonction kgf "AnalyzeImageFile" qui renvoie les dimensions de l'image... si ton image est correct je ne vois pas trop ce qui peut déconner... PS: j'ai remplacé (chez moi, pas mis à jour ici) l'appel à kgf.dll par une routine en tout panoramic, pour les dimensions d'images PS2: je vois peut-être le problème, tu as des espaces dans le nom de chemin et je ne suis pas sûr d'avoir pensé à en tenir compte... je regarde Ben non, je mets des espaces et ça passe quand même... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Lun 17 Aoû 2015 - 21:00 | |
| Une remise aux goûts du jour de ton programme Toujours pratique à avoir quand on en a besoin. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Lun 17 Aoû 2015 - 21:14 | |
| C'est vrai qu'il m'arrive de réinventer l'eau chaude, j'essaie de tout faire en panoramic (et éventuellement kgf.dll) mais je crois que je vais refaire appel à IrfanView, très simple d'emploi et efficace.
22h30 Jean Claude j'ai fait quelques modifs plus haut qui me semblent plus sûres, et plus souples, mais il faut avoir IrfanView installé. Si tu veux essayer... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mar 18 Aoû 2015 - 0:09 | |
| Si déjà tu utilises KGF.dll, tu peux l'utiliser pour choisir un dossier: - Code:
-
res% = DLL_call4("FolderSelect",adr(racine$),adr(dossier$),len(dossier$),mode%)
avec la possibilité de créer un non un dossier. Dans la doc, c'est dans la section "Fonctions de gestion de fichiers". Nul besoin de cliquer sur un fichier... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mar 18 Aoû 2015 - 16:09 | |
| Merci Klaus, effectivement c'est intéressant, et j'avais commencé à l'implémenter, et puis finalement j'ai supprimé ce choix de répertoire qui apporte une complication inutile, puisque pour chaque image il faut aller la chercher, et pourquoi pas dans des répertoires différents (et même des volumes différents). Mais c'est intéressant à noter. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mar 18 Aoû 2015 - 17:40 | |
| Et puis qui sait, ça peut donner une idée à quelqu'un d'autres qui pourrait proposer une autre approche d'interface comme Minibug et son éditeur par rapport à celui de Klaus (bon il n'y a pas que l'interface qui change mais c'est la partie la plus visible) | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mar 18 Aoû 2015 - 17:43 | |
| Je viens de tester, ça marche Je n'ai pas imprimé pour ne pas gaspiller d'encre, mais l’aperçu est conforme. Tu viens de me mâcher une bonne partie du travail que je fais tous les ans. UN GRAND MERCI. A+ PS: tu as bien fait de supprimer le choix du répertoire... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mar 18 Aoû 2015 - 18:23 | |
| Merci Jean Claude, ton retour me fait grand plaisir Pour les essais d'impression, j'utilise des images quasiment vides, simplement un n° de page dans un coin, pour vérifier si l'orientation est bonne (sans gaspiller d'encre). La disposition des pages imprimées est faite par un autre processus que pour l'aperçu, ce n'est pas une copie de celui-ci (chaque image est envoyée individuellement à l'imprimante vers un emplacement donné, avec les fonctions de Klaus, les rotations nécessaires ayant déjà été faites pour l'aperçu). Essaie aussi la fonction livret (8 pages), tu verras, c'est marrant, pour faire par exemple un petit aide-mémoire (pour moi un petit répertoire téléphonique de portefeuille). Pour le choix préalable du répertoire des images, c'est vrai, c'était inutile. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mar 18 Aoû 2015 - 21:04 | |
| Une petite parenthèse, autorisée j'espère: Un moyen simple de tester des impressions est d'imprimer dans un fichier PDF. Il y a une foule d'imprimantes virtuelles en freeware, sur le net, qui réalisent cela très bien? Cela s'installe comme n'importe quel logiciel, mais cela produit une nouvelle imprimante reconnue par le système, mais dont la sortie est un fiochier PDF. Pour ma part, j'utilise PDFCreator. | |
| | | Invité Invité
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mar 18 Aoû 2015 - 23:37 | |
| Ok Klaus. Hier j'en ai essayé deux: Dopdf je crois, et pdf24. Ce que je ne comprend pas, c'est qu'il faut être absolument connecté pour pouvoir sauvegardé en PDF! Le courrier personnel que j'envoi ne regarde que moi et la personne concernée. Il est inadmisible qu'on puisse avoir un doute sur ce que veux faire un programme sur le NET! J'avais deux photos en jpg, que je voulais mettre en pdf (carte d'identité), et j'estime qu'il n'est pas bon que autre personne puisse voir ou enregistrer ceci, et sans être connecté, le fichier ne s'enregistrait pas. Il y a vraiment un problème de ce côté là. En plus ça demande a être dans les fichiers de démarrage. |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mar 18 Aoû 2015 - 23:46 | |
| avec PDFCreator tu n'as pas besoin d'être connecté à internet. Je l'utilise aussi | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mar 18 Aoû 2015 - 23:48 | |
| Merci pour l'idée Klaus, c'est vrai que je gâche un peu de papier et d'encre pour la mise au point, alors c'est une option intéressante à étudier.
A condition que les réserves de cosmos ne soient pas fondées, en effet ça ne me plairait pas non plus d'être obligé d'envoyer ça en ligne ! et que ce soit actif au démarrage, j'ai assez de mal à éradiquer les inutiles qui s'installent subrepticement (msconfig est bien utile pour ça).
Je vais regarder ça plus en détail...
On s'est croisés Jicehel, là tu me rassures, je vais voir PDFCreator. Merci à toi en tout cas
Je viens de télécharger PDFCreator, il faut décocher quelques trucs inutiles, je n'ai plus qu'à apprendre à m'en servir... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mer 19 Aoû 2015 - 1:14 | |
| Je confirme. PDFCreator n'a nullement besoin d'une connection internet. Il fonctionne localement. | |
| | | Invité Invité
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mer 19 Aoû 2015 - 1:22 | |
| J'avais essayé d'installer PDFcréator, sur deux sites différents. A chaque fois j'ai été bloqué.
Ne me demandé pas pourquoi, je ne sais plus. Il y a eu tellement de clics depuis. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mer 19 Aoû 2015 - 1:38 | |
| Pour ma part, je l'ai téléchargé à partir du lien que j'ai donné, installé sans problème.
Il propose également un outil de manipulation de fichiers PDF. Gratuit aussi. Je ne me rappelle plus le nom, mais je l'ai supprimé après installation, car je ne m'en sers pas. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mer 19 Aoû 2015 - 9:15 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mer 19 Aoû 2015 - 10:38 | |
| Architect (et un autre, je sais plus quoi) j'ai décoché au moment de l'installation (choisir 'Personnalisé' et décocher tout le reste), et je n'ai eu que PDFCreator. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. Mer 19 Aoû 2015 - 11:36 | |
| Exactement, n'installez pas PDF Architect mais juste PDF Creator PDF Architect n'est à ce jour pas compatible avec Office 2013 par exemple. En plus il ne nous set à rien et la version installable n'est qu'une version de test valable quelques temps. Donc le plus simple est en effet que d'installer PDF Creator | |
| | | Contenu sponsorisé
| Sujet: Re: Impression de menus, faire-part, cartes de voeux, etc. | |
| |
| | | | Impression de menus, faire-part, cartes de voeux, etc. | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |