2009-02-12 7 views
4

J'aimerais savoir quelle est la manière pratique de créer des rapports pour les imprimantes matricielles EPSON en Java. En ce moment, j'ai le modèle LX300 + II avec lequel jouer.Impression matricielle rapide avec mise en page précise en Java

Je sais qu'il ya fondamentalement deux façons d'utiliser cette imprimante:

  1. En tant que machine à écrire, produire des données brutes ASCII directement au port parallèle
  2. impression graphique, avec des polices graphiques et un positionnement précis.

Comment puis-je utiliser les deux polices d'impression rapide (fournies par) et un positionnement précis (fourni par)?

Je sais que c'est possible car il y a quelques années, j'ai commencé à créer des rapports pour l'EPSON FX 2180 qui incluait des pilotes avec des polices d'impression natives installées dans Windows. Cela a permis de faire exactement ce que je veux ici.

Maintenant, je suis en utilisant JasperReports pour des rapports graphiques et fonctionne très bien, mais j'ai des rapports qui besoin à imprimer dans les imprimantes matricielles et rapide aussi. Quelle peut être une alternative pour cela?

Répondre

1

Si vous souhaitez imprimer rapidement dans des imprimantes matricielles, vous devez le faire en mode "texte brut". Le code suivant fonctionne pour moi:

try { 
    // LPT1 is the printer port 
    try (FileWriter out = new FileWriter("LPT1:")) { 
     out.write("String1\nString2\nString3\n"); 
     out.flush(); 
    } 
} catch (IOException e) { 
} 
+0

Que dois-je remplacer par "LPT1:"? Où dois-je chercher le nom? – William

0

// print java avec matrice de points d'imprimante

String bill = "your text"; 

InputStream br = new ByteArrayInputStream(bill.getBytes()); 
BufferedReader in = new BufferedReader(new InputStreamReader(br)); 
String line; 
//if you use windows 
FileWriter out = new FileWriter("////IP Printer//printer name"); 
//if you use linux you can try SMB:(samba) 
while((line = in.readLine()) != null) 
{ 
    System.out.println("line"+line); 
    out.write(line); 
    out.write(0x0D); CR 
    out.write('\n'); 
    writer.println(line); 
} 
out.close(); 
in.close(); 
writer.close(); 

// ça marche pour moi ...

Questions connexes