<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Dringende Java-Dau-Probs...</title>
    <link>http://forum.geizhals.at/feed.jsp?id=461179</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(6): Dringende Java-Dau-Probs...</title>
      <link>http://forum.geizhals.at/t461179,3805827.html#3805827</link>
      <description>Ahem ?&lt;br&gt;&lt;br&gt;Also von der Idee her:&lt;br&gt;1.) hole ich mein pageFormat mal mit private static PageFormat pageFormat = printerJob.defaultPage();&lt;br&gt;2.) setze ich das pageFormat mit &lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
&#xD;
		Paper paper = pageFormat.getPaper();&#xD;
		EtikettenFormat etikettenFormat = Zustaende.getEtikettenFormat();&#xD;
		&#xD;
		paper.setImageableArea(&#xD;
				etikettenFormat.getEtikettLinkerRandInPoints(), &#xD;
				etikettenFormat.getEtikettObererRandInPoints(),&#xD;
				etikettenFormat.getEtikettBreiteInPoints(),&#xD;
				etikettenFormat.getEtikettHoeheInPoints()&#xD;
				);&#xD;
		pageFormat.setPaper(paper);&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;3.) Ich rufe &lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;pageFormat = printerJob.pageDialog(pageFormat);&lt;/pre&gt;&lt;/div&gt; auf - aus einem Menü - und erhalte meinen Seiteneinstellungsdialog... Dort ändere ich zB den Linken und Oberen Rand auf 2mm.&lt;br&gt;&lt;br&gt;4.) Wenn nochmals derselbe pageDialog() aufgerufen wird, erhalte ich andere Zahlen drinnen - zB 2,12mm links und 1,06mm oben... &lt;img src="sad.gif" width="16" height="19" align="absmiddle" alt=":-("/&gt;.&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 29 Nov 2006 16:40:07 GMT</pubDate>
      <guid>http://forum.geizhals.at/t461179,3805827.html#3805827</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-29T16:40:07Z</dc:date>
    </item>
    <item>
      <title>Re: Dringende Java-Dau-Probs...</title>
      <link>http://forum.geizhals.at/t461179,3805783.html#3805783</link>
      <description>Zu Problem 2 - ich habe für ein Projekt den Rechnungsdruck in Form von PDFs mit Hilfe von JAVA/iText umgesetzt. Spannend ist es dann geworden auch die Markierungen für das Falten der Rechnungen zu setzen ( 2 Markierungen - Faltung mittig/ Faltung 3-fach). Machen wir es kurz - wir haben dann ein Menü eingeführt - um den Versatz/Seitenränder der verschienden Drucker in Form von Druckerdefinition handhaben zu können. Mit diesen Korrekturwerten hat es dann geklappt.&lt;br/&gt;</description>
      <pubDate>Wed, 29 Nov 2006 16:14:15 GMT</pubDate>
      <guid>http://forum.geizhals.at/t461179,3805783.html#3805783</guid>
      <dc:creator>nergal</dc:creator>
      <dc:date>2006-11-29T16:14:15Z</dc:date>
    </item>
    <item>
      <title>Re(4): Dringende Java-Dau-Probs...</title>
      <link>http://forum.geizhals.at/t461179,3805766.html#3805766</link>
      <description>Ich habe leider nur PDF zum Testen...&lt;br&gt;&lt;br&gt;Also IMHO ist die Printing-Gschicht noch so eine zu der J2ME-Gschicht oder der JTree-Gschicht oder der HTTPS-Gschicht, wo Otto-NormalDAU wie ich draufkommt, daß Java doch net so gaaaaaaanz DAU-sicher ist &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;.&lt;br&gt;&lt;br&gt;Also mein Problem scheint folgendes:&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
	public static void setzePaperNachEtikettenFormat()&#xD;
	{&#xD;
		Paper paper = pageFormat.getPaper();&#xD;
		EtikettenFormat etikettenFormat = Zustaende.getEtikettenFormat();&#xD;
		&#xD;
		paper.setImageableArea(&#xD;
				etikettenFormat.getEtikettLinkerRandInPoints(), &#xD;
				etikettenFormat.getEtikettObererRandInPoints(),&#xD;
				etikettenFormat.getEtikettBreiteInPoints(),&#xD;
				etikettenFormat.getEtikettHoeheInPoints()&#xD;
				);&#xD;
		pageFormat.setPaper(paper);&#xD;
	}	&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;klappt fein. Keine Randprobleme auf dem PDF-Drucker.&lt;br&gt;&lt;br&gt;Beim manuellen Einstellen via &lt;br&gt;&lt;div class=code&gt;&lt;pre&gt; pageFormat = printerJob.pageDialog(pageFormat); &lt;/pre&gt;&lt;/div&gt; gibts aber massive Probs...&lt;br&gt;&lt;br&gt;Gibt's da eine Limitierung von dem ???&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 29 Nov 2006 15:59:59 GMT</pubDate>
      <guid>http://forum.geizhals.at/t461179,3805766.html#3805766</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-29T15:59:59Z</dc:date>
    </item>
    <item>
      <title>Re(2): Dringende Java-Dau-Probs...</title>
      <link>http://forum.geizhals.at/t461179,3805710.html#3805710</link>
      <description>Hi Nagelfar !&lt;br&gt;&lt;br&gt;Auf Dich habe ich eh gehofft &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;.&lt;br&gt;&lt;br&gt;ad 1: YUP, das wars... Danke.&lt;br&gt;Was ist eigentlich die Default DefaulClosingOperation ? HIDE_ON_CLOSE ?&lt;br&gt;Super jedenfalls!!!! DANKE!!!&lt;br&gt;&lt;br&gt;ad 2:&lt;br&gt;Ziel ist jedenfalls diverse Etikettendrucker anzusteuern.&lt;br&gt;Ich habe mir das so gedacht:&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
public class EtikettenDruck implements Printable {&#xD;
	&#xD;
	private static PrinterJob printerJob = PrinterJob.getPrinterJob();&#xD;
	private static PageFormat pageFormat = printerJob.defaultPage();&#xD;
&#xD;
	private static final int ETIKETT_FONTSIZE=14;&#xD;
	&#xD;
	private static int jobNr = 0;&#xD;
....&#xD;
&#xD;
	&#xD;
	public static void showPrinterDialog() {&#xD;
		printerJob.printDialog();&#xD;
	}&#xD;
&#xD;
	public static void showPageDialog() {&#xD;
		pageFormat = printerJob.pageDialog(pageFormat);&#xD;
	}&#xD;
&#xD;
	public static void setzePaperNachEtikettenFormat()&#xD;
	{&#xD;
		Paper paper = pageFormat.getPaper();&#xD;
		EtikettenFormat etikettenFormat = Zustaende.getEtikettenFormat();&#xD;
		&#xD;
		paper.setImageableArea(&#xD;
				etikettenFormat.getEtikettLinkerRandInPoints(), &#xD;
				etikettenFormat.getEtikettObererRandInPoints(),&#xD;
				etikettenFormat.getEtikettBreiteInPoints(),&#xD;
				etikettenFormat.getEtikettHoeheInPoints()&#xD;
				);&#xD;
		pageFormat.setPaper(paper);&#xD;
	}	&#xD;
...&#xD;
	public int print(Graphics g, PageFormat pageformat, int page)&#xD;
	{&#xD;
		float wrappingWidth;&#xD;
		EtikettenFormat etikettenFormat = Zustaende.getEtikettenFormat();&#xD;
			&#xD;
		if ( page &amp;gt;= seitenanzahl)&#xD;
			return Printable.NO_SUCH_PAGE;&#xD;
					&#xD;
		Point2D point = new Point2D.Float();&#xD;
		Font boldFont = new Font("Monospaced", Font.BOLD, ETIKETT_FONTSIZE);&#xD;
		Font normFont = new Font("Monospaced", Font.PLAIN, ETIKETT_FONTSIZE);&#xD;
		&#xD;
		wrappingWidth = etikettenFormat.getEtikettBreiteInPoints();&#xD;
				&#xD;
		point.setLocation(etikettenFormat.getEtikettLinkerRandInPoints(),etikettenFormat.getEtikettObererRandInPoints());&#xD;
		&#xD;
		Graphics2D g2d = (Graphics2D) g;&#xD;
		&#xD;
		g2d.setColor(Color.BLACK);&#xD;
		&#xD;
		g2d.setFont(boldFont);&#xD;
		schreibWrappedText(this.plz + "-" + this.ort + " " + this.tour, g2d, (Point2D.Float) point, wrappingWidth);&#xD;
		&#xD;
		g2d.setFont(normFont);&#xD;
		schreibWrappedText(this.firma, g2d, (Point2D.Float) point, wrappingWidth);&#xD;
		schreibWrappedText(this.adresse, g2d, (Point2D.Float) point, wrappingWidth);&#xD;
&#xD;
		ZeichneBarcode.zeichne(g2d, this.sendungsnummer,(int)point.getX(), (int) point.getY(), normFont.getSize()*2); &#xD;
&#xD;
		/*&#xD;
		 * Barcode draufklatschen&#xD;
		 */&#xD;
		//ZeichneBarcode.zeichne(g, this.sendungsnummer,xpos,ypos);&#xD;
		&#xD;
		//return Printable.PAGE_EXISTS;&#xD;
		return PAGE_EXISTS;&#xD;
	}&#xD;
	private void schreibWrappedText(String text, Graphics2D g2d, Point2D.Float point, float wrappingWidth)	&#xD;
	{	&#xD;
		AttributedString as = new AttributedString(text);&#xD;
		as.addAttribute(TextAttribute.FONT, g2d.getFont());&#xD;
		AttributedCharacterIterator styledText = as.getIterator();&#xD;
		LineBreakMeasurer measurer = new LineBreakMeasurer(styledText, g2d.getFontRenderContext());&#xD;
		&#xD;
		float x = (float) point.getX();&#xD;
		float y = (float) point.getY();&#xD;
		&#xD;
		while (measurer.getPosition() &amp;lt; styledText.getEndIndex()) {&#xD;
	    	TextLayout layout = measurer.nextLayout(wrappingWidth);&#xD;
&#xD;
	         y += (layout.getAscent());&#xD;
	         float dx = layout.isLeftToRight() ?&#xD;
	             0 : (wrappingWidth - layout.getAdvance());&#xD;
&#xD;
	         layout.draw(g2d, x + dx, y);&#xD;
	         y += layout.getDescent() + layout.getLeading();&#xD;
	     }&#xD;
		point.setLocation(x,y);		&#xD;
	}&#xD;
}&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Grundsätzlich startet die App (natürlich parametrisierbar) mit dem Standarddrucker und einem Etikettenformat - und ruft setzePaperNachEtikettenFormat() auf. &lt;br&gt;&lt;br&gt;Ich konnte das Problem mal wie folgt einschränken:&lt;br&gt;&lt;br&gt;Das Umsetzen des Etikettenformats klappt mal soweit - selbst wenn ich in meinen Etikettenformaten nur 1mm Randabstand habe...&lt;br&gt;&lt;br&gt;AAAABER:&lt;br&gt;Wenn man das ganze über showPageDialog macht - klappts nicht.&lt;br&gt;Wenn man dort 1mm "manuell" einstellt - und es nochmal aufruft - kommen wieder 10mm... ARGH!&lt;br&gt;Ist das nur ein Problem von dem Systemabhängigen Userinterface ???&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 29 Nov 2006 15:41:13 GMT</pubDate>
      <guid>http://forum.geizhals.at/t461179,3805710.html#3805710</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-29T15:41:13Z</dc:date>
    </item>
    <item>
      <title>Dringende Java-Dau-Probs...</title>
      <link>http://forum.geizhals.at/t461179,3805644.html#3805644</link>
      <description>Hi !&lt;br&gt;&lt;br&gt;Erhänge mich mit 2 einfachen Probs... Brauch sie leider heute &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;.&lt;br&gt;&lt;br&gt;1.) WindowClosing:&lt;br&gt;Gedacht ist folgendes:&lt;br&gt;Es gibt ein "Hauptfenster", in dem sich der Benutzer bewegt.&lt;br&gt;Dann gibt's einen WindowClosingAdapter:&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
public class WindowClosingAdapter extends WindowAdapter {&#xD;
	private boolean dispose=false;&#xD;
	private boolean exitSystem = false;&#xD;
	private String warntext = null;&#xD;
	.....&#xD;
	public void windowClosing(WindowEvent e) {&#xD;
		Window w = e.getWindow();&#xD;
		&#xD;
		if (this.warntext != null &amp;amp;&amp;amp; this.warne) {&#xD;
			if ( JOptionPane.showConfirmDialog(w,warntext, "Warnung", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {&#xD;
				return;&#xD;
			}&#xD;
			System.out.println("Soll beenden");&#xD;
		}&#xD;
		&#xD;
		&#xD;
		w.setVisible(false);&#xD;
		&#xD;
		if (this.dispose){&#xD;
			w.dispose();&#xD;
		}			&#xD;
		&#xD;
		if (this.exitSystem) {&#xD;
			System.exit(0);&#xD;
		}&#xD;
	}&#xD;
}&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;Dabei habe ich mir folgendes gedacht - hier darf gelacht werden:&lt;br&gt;Die windowClosing-Methode ist verantwortlich für das schließen von Fenstern - und muß selbst setVisible/dispose/... aufrufen. &lt;br&gt;Dieser Adapter wird via addWindowListener() eingebunden.&lt;br&gt;&lt;br&gt;Mein Problem:&lt;br&gt;Ich wollte, daß der Abbruch eben nicht erfolgt, wenn man auf "NO" klickt... Trotzdem wird das Fenster unsichtbar - wieso ???&lt;br&gt;&lt;br&gt;2.) Druck:&lt;br&gt;Irgendwie bekomme ich auf den PDF-Drucker keine Seitenränder kleiner als 1cm hin... Liegt das am Adobe-PDF-Drucker ??? &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 29 Nov 2006 15:12:42 GMT</pubDate>
      <guid>http://forum.geizhals.at/t461179,3805644.html#3805644</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-29T15:12:42Z</dc:date>
    </item>
  </channel>
</rss>
