List of usage examples for com.lowagie.text.pdf PdfContentByte createTemplate
public PdfTemplate createTemplate(float width, float height)
From source file:com.compomics.mascotdatfile.research.tool.spectrumviewer.spectrumviewer_gui.Spectrumviewer_gui.java
License:Apache License
/** * This method is called whenever the user clicked the button to export the spectrum to pdf. *///from w w w .j a v a 2s . c o m private void pdfOutputTriggered() { if (dtp != null) { // Looping boolean. boolean lbContinue = true; // Previous selected path. String previousPath = "/"; // The file filter to use. FileFilter filter = new FileFilter() { public boolean accept(File f) { boolean result = false; if (f.isDirectory() || f.getName().endsWith(".pdf")) { result = true; } return result; } public String getDescription() { return "PDF file"; } }; while (lbContinue) { JFileChooser jfc = new JFileChooser(previousPath); jfc.setDialogTitle("Save spectrum panel as PDF file"); jfc.setDialogType(JFileChooser.SAVE_DIALOG); jfc.setFileFilter(filter); int returnVal = jfc.showSaveDialog(this.getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = jfc.getSelectedFile(); // Append the file extension if it is not already there. if (jfc.getFileFilter() == filter && !file.getName().toLowerCase().endsWith(".pdf")) { file = new File(file.getAbsolutePath() + ".pdf"); } // Check for existing file. if (file.exists()) { int reply = JOptionPane.showConfirmDialog(this.getParent(), new String[] { "File '" + file.getAbsolutePath() + "' exists.", "Do you wish to overwrite?" }, "File exists!", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if (reply != JOptionPane.YES_OPTION) { previousPath = file.getParent(); continue; } } // Output to PDF. JPanel jpanSpectrum = dtp.getSpectrumPanel(); float lWidthFloat = (new Double(jpanSpectrum.getSize().getWidth())).floatValue() + 20; float lHeightFloat = (new Double(jpanSpectrum.getSize().getHeight())).floatValue(); int lWidthInt = (new Double(jpanSpectrum.getSize().getWidth())).intValue(); int lHeightInt = (new Double(jpanSpectrum.getSize().getHeight())).intValue(); Document document = new Document(new Rectangle(lWidthInt, lHeightInt)); try { PdfWriter writer; writer = PdfWriter.getInstance(document, new FileOutputStream(file)); document.open(); PdfContentByte cb = writer.getDirectContent(); PdfTemplate tp = cb.createTemplate(lWidthFloat, lHeightFloat); Graphics2D g2; g2 = tp.createGraphicsShapes(lWidthFloat, lHeightFloat); jpanSpectrum.print(g2); g2.dispose(); cb.addTemplate(tp, 0, 0); writer.flush(); JOptionPane.showMessageDialog(this, "Data successfully written to '" + file + "'!", "Output completed!", JOptionPane.INFORMATION_MESSAGE); document.close(); } catch (DocumentException e) { JOptionPane.showMessageDialog(this, new String[] { "Unable to create PDF file!", e.getMessage() }, "Unable to create PDF file!", JOptionPane.WARNING_MESSAGE); } catch (FileNotFoundException e) { // Should never occur. JOptionPane.showMessageDialog(this, new String[] { "Unable to write file!", e.getMessage() }, "Unable to write file!", JOptionPane.WARNING_MESSAGE); } lbContinue = false; } else { lbContinue = false; } } } else { JOptionPane.showMessageDialog(this, "You need to load a datfile and SpectrumPanel first!", "No datfile loaded yet!", JOptionPane.ERROR_MESSAGE); } }
From source file:com.eteks.sweethome3d.swing.HomePDFPrinter.java
License:Open Source License
/** * Writes to <code>outputStream</code> the print of a home in PDF format. *///from w w w . ja v a2 s .c o m public void write(OutputStream outputStream) throws IOException { PageFormat pageFormat = HomePrintableComponent.getPageFormat(this.home.getPrint()); Document pdfDocument = new Document( new Rectangle((float) pageFormat.getWidth(), (float) pageFormat.getHeight())); try { // Get a PDF writer that will write to the given PDF output stream PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument, outputStream); pdfDocument.open(); // Set PDF document description pdfDocument.addAuthor(System.getProperty("user.name", "")); String pdfDocumentCreator = this.preferences.getLocalizedString(HomePDFPrinter.class, "pdfDocument.creator"); pdfDocument.addCreator(pdfDocumentCreator); pdfDocument.addCreationDate(); String homeName = this.home.getName(); if (homeName != null) { pdfDocument.addTitle(this.controller.getContentManager().getPresentationName(homeName, ContentManager.ContentType.PDF)); } PdfContentByte pdfContent = pdfWriter.getDirectContent(); HomePrintableComponent printableComponent = new HomePrintableComponent(this.home, this.controller, this.defaultFont); // Print each page for (int page = 0, pageCount = printableComponent.getPageCount(); page < pageCount; page++) { // Check current thread isn't interrupted if (Thread.interrupted()) { throw new InterruptedIOException(); } PdfTemplate pdfTemplate = pdfContent.createTemplate((float) pageFormat.getWidth(), (float) pageFormat.getHeight()); Graphics g = pdfTemplate.createGraphicsShapes((float) pageFormat.getWidth(), (float) pageFormat.getHeight()); printableComponent.print(g, pageFormat, page); pdfContent.addTemplate(pdfTemplate, 0, 0); g.dispose(); if (page != pageCount - 1) { pdfDocument.newPage(); } } pdfDocument.close(); } catch (DocumentException ex) { IOException exception = new IOException("Couldn't print to PDF"); exception.initCause(ex); throw exception; } catch (InterruptedPrinterException ex) { throw new InterruptedIOException("Print to PDF interrupted"); } catch (PrinterException ex) { IOException exception = new IOException("Couldn't print to PDF"); exception.initCause(ex); throw exception; } }
From source file:com.exam.server.ConvertPDF.java
public static void addPieChart(JFreeChart chart, int width, int height, PdfWriter writer) { // PdfWriter writer = null; // Document document = new Document(); try {/*from w w w . j av a2 s .co m*/ // writer = PdfWriter.getInstance(document, new FileOutputStream( // fileName)); System.out.println("writing pie chart document "); // document.open(); PdfContentByte contentByte = writer.getDirectContent(); PdfTemplate template = contentByte.createTemplate(width, height); Graphics2D graphics2d = template.createGraphics(width, height, new DefaultFontMapper()); Rectangle2D rectangle2d = new Rectangle2D.Double(0, 0, width, height); chart.draw(graphics2d, rectangle2d); graphics2d.dispose(); contentByte.addTemplate(template, 0, 0); } catch (Exception e) { e.printStackTrace(); } System.out.println("writing done:: "); }
From source file:com.rapidminer.gui.actions.export.ImageExporter.java
License:Open Source License
private void exportVectorGraphics(String formatName, File outputFile) throws ImageExportException { Component component = printableComponent.getExportComponent(); int width = component.getWidth(); int height = component.getHeight(); try (FileOutputStream fs = new FileOutputStream(outputFile)) { switch (formatName) { case PDF: // create pdf document with slightly increased width and height // (otherwise the image gets cut off) Document document = new Document(new Rectangle(width + 5, height + 5)); PdfWriter writer = PdfWriter.getInstance(document, fs); document.open();//from w w w . java2 s . c o m PdfContentByte cb = writer.getDirectContent(); PdfTemplate tp = cb.createTemplate(width, height); Graphics2D g2 = tp.createGraphics(width, height, new DefaultFontMapper()); component.print(g2); g2.dispose(); cb.addTemplate(tp, 0, 0); document.close(); break; case SVG: exportFreeHep(component, fs, new SVGGraphics2D(fs, new Dimension(width, height))); break; case EPS: exportFreeHep(component, fs, new PSGraphics2D(fs, new Dimension(width, height))); break; default: // cannot happen break; } } catch (Exception e) { throw new ImageExportException( I18N.getMessage(I18N.getUserErrorMessagesBundle(), "error.image_export.export_failed"), e); } }
From source file:com.trollworks.gcs.character.CharacterSheet.java
License:Open Source License
/** * @param file The file to save to.//from w w w.ja va 2s . c om * @return <code>true</code> on success. */ public boolean saveAsPDF(File file) { HashSet<Row> changed = expandAllContainers(); try { PrintManager settings = mCharacter.getPageSettings(); PageFormat format = settings != null ? settings.createPageFormat() : createDefaultPageFormat(); Paper paper = format.getPaper(); float width = (float) paper.getWidth(); float height = (float) paper.getHeight(); adjustToPageSetupChanges(true); setPrinting(true); com.lowagie.text.Document pdfDoc = new com.lowagie.text.Document( new com.lowagie.text.Rectangle(width, height)); try (FileOutputStream out = new FileOutputStream(file)) { PdfWriter writer = PdfWriter.getInstance(pdfDoc, out); int pageNum = 0; PdfContentByte cb; pdfDoc.open(); cb = writer.getDirectContent(); while (true) { PdfTemplate template = cb.createTemplate(width, height); Graphics2D g2d = template.createGraphics(width, height, new DefaultFontMapper()); if (print(g2d, format, pageNum) == NO_SUCH_PAGE) { g2d.dispose(); break; } if (pageNum != 0) { pdfDoc.newPage(); } g2d.setClip(0, 0, (int) width, (int) height); print(g2d, format, pageNum++); g2d.dispose(); cb.addTemplate(template, 0, 0); } pdfDoc.close(); } return true; } catch (Exception exception) { return false; } finally { setPrinting(false); closeContainers(changed); } }
From source file:com.unicornlabs.kabouter.reporting.PowerReport.java
License:Apache License
public static void GeneratePowerReport(Date startDate, Date endDate) { try {// ww w. j a va 2 s . c o m Historian theHistorian = (Historian) BusinessObjectManager.getBusinessObject(Historian.class.getName()); ArrayList<String> powerLogDeviceIds = theHistorian.getPowerLogDeviceIds(); Document document = new Document(PageSize.A4, 50, 50, 50, 50); File outputFile = new File("PowerReport.pdf"); outputFile.createNewFile(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(outputFile)); document.open(); document.add(new Paragraph("Power Report for " + startDate.toString() + " to " + endDate.toString())); document.newPage(); DecimalFormat df = new DecimalFormat("#.###"); for (String deviceId : powerLogDeviceIds) { ArrayList<Powerlog> powerlogs = theHistorian.getPowerlogs(deviceId, startDate, endDate); double total = 0; double max = 0; Date maxTime = startDate; double average = 0; XYSeries series = new XYSeries(deviceId); XYDataset dataset = new XYSeriesCollection(series); for (Powerlog log : powerlogs) { total += log.getPower(); if (log.getPower() > max) { max = log.getPower(); maxTime = log.getId().getLogtime(); } series.add(log.getId().getLogtime().getTime(), log.getPower()); } average = total / powerlogs.size(); document.add(new Paragraph("\nDevice: " + deviceId)); document.add(new Paragraph("Average Power Usage: " + df.format(average))); document.add(new Paragraph("Maximum Power Usage: " + df.format(max) + " at " + maxTime.toString())); document.add(new Paragraph("Total Power Usage: " + df.format(total))); //Create a custom date axis to display dates on the X axis DateAxis dateAxis = new DateAxis("Date"); //Make the labels vertical dateAxis.setVerticalTickLabels(true); //Create the power axis NumberAxis powerAxis = new NumberAxis("Power"); //Set both axes to auto range for their values powerAxis.setAutoRange(true); dateAxis.setAutoRange(true); //Create the tooltip generator StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator("{0}: {2}", new SimpleDateFormat("yyyy/MM/dd HH:mm"), NumberFormat.getInstance()); //Set the renderer StandardXYItemRenderer renderer = new StandardXYItemRenderer(StandardXYItemRenderer.LINES, ttg, null); //Create the plot XYPlot plot = new XYPlot(dataset, dateAxis, powerAxis, renderer); //Create the chart JFreeChart myChart = new JFreeChart(deviceId, JFreeChart.DEFAULT_TITLE_FONT, plot, true); PdfContentByte pcb = writer.getDirectContent(); PdfTemplate tp = pcb.createTemplate(480, 360); Graphics2D g2d = tp.createGraphics(480, 360, new DefaultFontMapper()); Rectangle2D r2d = new Rectangle2D.Double(0, 0, 480, 360); myChart.draw(g2d, r2d); g2d.dispose(); pcb.addTemplate(tp, 0, 0); document.newPage(); } document.close(); JOptionPane.showMessageDialog(null, "Report Generated."); Desktop.getDesktop().open(outputFile); } catch (FileNotFoundException fnfe) { JOptionPane.showMessageDialog(null, "Unable To Open File For Writing, Make Sure It Is Not Currently Open"); } catch (IOException ex) { Logger.getLogger(PowerReport.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(PowerReport.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:de.atomfrede.tools.evalutation.tools.plot.util.PlotUtil.java
License:Open Source License
protected static void writeChartAsPDF(OutputStream out, JFreeChart chart, int width, int height, FontMapper mapper) throws IOException { Rectangle pagesize = new Rectangle(width, height); Document document = new Document(pagesize, 50, 50, 50, 50); try {//from w w w . j av a2s .c om PdfWriter writer = PdfWriter.getInstance(document, out); document.open(); PdfContentByte cb = writer.getDirectContent(); PdfTemplate tp = cb.createTemplate(width, height); Graphics2D g2 = tp.createGraphics(width, height, mapper); Rectangle2D r2D = new Rectangle2D.Double(0, 0, width, height); chart.draw(g2, r2D); g2.dispose(); cb.addTemplate(tp, 0, 0); } catch (DocumentException de) { System.err.println(de.getMessage()); } document.close(); }
From source file:de.chott.jfreechartsample.service.ChartService.java
/** * Schreibt mehrere JFreeCharts in ein PDF. Fr jedes Chart wird hierbei eine halbe PDF-Seite verwendet. * /* w w w. ja v a 2 s . com*/ * @param charts * @return Das PDF als ByteArray */ private byte[] writeChartsToDocument(JFreeChart... charts) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); float width = PageSize.A4.getWidth(); float height = PageSize.A4.getHeight() / 2; int index = 0; Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, baos); document.open(); PdfContentByte contentByte = writer.getDirectContent(); for (JFreeChart chart : charts) { PdfTemplate template = contentByte.createTemplate(width, height); Graphics2D graphics2D = template.createGraphics(width, height); Rectangle2D rectangle2D = new Rectangle2D.Double(0, 0, width, height); chart.draw(graphics2D, rectangle2D); graphics2D.dispose(); contentByte.addTemplate(template, 0, height - (height * index)); index++; } writer.flush(); document.close(); return baos.toByteArray(); } catch (Exception ex) { Logger.getLogger(ChartService.class.getName()).log(Level.SEVERE, null, ex); } return null; }
From source file:de.d3web.empiricaltesting.casevisualization.jung.JUNGCaseVisualizer.java
License:Open Source License
/** * Streams the graph to an OutputStream (useful for web requests!) * /*from w ww . j av a2 s . co m*/ * @param cases List<SequentialTestCase> cases * @param outStream OutputStream */ @Override public void writeToStream(java.util.List<SequentialTestCase> cases, java.io.OutputStream outStream) throws IOException { init(cases); int w = vv.getGraphLayout().getSize().width; int h = vv.getGraphLayout().getSize().height; Document document = new Document(); try { PdfWriter writer = PdfWriter.getInstance(document, outStream); document.setPageSize(new Rectangle(w, h)); document.open(); PdfContentByte cb = writer.getDirectContent(); PdfTemplate tp = cb.createTemplate(w, h); Graphics2D g2 = tp.createGraphics(w, h); paintGraph(g2); g2.dispose(); tp.sanityCheck(); cb.addTemplate(tp, 0, 0); cb.sanityCheck(); document.close(); } catch (DocumentException e) { throw new IOException("Error while writing to file. The file was not created. ", e); } }
From source file:de.dfki.owlsmx.gui.util.Converter.java
License:Open Source License
public static void convertToPdf(JFreeChart chart, int width, int height, String filename) { // step 1 Document document = new Document(new Rectangle(width, height)); try {//from w ww .j a v a2 s . c om // step 2 PdfWriter writer; writer = PdfWriter.getInstance(document, new FileOutputStream(filename)); // step 3 document.open(); // step 4 PdfContentByte cb = writer.getDirectContent(); PdfTemplate tp = cb.createTemplate(width, height); Graphics2D g2d = tp.createGraphics(width, height, new DefaultFontMapper()); Rectangle2D r2d = new Rectangle2D.Double(0, 0, width, height); chart.draw(g2d, r2d); g2d.dispose(); cb.addTemplate(tp, 0, 0); } catch (DocumentException de) { } catch (FileNotFoundException e) { } // step 5 document.close(); }