Annonceindlæg fra Pointsharp
Jeps - i før lige hele min kode: *********************************** package CVR.Print; import CVR.Lang.ILanguage; import CVR.IO.Sheet; import CVR.Events.MsgBox; import CVR.Log.Logger; import java.util.Date; import java.awt.*; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.io.OutputStream; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.File; import java.text.SimpleDateFormat; import java.text.Format; import javax.swing.table.TableModel; import org.jfree.report.*; import org.jfree.report.function.*; import org.jfree.report.style.FontDefinition; import org.jfree.report.style.ElementStyleSheet; import org.jfree.report.elementfactory.TextFieldElementFactory; import org.jfree.report.elementfactory.LabelElementFactory; import org.jfree.report.elementfactory.StaticShapeElementFactory; import org.jfree.report.elementfactory.NumberFieldElementFactory; import org.jfree.ui.FloatDimension; import org.jfree.report.modules.output.pageable.pdf.PDFOutputTarget; import org.jfree.report.modules.output.pageable.base.PageableReportProcessor; public class PrinttoPdf extends Printer { //private Vector data; private Point2D firmname = new Point2D.Float(0, 0); private int firmnameMaxLength = 138; private Point2D addres = new Point2D.Float(140, 0); private int adressMaxLength = 113; private Point2D zip = new Point2D.Float(255, 0); private int zipMaxLength = 33; private Point2D district = new Point2D.Float(290, 0); private int disstrictMaxLength = 73; private Point2D phone = new Point2D.Float(365, 0); private int phoneMaxLength = 58; private Point2D cvr = new Point2D.Float(410, 0); private int cvrMaxLength = 58; private String nullString = "?"; private TableModel model; private JFreeReport report; //private Sheet sheet; private ILanguage language; private String filename; public PrinttoPdf(ILanguage language, String filename) { this.language = language; this.filename = filename.endsWith(".pdf") ? filename : filename + ".pdf"; } private PageHeader createPageHeader () { final PageHeader header = new PageHeader(); header.getStyle().setStyleProperty(ElementStyleSheet.MINIMUMSIZE, new FloatDimension(0, 18)); header.getStyle().setFontDefinitionProperty(new FontDefinition("Serif", 10)); header.setDisplayOnFirstPage(true); header.setDisplayOnLastPage(true); header.addElement(StaticShapeElementFactory.createRectangleShapeElement(null, Color.black, null, new Rectangle2D.Float(0, 0, -100, -60), true, false)); header.addElement(StaticShapeElementFactory.createRectangleShapeElement(null, Color.decode("#AFAFAF"), null,new Rectangle2D.Float(0, 0, -100, -60),false, true)); LabelElementFactory factory = new LabelElementFactory(); factory.setAbsolutePosition(firmname); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setText(model.getColumnName(0)); header.addElement(factory.createElement()); factory = new LabelElementFactory(); factory.setAbsolutePosition(addres); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setText(model.getColumnName(1)); header.addElement(factory.createElement()); factory = new LabelElementFactory(); factory.setAbsolutePosition(zip); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setText(model.getColumnName(2)); header.addElement(factory.createElement()); factory = new LabelElementFactory(); factory.setAbsolutePosition(district); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setText(model.getColumnName(3)); header.addElement(factory.createElement()); factory = new LabelElementFactory(); factory.setAbsolutePosition(phone); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setText(model.getColumnName(4)); header.addElement(factory.createElement()); factory = new LabelElementFactory(); factory.setAbsolutePosition(cvr); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setText(model.getColumnName(5)); header.addElement(factory.createElement()); return header; } private PageFooter createPageFooter () { final PageFooter pageFooter = new PageFooter(); pageFooter.getStyle().setStyleProperty(ElementStyleSheet.MINIMUMSIZE, new FloatDimension(0, 30)); pageFooter.getStyle().setFontDefinitionProperty(new FontDefinition("Dialog", 10)); pageFooter.addElement(StaticShapeElementFactory.createRectangleShapeElement(null, Color.decode("#AFAFAF"), null,new Rectangle2D.Float(0, 0, -100, -60),false, true)); pageFooter.addElement(StaticShapeElementFactory.createRectangleShapeElement(null, Color.black, null, new Rectangle2D.Float(0, 0, -100, -60), true, false)); LabelElementFactory factory = new LabelElementFactory(); factory.setAbsolutePosition(new Point2D.Float(5, 5)); factory.setMinimumSize(new FloatDimension(-100, 0)); factory.setHorizontalAlignment(ElementAlignment.RIGHT); factory.setVerticalAlignment(ElementAlignment.BOTTOM); factory.setDynamicHeight(Boolean.TRUE); factory.setText(getDescription()); pageFooter.addElement(factory.createElement()); factory = new LabelElementFactory(); Format formatter = new SimpleDateFormat("dd MMMM yyyy HH:mm:ss"); factory.setAbsolutePosition(new Point2D.Float(0, 5)); factory.setMinimumSize(new FloatDimension(-100, 0)); factory.setHorizontalAlignment(ElementAlignment.CENTER); factory.setVerticalAlignment(ElementAlignment.BOTTOM); factory.setDynamicHeight(Boolean.TRUE); factory.setText(formatter.format(new Date())); pageFooter.addElement(factory.createElement()); PageFunction pf = new PageFunction("PAGE_NUMBER"); PageTotalFunction ptf = new PageTotalFunction(); TextFormatExpression pageNofM = new TextFormatExpression(); pageNofM.setName("PAGE_N_OF_M"); pageNofM.setPattern("Page {0}/{1}"); pageNofM.setField(0, "PAGE_NUMBER"); pageNofM.setField(1, "TOTAL_PAGES"); ptf.setName("TOTAL_PAGES"); report.addExpression(pf); report.addExpression(ptf); report.addExpression(pageNofM); TextFieldElementFactory tff = new TextFieldElementFactory(); tff.setName("PageIndicator"); tff.setMinimumSize(new FloatDimension(60.0f, 15.0f)); tff.setHorizontalAlignment(ElementAlignment.LEFT); tff.setVerticalAlignment(ElementAlignment.BOTTOM); tff.setFieldname("PAGE_N_OF_M"); pageFooter.addElement(tff.createElement()); return pageFooter; } private JFreeReport createReportDefinition () { JFreeReportBoot.getInstance().start(); JFreeReport report = new JFreeReport(); report.setName(filename); TextFieldElementFactory factory = new TextFieldElementFactory(); factory.setAbsolutePosition(this.firmname); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setNullString(nullString); factory.setFieldname(model.getColumnName(0)); factory.setMaximumSize(new FloatDimension(this.firmnameMaxLength, 12)); report.getItemBand().addElement(factory.createElement()); factory = new TextFieldElementFactory(); factory.setAbsolutePosition(this.addres); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setNullString(nullString); factory.setFieldname(model.getColumnName(1)); factory.setMaximumSize(new FloatDimension(this.adressMaxLength, 12)); report.getItemBand().addElement(factory.createElement()); factory = new TextFieldElementFactory(); factory.setAbsolutePosition(this.zip); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setNullString(nullString); factory.setFieldname(model.getColumnName(2)); factory.setMaximumSize(new FloatDimension(this.zipMaxLength, 12)); report.getItemBand().addElement(factory.createElement()); factory = new TextFieldElementFactory(); factory.setAbsolutePosition(this.district); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setNullString(nullString); factory.setFieldname(model.getColumnName(3)); factory.setMaximumSize(new FloatDimension(this.disstrictMaxLength, 12)); report.getItemBand().addElement(factory.createElement()); factory = new TextFieldElementFactory(); factory.setAbsolutePosition(this.phone); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setNullString(nullString); factory.setFieldname(model.getColumnName(4)); factory.setMaximumSize(new FloatDimension(this.phoneMaxLength, 12)); report.getItemBand().addElement(factory.createElement()); factory = new TextFieldElementFactory(); factory.setAbsolutePosition(this.cvr); factory.setMinimumSize(new FloatDimension(150, 12)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setNullString(nullString); factory.setFieldname(model.getColumnName(5)); factory.setMaximumSize(new FloatDimension(this.cvrMaxLength, 12)); report.getItemBand().addElement(factory.createElement()); return report; } public String getDescription () { String temp = Sheet.instance().getFilename(); if(!temp.endsWith(".xls")) { String file[] = temp.split("\\."); return file[0]+".xls"; } else return temp; } public void Print() { report = createReportDefinition(); report.setData(model); report.setPageFooter(this.createPageFooter()); report.setPageHeader(this.createPageHeader()); savePDF(report); } public TableModel getdata() { model = Sheet.instance().getModel(); return model; } public boolean savePDF (final JFreeReport report) { OutputStream out = null; try { out = new BufferedOutputStream(new FileOutputStream(new File(filename))); final PDFOutputTarget target = new PDFOutputTarget(out); target.configure(report.getReportConfiguration()); target.open(); final PageableReportProcessor proc = new PageableReportProcessor(report); proc.setOutputTarget(target); proc.processReport(); target.close(); return true; } catch (Exception e) { new MsgBox(language.getText("error"),language.getText("fileopen"),false); Logger.Log(e,Logger.WRITE); return false; } finally { try { if (out != null) { out.close(); } } catch (Exception e) { Logger.Log(e,Logger.WRITE); } } } } *********************