A5 Zettel ausdrucken ohne Printer Dialog

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • A5 Zettel ausdrucken ohne Printer Dialog

    Halo,

    Ich brauche eure Hilfe weil ich mich beim Printen nicht auskenne..
    Ich muss ein paar Zeilen auf ein A5 Zettel ausdrucken.
    Etwa wie ein Formular.

    zB.
    Name: Muster Mann
    Straße: Zwergstraße
    Numer: 4/5/9
    ...

    dabei soll Name, Straße, Numer, usw. grau sein und alles soll die Schrift "Times New Roaman" haben.
    Ich habe mir ein Paar tutorials angeschaut und schaffe es ein Zeile auszudrucken aber nicht auf einen A5 zettel sondern auf einen ganz normalen A4.

    und ich muss das ohne irgend ein Dialog ausdrucken...

    Wenn mir jemand da helfen würde, würde ich sehr dankebar sein...

    Vielen Dank,
    Ich warte auf eine Antwort.

    Danke
    Lg, error777
  • Ich habe daweil nur das was auch in der Java insel steht...

    Quellcode

    1. static class TextPrintable implements Printable
    2. {
    3. static Font font = new Font( Font.SANS_SERIF, Font.PLAIN, 20 );
    4. public int print( Graphics g, PageFormat pageFormat, int pageIndex )
    5. {
    6. if ( pageIndex >= 2 )
    7. return Printable.NO_SUCH_PAGE;
    8. g.setFont( font );
    9. g.drawString( "Hallo auf Seite " + pageIndex, 100, 100 );
    10. return Printable.PAGE_EXISTS;
    11. }
    12. }
    Alles anzeigen


    also könntest du mir auch da weiter helfen?
  • Ich habe gehofft du nutzt Paper.setSize()

    Quellcode

    1. PrinterJob printJob = PrinterJob.getPrinterJob();
    2. Paper p = new Paper();
    3. p.setSize(419.76,595.44);
    4. PageFormat format = new PageFormat();
    5. format.setPaper(p); //work
    6. printJob.setPrintable(this,format);


    Habe dann doch ein bisschen recherchiert und in dem Link, den ich dir gegeben habe folgendes gesehen:

    For example, if you would like to use A4 paper format and print three copies of your document you will have to create a set of the following attributes implementing the PrintRequestAttributeSet interface:

    Quellcode

    1. PrintRequestAttributeSet attr_set = new HashPrintRequestAttributeSet();
    2. attr_set.add(MediaSize.ISO_A4);
    3. attr_set.add(new Copies(3));


    In deinem Fall würde das also so aussehen:

    Quellcode

    1. PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
    2. printRequestAttributeSet.add(MediaSizeName.ISO_A5);
    3. PrinterJob printJob = PrinterJob.getPrinterJob();
    4. printJob.setPrintable(this);
    5. try{
    6. printJob.print(printRequestAttributeSet);
    7. }


    Ich habe den Code selber auch nicht mit dem Beispiel von Galileocomputing zusammengesetzt. Aber eigentlich sollte nun nichts mehr fehlen.
  • danke hat sehr viel geholfen das mit setSize...

    ich ahbe gegölaubt es get mit was anderes... irgendwas mit
    ISO.A5 oder ISO_A5 in irgendeine klasse das mit M anfäüngt nur ich habe mir das nciht mehr gemerkt...

    ne frage sind die grössen die du angegeben hast, eh für ein A5 blatt???

    wenn ja danke nochmals

    lg
    error777
  • ich habe da noch ne klene frage...
    also ich will jetzt aus einem JTextArea Component die methode getText() anwenden und dass dann printen nur kriege ich vollgendes Problem:

    Sagen wir mein Text ist:

    String text = "Hallo, ich heiße Iosif Miclaus und möchte mich bei Ihnen bewerben. Meine Kenntnisse in Java sind NICHT ausgezeichnet. BLABLA...";

    wenn ich das printe mit g.drawString(); printet er mir nur so viel wie sich das ganze ausgeht. also nut bis Kenntnisse oder so...
    kann man jetzt irgendwie machen dass er dann automatisch einen "\n" macht?? oder dass er zumindest weiss dass dort der seitenrand liegt?

    ich habe schon versucht:

    String text = "Hallo, ich heiße Iosif Miclaus und möchte mich bei Ihnen bewerben. \nMeine Kenntnisse in Java sind NICHT ausgezeichnet. \nBLABLA...";

    mit "\n" geht das nicht...

    wenn du mir da noch helfen könntest wäör das super...

    Danke
    Lg,
    error777
  • Habe hierzu folgendes gefunden:

    [google]java printerjob auto linebreak[/google]

    Quellcode

    1. class DrawingPane extends JPanel {
    2. private int fontSize = 90;
    3. private String message = "Roseindia.net";
    4. private int messageWidth;
    5. public DrawingPane() {
    6. setBackground(Color.white);
    7. Font
    8. font = new Font("Serif", Font.PLAIN, fontSize);
    9. setFont(font);
    10. FontMetrics metrics = getFontMetrics(font);
    11. messageWidth = metrics.stringWidth(message);
    12. int width = messageWidth*5/3;
    13. int height = fontSize*3;
    14. setPreferredSize(new Dimension(width, height));
    15. }
    16. public void paintComponent(Graphics g) {
    17. super.paintComponent(g);
    18. Graphics2D graph = (Graphics2D)g;
    19. int x = messageWidth/10;
    20. int y = fontSize*5/2;
    21. graph.translate(x, y);
    22. graph.setPaint(Color.lightGray);
    23. AffineTransform origTransform = graph.getTransform();
    24. graph.shear(-0.95, 0);
    25. graph.scale(1, 3);
    26. graph.drawString(message, 0, 0);
    27. graph.setTransform(origTransform);
    28. graph.setPaint(Color.black);
    29. graph.drawString(message, 0, 0);
    30. }
    31. }
    Alles anzeigen


    Nimm am besten mal den gesamten Code aus dem Link und versuche ob es damit klappt.