/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Printing-knas
Fra : Janus


Dato : 06-08-02 13:38

Hejsa!
Jeg vil rigtig gerne ha' printet noget tekst ud, og efter lidt søgen og
higen, er jeg kommet frem til nedenstående kode. Det virker sådanset
fint nok, bortset fra 2 ting:

1) Jeg kan ikke få printeren til at skrive ud i den font, jeg sætter på
Graphics2D objektet. Det kunne jeg godt tænke mig at ændre lidt på...

2) Hvis der er danske karakterer i teksten, sker der ting og sager: æ
kan printes ud, ø bliver til firkanter, og alle f'erne i teksten bliver
skrevet ud med en meget mindre font... ja, du læste rigtigt, f'erne har
et helt andet udseende end de andre bogstaver på printet. Hvad er det
lige der sker?

Det første er klart det vigtigste, da jeg alligevel ikke skal skrive
danske karakterer ud, men det ville være rart, hvis der var en eller
anden der kunne svare på begge spørgsmål.

....

PrinterJob printerJob = PrinterJob.getPrinterJob();
printerJob.setPrintable(this);
printerJob.print();

....

public int print(Graphics g, PageFormat format, int pageIndex) {

AttributedString text = new AttributedString(tempText);
Graphics2D g2d = (Graphics2D)g;

// set the font
g2d.setFont(new java.awt.Font("Helvetica", java.awt.Font.PLAIN,
10));
g2d.translate(format.getImageableX(), format.getImageableY());
g2d.setPaint(Color.black);
Point2D.Float pen = new Point2D.Float();
AttributedCharacterIterator charIterator = text.getIterator();
LineBreakMeasurer measurer = new LineBreakMeasurer(charIterator,
g2d.getFontRenderContext());
float wrappingWidth = (float) format.getImageableWidth();
while (measurer.getPosition() < charIterator.getEndIndex()) {
TextLayout layout = measurer.nextLayout(wrappingWidth);
pen.y += layout.getAscent();
layout.draw(g2d, pen.x, pen.y);
pen.y += layout.getDescent() + layout.getLeading();
}
return Printable.PAGE_EXISTS;
}


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

 
 
Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste