FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Mais qui a le focus ?
par Klaus Aujourd'hui à 11:48

» Mac OS X sierra
par Irikte Aujourd'hui à 11:38

» Concours de Morpions
par Froggy One Aujourd'hui à 10:29

» Synedit Parameters
par Jean Claude Aujourd'hui à 10:08

» Bienvenue à Irikte
par UltraVox Aujourd'hui à 10:04

» Recherche de traductions de mots (@Klaus).
par Klaus Aujourd'hui à 9:44

» Version instantanée V 0.9.28i10 du 24/06/2017
par Yannick Hier à 22:52

» Panoramic et ses curiosités
par Jack Hier à 8:15

» Utilitaire de suppression de fichiers
par Yannick Ven 23 Juin 2017 - 23:03

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Jeu 22 Juin 2017 - 21:16

» Compilateur FBPano
par jean_debord Jeu 22 Juin 2017 - 9:56

» Bienvenue à Virtualalan !
par UltraVox Jeu 22 Juin 2017 - 9:18

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Impression de menus, faire-part, cartes de voeux, etc.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Impression de menus, faire-part, cartes de voeux, etc.   Dim 16 Aoû 2015 - 14: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 - 17:34, édité 4 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4937
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Lun 17 Aoû 2015 - 9: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+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2345
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Lun 17 Aoû 2015 - 9: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... Wink

Merci JL35
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Lun 17 Aoû 2015 - 14: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" Very Happy , 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... scratch


Dernière édition par JL35 le Lun 17 Aoû 2015 - 18:41, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4937
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Lun 17 Aoû 2015 - 18: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+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Lun 17 Aoû 2015 - 18: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).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4937
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Lun 17 Aoû 2015 - 19: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+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Lun 17 Aoû 2015 - 21: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 Very Happy )

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... scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Lun 17 Aoû 2015 - 22:00

Une remise aux goûts du jour de ton programme Wink Toujours pratique à avoir quand on en a besoin.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Lun 17 Aoû 2015 - 22: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9977
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mar 18 Aoû 2015 - 1: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mar 18 Aoû 2015 - 17: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mar 18 Aoû 2015 - 18: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)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4937
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mar 18 Aoû 2015 - 18:43

Je viens de tester, ça marche cheers

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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mar 18 Aoû 2015 - 19:23

Merci Jean Claude, ton retour me fait grand plaisir  Very Happy

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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9977
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mar 18 Aoû 2015 - 22: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mer 19 Aoû 2015 - 0: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.
Revenir en haut Aller en bas
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mer 19 Aoû 2015 - 0:46

avec PDFCreator tu n'as pas besoin d'être connecté à internet. Je l'utilise aussi
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mer 19 Aoû 2015 - 0: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9977
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mer 19 Aoû 2015 - 2:14

Je confirme. PDFCreator n'a nullement besoin d'une connection internet. Il fonctionne localement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mer 19 Aoû 2015 - 2: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.
Revenir en haut Aller en bas
Klaus

avatar

Nombre de messages : 9977
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mer 19 Aoû 2015 - 2: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

Nombre de messages : 4937
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mer 19 Aoû 2015 - 10:15

Une mise garde pour PDF créator, ne téléchargez pas n'importe où !

téléchargez ici => http://www.commentcamarche.net/download/telecharger-128-pdfcreator

Ensuite je vous conseille de désinstaller PDF architect qui normalement est installé avec, car il met la pagaille dans word et open office.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mer 19 Aoû 2015 - 11: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   Mer 19 Aoû 2015 - 12: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Impression de menus, faire-part, cartes de voeux, etc.   

Revenir en haut Aller en bas
 
Impression de menus, faire-part, cartes de voeux, etc.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» desir faire part de copie de mes textes et autre sans autorisation de ma part
» Le père noel est une ordure
» Comment mettre ce texte dans un sujet ?
» 2004 – 2014 : Déjà 10 ans à vos côtés, et le meilleur reste à venir...
» mettre une image png dans le cadre des responses

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: