2009-06-18 8 views
1

Je souhaite imprimer une page ligne par ligne sur l'imprimante Dotmatrix (imprimante Epson LQ-300). Cela signifie que je vais envoyer une ligne de texte à l'imprimante et après une pause, j'enverrai une autre , maintenant les deux lignes devraient être sur une page pas sur deux pages.Impression ligne par ligne en Java

S'il vous plaît montrez-moi comment je peux y parvenir.

Cordialement.

Répondre

2

Vous aurez probablement besoin d'une bibliothèque de communication premier-parallèle ou des ports série. Il existe une ancienne implémentation Sun de Java 1.2 jours, mais nous l'utilisons toujours avec succès avec Java 5. Les interfaces sont définies dans le paquetage javax.comm. Utilisez cela comme point de départ.

Comme vous ne fournissez pas plus d'informations sur votre situation, ce qui suit est un peu vague, mais je l'espère utile de toute façon:

ports Com/série et parallèle sont en fonction de la plate-forme, ce qui nécessite un morceau de code natif. Pour Linux, le projet RxTx fournit une implémentation.

Ensuite, vous allez juste écrire des données sur le port, une fois que vous l'avez ouvert avec les paramètres appropriés (il y a un énumérateur de port) selon le protocole que l'imprimante comprend. Pour la plupart des imprimantes Epson, il s'agit de la norme ESC/P (2). L'impression de plusieurs lignes de texte en clair devrait être aussi simple que de les imprimer à l'écran une fois la configuration terminée.

+0

Si vous imprimez simplement du texte, envoyez le texte. Selon les paramètres internes de l'imprimante, cela ajoutera un saut de ligne ou non. Si l'imprimante n'avance pas le papier, ajoutez également un \ n. –

0

Pour être honnête, je n'ai jamais essayé d'envoyer une imprimante moi-même, mais j'ai fait un peu de googling (et vous?) Et this tutorial semble prometteur. Maintenant, en ce qui concerne la dernière requête, vous voulez simplement construire un tampon de texte dans lequel vous envoyez votre texte, et qui peut vider son contenu à l'imprimante à un moment ultérieur. Veuillez me corriger si j'ai trop simplifié votre problème =)