Hallo,
ich bastel gerade für einen Lebeldrucker eine kleine Anwendung. Aber langsam bin ich am verzweifeln weil die Ausdrucke immer falsch sind und mir die Ideen ausgehen.
Egal wie ich es versuche die Seite kommt immer als Portrait Ausrichtung aus dem Drucker raus.
Ich hab mal ein Bild angehängt. Das Oberste Label ist richtig (genaue rand Justierung bitte ignorieren). Dort hab ich als Drucker einen PDF Drucker ausgewählt und es anschließend dann zum Drucker geschickt.
Die zwei Label darunter ist das wenn ich direkt zum Labeldrucker schicke, man sieht das Format ist richtig, der Text ist richtig, aber es ist Hochkant und nutzt zwei seiten. Das ist übrigend auch beim PDF Drucker so das es dieser Art ausgerichtet ist (Text Ausrichtung, und größe stimmt), nur dreht der Acrobat es beim Drucken wohl passend.
Es scheint auch keinen unterschied zu machen sowohl beim Drucker als auch PDF wie ich die Seitenausrichtung im Druckertreiber einstelle.
Ich hab noch mal ein bisschen getestet, es schient egal zu sein was ich beim PageFormat einstelle, es ändert zwar den druckbaren bereich und die ausrichtung. Aber nicht das Seitenformat, das ist immer 74x105mm. Es scheint mir also so als müsse es noch eine andere stelle geben wo ich das physikalische Seitenformat festlege.
Hoffe mir kann jemand einen Tip geben woran es liegt
ich bastel gerade für einen Lebeldrucker eine kleine Anwendung. Aber langsam bin ich am verzweifeln weil die Ausdrucke immer falsch sind und mir die Ideen ausgehen.
Egal wie ich es versuche die Seite kommt immer als Portrait Ausrichtung aus dem Drucker raus.
Ich hab mal ein Bild angehängt. Das Oberste Label ist richtig (genaue rand Justierung bitte ignorieren). Dort hab ich als Drucker einen PDF Drucker ausgewählt und es anschließend dann zum Drucker geschickt.
Die zwei Label darunter ist das wenn ich direkt zum Labeldrucker schicke, man sieht das Format ist richtig, der Text ist richtig, aber es ist Hochkant und nutzt zwei seiten. Das ist übrigend auch beim PDF Drucker so das es dieser Art ausgerichtet ist (Text Ausrichtung, und größe stimmt), nur dreht der Acrobat es beim Drucken wohl passend.
Es scheint auch keinen unterschied zu machen sowohl beim Drucker als auch PDF wie ich die Seitenausrichtung im Druckertreiber einstelle.
Ich hab noch mal ein bisschen getestet, es schient egal zu sein was ich beim PageFormat einstelle, es ändert zwar den druckbaren bereich und die ausrichtung. Aber nicht das Seitenformat, das ist immer 74x105mm. Es scheint mir also so als müsse es noch eine andere stelle geben wo ich das physikalische Seitenformat festlege.
Hoffe mir kann jemand einen Tip geben woran es liegt
Java:
import java.awt.print.*;
public class Start {
PrinterJob job;
public static void main(String[] args) {
PrintObject po =new PrintObject();
Start start=new Start();
start.run();
}
Paper setPapersize(Paper paper, double horizontalCM, double vertikalCM, double randCM){
double inchtocm = 2.54d;
double dpi=72d;
double breiteInPixel=(horizontalCM/inchtocm)*dpi;
double hoeheInPixel= (vertikalCM/inchtocm)*dpi;
double randInPixel= (randCM/inchtocm)*dpi;
paper.setSize(hoeheInPixel,breiteInPixel);
paper.setImageableArea(randInPixel, randInPixel, hoeheInPixel-randInPixel, breiteInPixel-randInPixel);
return paper;
}
public void run(){
job=PrinterJob.getPrinterJob();
PageFormat pf=job.defaultPage();
System.out.println(pf.getWidth());
pf.setPaper(setPapersize(pf.getPaper(), 10.5d, 7.4d, 1d));
//pf.setPaper(setPapersize(pf.getPaper(), 7.4d, 10.5d, 1d));
pf.setOrientation(PageFormat.LANDSCAPE);
System.out.println("Breite: "+pf.getWidth()+" ## "+pf.getImageableWidth());
System.out.println("Hoehe: "+pf.getHeight()+" ## "+pf.getImageableHeight());
Book book= new Book();
book.append(new PrintObject(), pf);
job.setPageable(book);
boolean doPrint = false;
doPrint=job.printDialog();
if (doPrint) {
try {
job.print();
} catch (PrinterException e) {
// The job did not successfully
// complete
}
}
}
}
Java:
import java.awt.*;
import java.awt.print.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class PrintObject implements Printable{
@Override
public int print(Graphics gx, PageFormat pf, int page)
throws PrinterException {
if (page>0){
return NO_SUCH_PAGE;
}
Graphics2D g=(Graphics2D)gx;
g.translate(pf.getImageableX(),pf.getImageableY()); // 0/0 verlegen das es mit dem Beschreibbaren raum übereinstimmt -12
//printFooter(g,0,430);
System.out.println("Landscape: "+PageFormat.LANDSCAPE+" Orient: "+pf.getOrientation());
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
g.drawRect(0, 0, (int)pf.getImageableWidth(), (int)pf.getImageableHeight());
g.drawString("Test - "+ sdf.format(cal.getTime()), 10, 10);
return PAGE_EXISTS;
}
}
Anhänge
Zuletzt bearbeitet: