[Delphi] Imprimer sans aller à la page

Imprimer sans aller à la page [Delphi] - Delphi/Pascal - Programmation

Marsh Posté le 03-04-2002 à 17:13:23    

Je débute
 
en gros je veux pouvoir imprimer une étiquette sans qu'il saute après l'espace restant d'une feuille A4

Reply

Marsh Posté le 03-04-2002 à 17:13:23   

Reply

Marsh Posté le 03-04-2002 à 17:17:36    

Beh tu fais toute T étiquettes avant de faire 1 EndDoc...
(je vois pas bien ce que tu veux faire ds l'absolu)
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 04-04-2002 à 10:13:57    

oui, mais si je ne veux imprimer qu'une seule étiquette ?
(j'ai du papier continu dans une bonne vieille imprimante matricielle :D)
bref je voudrai qu'il me sorte qu'un bout de page de l'imprimante :)

Reply

Marsh Posté le 04-04-2002 à 18:36:30    

Beh là C + compilqué....
enfin vais voir... ( [:baobab] )


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 04-04-2002 à 22:22:26    

G ptet une solution en changeant les valeurs de
TPrinter.PageHeight et TPrinter.PageWidth par exemple en les mettant à la taille d'1 étiquette.
 
Voilou tien moi au courant
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 05-04-2002 à 14:38:19    

pour l'instant j'arrive à n'imprimer que sur 3 pouces de long en reglant les param interne de l'imprimante et en mettant le papier en format carte postale, mais ça fait donc 2 étiquettes
je vais essayer ta méthode
 
sinon tu saurais pas comment envoyer du texte à une imprimante sans passer par un canvas, parce que sinon une méthode pourrait d'être d'envoyer les commandes ESC/P2 à l'imprimante pour gérer moi meme la taille de page, mais cette couillon, mais commande elle essayer de les imprimer à la place de s'en servir (ESC ça fait un joli carré :D)

Reply

Marsh Posté le 05-04-2002 à 14:56:33    

Pour envoyer les codes internes de l'imprimante, faudrait (je pense) écrire directement sur le port parallèle physique sur laquelle elle est, sinon le pilote Windows va l'intercepter et l'interpréter comme un caractère inscriptible ou non (c'est pas son affaire) tant que c'est pas Cr ou Lf.

Reply

Marsh Posté le 05-04-2002 à 15:28:44    

en fait j'ai trouvé ça dans l'aide de delphi :  

Citation :

Question :
 
Comment envoyer des caractères de contrôle à l'imprimante avec Quickreport ?
 
Réponse :
 
QuickReport utilise le GDI d'imprimante Windows pour restituer les données, ce système ne gère pas l'envoi direct de codes d'échappement à l'imprimante.  Vous pouvez utiliser le filtre d'exportation texte ASCII pour enregistrer l'état comme texte.  Vous pouvez ensuite insérer les séquences d'échappement de votre imprimante dans le fichier, puis copier le fichier sur le port de l'imprimante.


 
reste plus qu'à trouver comment mettre ça en pratique sur mon étiquette, et aussi comment copier un fichier sur un port
 
cai pas gagné :D

Reply

Marsh Posté le 05-04-2002 à 16:10:47    

Pour envoyer un ficheir texte sur une imprimante sous DOS, on fait
COPY fichier.txt > LPTx (me semble-t-il, de mémoire) si LPTx est le port de l'imprimante (généralement x = 1. J'avais LPT2 et LPT3 sur ma machine, mais l'un d'eux ne servait plus trop : EPSON à aiguilles)
 
Je ne sais plus s'il faut mettre : à la fin  
COPY c:\toto\fichier.txt > LPTx:  (encore un trou de mémoire), faut essayer si le dos crée un fichier LPT1  ....

Reply

Marsh Posté le 05-04-2002 à 19:54:35    

et avec Delphi on fait ça comment ? :jap:


---------------
"The pen is mightier than the sword if the sword is very short, and the pen is very sharp." TP. Mes Jeux. Mes Ventes. Groupe HFR sur PlayFire.
Reply

Marsh Posté le 05-04-2002 à 19:54:35   

Reply

Marsh Posté le 06-04-2002 à 12:01:13    

CARBON_14 a écrit a écrit :

Pour envoyer les codes internes de l'imprimante, faudrait (je pense) écrire directement sur le port parallèle physique sur laquelle elle est, sinon le pilote Windows va l'intercepter et l'interpréter comme un caractère inscriptible ou non (c'est pas son affaire) tant que c'est pas Cr ou Lf.  




 :non:  
Pas possible d'écrire direct sur le port avec des sys comme win2k et XP (ptet même ME et win98) Faut forcément passer par windows sinon il va pas aimer du tout....
( [:baobab] )


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 06-04-2002 à 13:26:34    

Non poire, y a moyen d'écrire sur le port directement, mais faut le demander très gentillement, tu peux pas faire une interruption comme un sauvage  :D  
 
Y a des examples qui doivent trainer sur le web, mais je sais pas si c'est la meilleure chose à faire quand même.


---------------
Vendredi c'est Buitoni
Reply

Marsh Posté le 06-04-2002 à 14:23:38    

Buitoni a écrit a écrit :

Non poire, y a moyen d'écrire sur le port directement, mais faut le demander très gentillement, tu peux pas faire une interruption comme un sauvage  :D  
 
Y a des examples qui doivent trainer sur le web, mais je sais pas si c'est la meilleure chose à faire quand même.  




Alors vraiment trés gentiment....
Les trucs fait pour DOS en C/C++ font des trucs marrant.... Genre Windows t'empéche d'accéder directement aux ports.... (protégé quoi :))
 
Pour ce qui est de l'impression je ferais 3/4 tests quand j'aurais le temps...
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 06-04-2002 à 18:22:35    

ben dans la doc de l'imprimante y a les codes d'échappement à lui envoyer en mode direct, et dans la doc de delphi ils disent qu'il fo copier le fichier ascii directement sur le port de l'imprimante, donc ça doit être faisable, le truc c que je sais pas comment :D


---------------
"The pen is mightier than the sword if the sword is very short, and the pen is very sharp." TP. Mes Jeux. Mes Ventes. Groupe HFR sur PlayFire.
Reply

Marsh Posté le 08-04-2002 à 16:51:47    

c bon, c trouvé
il fallait faire
Id:=CreateFile(@Ca[1],GENERIC_WRITE,0,Nil,OPEN_EXISTING,0,0);
avec dans Ca le nom du port de l'imprimante
et après d'écrire dans Id comme dans un fichier


---------------
"The pen is mightier than the sword if the sword is very short, and the pen is very sharp." TP. Mes Jeux. Mes Ventes. Groupe HFR sur PlayFire.
Reply

Marsh Posté le 08-04-2002 à 16:54:54    

Pour le premier paramètre je mettrais plutôt PChar(Ca)
Sinon tu risques d'avoir des problèmes à aller prendre l'adresse d'une chaîne de cette manière.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-04-2002 à 11:30:33    

ah, ben a priori ça marche bien comme ça, y a pas eu de pb


---------------
"The pen is mightier than the sword if the sword is very short, and the pen is very sharp." TP. Mes Jeux. Mes Ventes. Groupe HFR sur PlayFire.
Reply

Marsh Posté le 12-10-2004 à 11:46:09    

Bonjour,
 
je me permet de remonter ce message qui a + de 2 ans (mode recherche on) pour vous demander de m aider.
 
J avoue que ce message ne m a pas vraiment aider.
 
Je m'explique : a la fin du canvas il y a un enddoc qui gere automatiquement un saut de page. Je ne veux plus de ce saut de page en fait. J'utilisais Rave Report aussi mais il faisait aussi automatiquement un saut de page.
 
Cela me gene car j ai aussi une imprimante a aiguille avec recharge tracteur(une epson LX-300) et je ne sais pas comment le gérer.  
 
Merci de votre aide  
 
(c est très important j ai le patron sur le dos car le client trouve ca long  :cry:  )

Reply

Marsh Posté le 12-10-2004 à 14:17:54    

up

Reply

Marsh Posté le 13-10-2004 à 10:57:27    

Encore up car c est tres important SVP

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed