|
| Impression sur imprimante étiquette |
| Iniciado por geo, 09,dic. 2014 16:27 - 10 respuestas |
| |
| | | |
|
| |
| Publicado el 09,diciembre 2014 - 16:27 |
Binjour,
je me prends la têtes avec une petite imprimante pour étiquettes Brother QL-570.
Son utilisation avec les états n'est pas top, mais j'arrive assez bien a imprimer en Wlangage, mais j'ai deux petits soucis :
1 - impossible de configurer la hauteur du papier au vol. Le texte imprimé peut varier , c'est le contenu des boites à étiqueter.
Exemple :
10 pièces en métal 20 bidules 35 truc etc.
J'ai tenté en vain d'utiliser les fonction ihauteurZone() pour trouver la hauteur de papier a avoir, mais il semble que si je fais un iParamètre() après avoir fais un iAperçu( i100), la nouvelle hauteur n'est pas prise en compte ... pas vraiment pratique ..
2- un fois l'étiquette affichée, si je clique sur impression, le programme "plante", j'ai la fenêtre "Impression en cours, page 1", mais il reste planté jusqu'à ce que je fasse un ctrl-alt-del => fin application , même si je clique sur annuler , la fenêtre "impression en cours" se ferme, mais impossible de quitter l'aperçu avant impression.
Si vous avez une idée, je suis en train de perdre patience avec cette imprimante ( ... pas mon choix ...)
Merci d'avance
Olivier |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 11 mensajes |
|
| Publicado el 09,diciembre 2014 - 17:32 |
bonsoir,
ton problème dépend de beaucoup de facteurs (format de l'état, réglages de l'imprimante, marges réglées sur l'imprimantes, marges sur l'état etc...) impossible de te répondre précisément; mais le fait de vouloir changer quoi que ce soit par iParamètre() surtout après avoir demandé l'aperçu, il me semble que c'est pas du tout dans ce sens là que tu dois procéder. et aussi , est ce que les champs sont des champs RTF parce que si c'est le cas tu vas vraiment en chier ... pour calculer la hauteur que ce soit avec les fonctions iHauteur.... pour peu que ce soit même possible ?
bon courage |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,diciembre 2014 - 18:20 |
Hello,
merci pour la réponse, même si c'est pour dire que je vais en c.... 
Pour donner plus de précision , mon impression me semble assez simple :
- 1 code barre => OK - 1 champ n° article => OK - 1 champ nom d'article => OK - 1 champ texte ( pas rtf) avec le contenu de la boite ( de 0 à x lignes)
A vrai dire ce qui m'emm... le plus , c'est le plantage de l'aperçu avant impression (testé sur plusieurs PC) car au pire, comme j'arrive a modifier la hauteur avant l'aperçu, il est possible de ne pas imprimer si l'impression devait se faire sur 2 pages et de relancer avec du rab de hauteur et d'imprimer si c'est OK (c'est pas le top mais au pont ou j'en suis ...)
A quoi servent ces fonctions iHauteurZone et compagnie si ce n'est pas pour calculer les hauteurs d’impression ...
Je patauge un peu ...
Amicalement
Olivier |
| |
| |
| | | |
|
| | |
| |
| Publicado el 10,diciembre 2014 - 03:46 |
Le 09/12/2014 15:27, Olivier a écrit :
Binjour, je me prends la têtes avec une petite imprimante pour étiquettes Brother QL-570. Son utilisation avec les états n'est pas top, mais j'arrive assez bien a imprimer en Wlangage, mais j'ai deux petits soucis : 1 - impossible de configurer la hauteur du papier au vol. Le texte imprimé peut varier , c'est le contenu des boites à étiqueter. Exemple : 10 pièces en métal 20 bidules 35 truc etc. J'ai tenté en vain d'utiliser les fonction ihauteurZone() pour trouver la hauteur de papier a avoir, mais il semble que si je fais un iParamètre() après avoir fais un iAperçu( i100), la nouvelle hauteur n'est pas prise en compte ... pas vraiment pratique .. 2- un fois l'étiquette affichée, si je clique sur impression, le programme "plante", j'ai la fenêtre "Impression en cours, page 1", mais il reste planté jusqu'à ce que je fasse un ctrl-alt-del => fin application , même si je clique sur annuler , la fenêtre "impression en cours" se ferme, mais impossible de quitter l'aperçu avant impression. Si vous avez une idée, je suis en train de perdre patience avec cette imprimante ( ... pas mon choix ...) Merci d'avance Olivier
Un peu étonné que tu n'arrives pas à faire tes étiquettes Voici un code mis à l'ouverture de mon état sTemp est une chaîne sTemp=INILit("ADMIN","A4_Long","99.1",MF_IniGWFile) MoiMême..LargeurEtiquette =Val(sTemp) sTemp=INILit("ADMIN","A4_Haut","38.1",MF_IniGWFile) MoiMême..HauteurEtiquette=Val(sTemp) sTemp=INILit("ADMIN","A4_MargHaut","15",MF_IniGWFile) MoiMême..MargeHaute = Val(sTemp)
sTemp=INILit("ADMIN","A4_MargGau","5",MF_IniGWFile)
MoiMême..MargeGauche = Val(sTemp) sTemp=INILit("ADMIN","A4_InterH","2.5",MF_IniGWFile) MoiMême..EspaceH = Val(sTemp) sTemp=INILit("ADMIN","A4_InterV","0",MF_IniGWFile) MoiMême..EspaceV = Val(sTemp) sTemp = INILit("ADMIN", "A4_NB","2", MF_IniGWFile) MoiMême..NbEtiquette = Val(sTemp)
sTemp = INILit("ADMIN","A4_MargBas","0", MF_IniGWFile) MoiMême..MargeBasse = Val(sTemp)
Et cela marche parfaitement je peux avoir une planche d'étiquette comme les AVERY labels je tape les mesures dans une fenêtre d'initialisation et mon client peut paramétrer au début et cela garde celle-ci |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 5 mensajes |
|
| Publicado el 10,diciembre 2014 - 13:18 |
Bonjour et merci pour ta réponse.
Si j'ai bien lut le code que tu m'as envoyé, il s'agit d'impression de planches d'étiquettes ( une feuille A4 avec pleins de petites étiquettes).
Mon soucis concerne l'impression d'étiquettes sur une imprimante à étiquettes de type Brother QL-570

C'est donc dans le format -- /------------ 62 mm ------------/-- de largeur et de X mm de hauteur ( selon ce que je dois imprimer ) qui me pose de gros soucis ( et c'est la version polie )
Amicalement
Bonne journée
Olivier |
| |
| |
| | | |
|
| | |
| |
| Publicado el 10,diciembre 2014 - 14:06 |
Le 10/12/2014 12:18, "géo" a écrit :
Bonjour et merci pour ta réponse. Si j'ai bien lut le code que tu m'as envoyé, il s'agit d'impression de planches d'étiquettes ( une feuille A4 avec pleins de petites étiquettes). Mon soucis concerne l'impression d'étiquettes sur une imprimante à étiquettes de type Brother QL-570

C'est donc dans le format -- /------------ 62 mm ------------/-- de largeur et de X mm de hauteur ( selon ce que je dois imprimer ) qui me pose de gros soucis ( et c'est la version polie  ) Amicalement Bonne journée Olivier Alors là c'est encore le plus simple voici un code pour pour une étiquette tu peux aussi te faire un format désiré dans l'editeur d'etat tu défini ton étiquettes toi même ... je ne vois vraiment rien de sorcie Ici j'ai fait mon étiquette moimeme Format papier ... personnel et tu mets tes mesures... rien de plus simple
iParamètre("FORMATPAPIER = A4") iParamètre("ORIENTATION = PORTRAIT") SI G_TM_L60_GRANDE ALORS /// Etiquette TM60 100mm * 50 G_EtiL=29 SELON G_EtiTaille CAS 1: G_EtilDeb=1 CAS 2: G_EtilDeb=3 AUTRE CAS : G_EtilDeb=5 FIN iCréePolice(1,13, iGras, iRoman ) iCréePolice(2,13, iGras, iRoman ) iCréePolice(3,13, iGras,iRoman ) iCréePolice(4,13, iGras,iRoman) // si pas i=1 alors isautePage iPolice(3) POUR j=1 A 1 iSauteLigne FIN SI G_B_BAS_ETIQUETTE ALORS SINON iPolice(3) iImprime(" " + Gauche(_l1,G_EtiL)+" ") iPolice(2) FIN SI G_B_CIVILITE ALORS iImprime(" " + Gauche(_l2,G_EtiL)+" " + Gauche(_l3,G_EtiL)+" ") SINON iImprime( Gauche(_l3,G_EtiL)+" ") FIN iImprime(" " + Gauche(_l4,G_EtiL)+" ") SI G_EtiTaille > 1 ALORS SI _l5 <> "" ALORS iImprime(" " +Gauche(_l5,G_EtiL)+" ")//2eme ligne adresse FIN FIN iImprime(" " +Gauche(_l6,G_EtiL)+" ") iCréePolice(4,13,iGras, iRoman) iImprime(" " +Gauche(_l7,G_EtiL)+" ") SI G_B_BAS_ETIQUETTE ALORS iPolice(3) iImprime(" " + RC +Gauche(_l1,G_EtiL)+" ") FIN iFinImprime |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 5 mensajes |
|
| Publicado el 10,diciembre 2014 - 21:29 |
Bonjour,
j'ai parcouru ton code ( pas facile vu que tu utilises pas mal de constantes) , mais si je lis "en travers", tu définis ton format "A4" et ensuite tu envoies des "iImprime()" / "iSauteLigne" / etc ...
Mais comment gérer un :
iImprime( iPolice(1) + SAI_MonTexte )
sachant que mon texte peut être un texte de 1 , 2 , ou 10 lignes ... donc ma hauteur d'étiquette (j'imprime sur du ruban , donc l'étiquette peut avoir 10, 20 , 50 mm de long) peut varier et c'est justement avant de définir le iApercu().
Voici mon code, il est un peu complexe car j'utilise la fonction Compile() pour garder la main sur l'impression sans avoir a recompiler l'appli. Le code d'impression est contenu dans les options du soft.
L'utilisateur clique sur "imprimer étiquette" :
- l'étiquette est affichée en aperçu avant impression et l'utilisateur ne peut que cliquer pour fermer la fenêtre ( pas de boutons pour imprimer) - le programme affiche "Voulez-vous imprimer ? " OUI / NON - si le résultat est OK => OUI => l'imprimante imprime l'étiquette - si le résultat est mauvais ( sur deux pages ) ==> NON - l'utilisateur clique a nouveau sur "imprimer étiquette" avec la touche Shift enfoncée - le soft affiche "Ajouter des mm ?" , => saisie d'un entier - l'étiquette est affichée en aperçu avant impression (avec les mm en plus ) et l'utilisateur ne peut que cliquer pour fermer la fenêtre ( pas de boutons pour imprimer) - si le résultat est OK => OUI => l'imprimante imprime l'étiquette - si le résultat est mauvais ( sur deux pages ) ==> NON
OK , pas franchement élégant , mais vous voyez au point ou j'en suis .....
Bonne journée
Olivier
sImprimanteDefaut, sImprimanteEtiquette sont des chaînes
bAjouterLongueur est un booléen = Faux SI ToucheEnfoncée(teShift) ALORS bAjouterLongueur = Vrai FIN
sImprimanteDefaut = iInfoImprimante(Faux)
sImprimanteEtiquette = val_preference( "Option_Imprimante_Etiquette")
SI sImprimanteEtiquette <> "" ALORS iConfigure(sImprimanteEtiquette,Vrai) FIN
sTabArticle["Numero"] = Article.Numero sTabArticle["Contenu"] = Article.Contenu sTabArticle["nom"] = Article.Nom
sRésultat est une chaîne sRésultatCompile est une chaîne sRésultatCompile = Compile("Imprimer_Etiquette","Procedure Imprimer_Etiquette (nArt sTabArticle ,bAjouterLongueur )" + RC + sScript + RC + "RENVOYER vrai")
SELON sRésultatCompile CAS "" : sRésultat= ExécuteTraitement("Imprimer_Etiquette",trtProcedure,SAI_Numero, sTabArticle,bAjouterLongueur) CAS "ERR" : sRésultat = "Compilation impossible." + RC + ErreurInfo() AUTRE CAS : sRésultat = sRésultatCompile FIN SINON Erreur("Impossible de trouver le script d'impression !") FIN
iConfigure(sImprimanteDefaut, Vrai)
Voici le code que je compile à la volée, il est contenu dans les options sous forme de texte dans la base HF
stexte est une chaîne =sTabArticle["Contenu"]
nRC est un entier = ChaîneOccurrence(stexte, RC )
nHauteur est un entier = nRC * 65
nAjout est un entier SI bAjouterLongueur = 1 ALORS Saisie("Ajouter : ", nAjout ) FIN
iParamètre(iOrientation,1)
iParamètre(iHauteurPapier, nHauteur + nAjout )
iParamètre(iLargeurPapier,620)
iParamètreAperçu(iBoutonAucun)
iAperçu(iapZoom100)
iCréePolice(1, 11 , iNormal,iRoman ) iImprime(iPolice(1) + stexte ) iFinImprime()
SI OuiNon(2,"Imprimer ?") = Non ALORS
iRAZ() RENVOYER "" FIN
iImprime(iPolice(1) + stexte ) iFinImprime()
iRAZ()
|
| |
| |
| | | |
|
| | |
| |
| Publicado el 11,diciembre 2014 - 13:15 |
Le 10/12/2014 13:06, Feiereisen Marcel a écrit :
Le 10/12/2014 12:18, "géo" a écrit : Bonjour et merci pour ta réponse. Si j'ai bien lut le code que tu m'as envoyé, il s'agit d'impression de planches d'étiquettes ( une feuille A4 avec pleins de petites étiquettes). Mon soucis concerne l'impression d'étiquettes sur une imprimante à étiquettes de type Brother QL-570

C'est donc dans le format -- /------------ 62 mm ------------/-- de largeur et de X mm de hauteur ( selon ce que je dois imprimer ) qui me pose de gros soucis ( et c'est la version polie  ) Amicalement Bonne journée Olivier Alors là c'est encore le plus simple voici un code pour pour une étiquette tu peux aussi te faire un format désiré dans l'editeur d'etat tu défini ton étiquettes toi même ... je ne vois vraiment rien de sorcie Ici j'ai fait mon étiquette moimeme Format papier ... personnel et tu mets tes mesures... rien de plus simple iParamètre("FORMATPAPIER = A4") iParamètre("ORIENTATION = PORTRAIT") SI G_TM_L60_GRANDE ALORS /// Etiquette TM60 100mm * 50 G_EtiL=29 SELON G_EtiTaille CAS 1: G_EtilDeb=1 CAS 2: G_EtilDeb=3 AUTRE CAS : G_EtilDeb=5 FIN iCréePolice(1,13, iGras, iRoman ) iCréePolice(2,13, iGras, iRoman ) iCréePolice(3,13, iGras,iRoman ) iCréePolice(4,13, iGras,iRoman) // si pas i=1 alors isautePage iPolice(3) POUR j=1 A 1 iSauteLigne FIN SI G_B_BAS_ETIQUETTE ALORS SINON iPolice(3) iImprime(" " + Gauche(_l1,G_EtiL)+" ") iPolice(2) FIN SI G_B_CIVILITE ALORS iImprime(" " + Gauche(_l2,G_EtiL)+" " + Gauche(_l3,G_EtiL)+" ") SINON iImprime( Gauche(_l3,G_EtiL)+" ") FIN iImprime(" " + Gauche(_l4,G_EtiL)+" ") SI G_EtiTaille > 1 ALORS SI _l5 <> "" ALORS iImprime(" " +Gauche(_l5,G_EtiL)+" ")//2eme ligne adresse FIN FIN iImprime(" " +Gauche(_l6,G_EtiL)+" ") iCréePolice(4,13,iGras, iRoman) iImprime(" " +Gauche(_l7,G_EtiL)+" ") SI G_B_BAS_ETIQUETTE ALORS iPolice(3) iImprime(" " + RC +Gauche(_l1,G_EtiL)+" ") FIN iFinImprime Tus dois aussi réaliser... que si tu as 20 lignes tu ne peux pas imprimer sur une etiquette de 50 mm de hauteur faut que tu fasse attention à cela
L1 c'est une ligne etc ... en fonction du nombre de ligne j'autorise la grandeur de l'étiquette et ou je mets une point de moins dans la taille de la police |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 5 mensajes |
|
| Publicado el 11,diciembre 2014 - 19:36 |
Bonjour,
.. et bien oui, dans mon cas, si il y a 20 lignes , je veux les imprimer les 20.
Au pire dans l'aperçu avant impression l'utilisateur n'imprime pas.
Comme c'est du papier continu dans l'imprimante étiquette, 20 mm ou 50 mm de haut pas de soucis.
Bonne journée
Amicalement
Olivier |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,diciembre 2014 - 03:30 |
Le 11/12/2014 18:36, "géo" a écrit :
Bonjour, ... et bien oui, dans mon cas, si il y a 20 lignes , je veux les imprimer les 20.
Au pire dans l'aperçu avant impression l'utilisateur n'imprime pas.
Comme c'est du papier continu dans l'imprimante étiquette, 20 mm ou 50 mm de haut pas de soucis.
Bonne journée
Amicalement Olivier à ce moment là UN compteur tu lis tes lignes et à chaquer RC tu rajoute une ligne ... rien de trop compliqué je trouve Au nombre désiré exemple la 6 sième ligne tu peux envoyé et faire un iimprime la première étiquette la deuxième etc. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 5 mensajes |
|
| Publicado el 12,diciembre 2014 - 11:55 |
hello,
c'est bien ce que je fais ici :
... stexte est une chaîne =sTabArticle["Contenu"]
nRC est un entier = ChaîneOccurrence(stexte, RC )
nHauteur est un entier = nRC * 65 ...
iParamètre(iHauteurPapier, nHauteur + nAjout )
mais si la longueur de la ligne dépasse la largeur de l'étiquette ... pas de RC et une ligne supplémentaire quand même ...
Olivier |
| |
| |
| | | |
|
| | | | |
| | |
|