PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 26-08-2010 17:02:33

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Impression via fileopen

Bonjour,

ce bout de code est actuellement utilisé pour déclencher une impression

Code: pb

Integer li_no_fichier, li_return, i
string lst_ini, ast_repertoire, ast_commande

ast_repertoire = "LPT1"

li_no_fichier = FileOpen(ast_repertoire, LineMode!, Write!, Shared!, Replace!)

//on initialise la commande d'impression
//--------------------------------------
if  FileWrite( li_no_fichier, 'FR"FORM1"')  < 0 then
    return
end if
if  FileWrite( li_no_fichier, '?')  < 0 then
    return
end if
if ast_num_support <> "" then
  if  FileWrite( li_no_fichier, upper(trim(ast_num_support)))  < 0 then
      return
  end if
else
  return
end if
if  FileWrite( li_no_fichier, 'P1')  < 0 then
    return
end if

if FileClose( li_no_fichier) < 0 then
  return
end if

Notre problématique, est de reproduire ce comportement pour le port USB (à priori USB001)
Quand on remplace ast_repertoire = "LPT1" par ast_repertoire = "USB001" le FileOpen revoie bien 1, donc ok, mais cela s'arrête là.

Merci d'avance

Windows Xp, PB 10.5

Dernière modification par cdtit (27-08-2010 08:02:44)


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#2 26-08-2010 17:41:14

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Impression via fileopen

Bonjour,

Il existe des fonctions natives pour gérer l'impression.

tu devrais simplement migrer ton code en utilisant les fonctions : PrintOpen, Print, PrintClose, ....

Hors ligne

 

#3 27-08-2010 07:48:05

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Impression via fileopen

Merci d'avance de corriger


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#4 27-08-2010 08:09:13

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Re: Impression via fileopen

buck a écrit:

Bonjour,

Il existe des fonctions natives pour gérer l'impression.

tu devrais simplement migrer ton code en utilisant les fonctions : PrintOpen, Print, PrintClose, ....

Bonjour,

Merci, mais d'une part ceci ne permet pas de choisir son port d'impression.
Et d'autre part, nous avons besoin d'envoyer des données à l'imprimante et pas seulement de déclencher une impression.
Le but étant d'imprimer des codes barre.


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#5 27-08-2010 08:16:23

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Impression via fileopen

Bonjour, il te suffit de déclarer ton imprimante USB dans Windows, comme toutes les autres.
Ensuite tu choisis cette imprimante avec PrintSetPrinter, puis tu utilises PrintOpen, Print, PrintClose.
Pour info, j'ai utilisé ces commandes pour imprimer des codes barres sur une imprimante Zébra. (en code ZPL, donc pas une "impression classique")


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 27-08-2010 08:29:35

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Re: Impression via fileopen

Nous sommes dans le même cas de figure (imprimante Zebra), et comme nous reprenons le code, aucune expérience de la chose.
Concrètement quel type de syntaxe dois-je utiliser pour imprimer un code barre via pb vers une imprimante Zebra (gx420t)


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#7 27-08-2010 08:39:39

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Impression via fileopen

Tu installes ton imprimante avec le driver "Generic / Text only" et puis tu lui envoies (via Print) des lignes de code ZPL du genre (les codes barres sont les commandes avec ^BCN) :

Code: ZPL

^XA
^DFR:PALETTE.GRF^FS
^FO25,35^GB1150,1625,5^FS  cadre principal
^FO25,210^GB1150,0,4^FS    ligne 1 H
^FO25,385^GB1150,0,4^FS    ligne 2 H
^FO25,555^GB1150,0,4^FS    ligne 3 H
^FO25,730^GB1150,0,4^FS    ligne 4 H
^FO635,35^GB0,175,4^FS     ligne 5 V
^FO720,385^GB0,175,4^FS    ligne 6 V
^FO920,555^GB0,175,4^FS    ligne 7 V
^FO60,60^A0,75,40^FN1^FS
^FO60,130^A0,75,40^FN2^FS
^FO670,50^ARN,0,0^FDEMPLACEMENT LM7 :^FS
^FO975,50^ARN,0,0^FN3^FS
^FO670,85^ARN,0,0^FDEMPLACEMENT RTCIS :^FS
^FO975,85^ARN,0,0^FN4^FS
^FO670,120^ARN,0,0^FDDATE RECEPTION :^FS
^FO975,120^ARN,0,0^FN5^FS
^FO670,155^ARN,0,0^FDNo PALETTE LM7 (fin) :^FS
^FO975,155^ARN,0,0^FN6^FS
^FO60,225^ARN,0,0^FDITEM :^FS
^FO60,270^A0,120,50^FN7^FS
^FO60,400^ARN,0,0^FDIRMS / GCAS # :^FS
^FO60,445^A0,120,70^FN8^FS
^FO755,400^ARN,0,0^FDQUANTITY :^FS
^FO755,445^A0,120,70^FN9^FS
^FO60,575^ARN,0,0^FDLOT # :^FS
^FO60,620^A0,120,70^FN10^FS
^FO955,575^ARN,0,0^FDPALLET TYPE :^FS
^FO955,620^A0,120,70^FN11^FS
^FO60,750^BY3,3,10^BCN,200,Y,N,N,D^FN12^FS
^FO60,1050^BCN,200,Y,N,N,D^FN13^FS
^FO60,1350^BCN,200,Y,N,N,U^FN14^FS
^XZ
^XA
^XFR:PALETTE.GRF
^FN1^FDSGD^FS
^FN2^FDMERS LES BAINS^FS
^FN5^FD^FS
^FN6^FD001^FS
^FN7^FDBO GUCCI GUCBYGUC EDPSPR 30ML XX^FS
^FN8^FD98569081^FS
^FN9^FD2730 EA^FS
^FN10^FDSGME^FS
^FN11^FDNONE^FS
^FN12^FD(91)98569081>8(37)00002730^FS
^FN13^FD(10)SGME>8(90)NONE^FS
^FN14^FD(00)34056800791000017^FS
^XZ

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#8 27-08-2010 09:20:55

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Re: Impression via fileopen

Merci pour l'exemple, j'obtiens bien une impression, mais c'est le code ZPL "brut" et non pas un code barre.
Cela vient sans doute du fait que je ne trouve trace du "driver "Generic / Text only" ?


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#9 27-08-2010 17:42:25

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Impression via fileopen

cdtit a écrit:

Cela vient sans doute du fait que je ne trouve trace du "driver "Generic / Text only" ?

Generic > Generic / Text only  (sur XP en anglais...)

C'est nécessaire, sinon effectivement c'est le code ZPL qui est imprimé sans être interprété.


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22