Example usage for com.lowagie.text.pdf PdfContentByte createTemplate

List of usage examples for com.lowagie.text.pdf PdfContentByte createTemplate

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfContentByte createTemplate.

Prototype

public PdfTemplate createTemplate(float width, float height) 

Source Link

Document

Creates a new template.

Usage

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();
}