Impression matricielle rapide avec mise en page précise en Java


J'aimerais savoir quel moyen pratique de construire des rapports pour les imprimantes matricielles EPSON existe en Java. En ce moment, j'ai le modèle LX300+II pour jouer avec.

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

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

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

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

Maintenant, j'utilise JasperReports pour les rapports graphiques et fonctionne bien, mais j'ai des rapports qui ont besoin depour être imprimés dans des imprimantes matricielles et fast, aussi. Ce qui peut être un alternative pour ça?

Author: Camilo Díaz Repka, 2009-02-13

3 answers

TextPrinter répondrait-il à vos besoins?

 2
Author: nzpcmad, 2009-02-12 21:59:54

Si vous voulez 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) {
}
 1
Author: Rendicahya, 2012-07-29 05:45:47

//java imprimer avec une imprimante à matrice de points

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...

 0
Author: lucky kurniawan, 2016-04-20 07:31:03