Java源码示例:com.itextpdf.awt.DefaultFontMapper
示例1
/**
* Exports the specified JFreeChart to a PDF file using
* <a href="http://itextpdf.com" target="_blank">iText</a>, bundled with
* Fiji. The destination file is specified by the user in a save dialog
* prompt. An error message is displayed if the file could not be saved.
* Does nothing if {@code chart} is {@code null}.
*
* @param chart
* the <a href="http://javadoc.imagej.net/JFreeChart/" target=
* "_blank">JFreeChart </a> to export.
* @param bounds
* the Rectangle delimiting the boundaries within which the chart
* should be drawn.
* @see #exportChartAsPDF(JFreeChart, Rectangle)
* @see #exportChartAsSVG(JFreeChart, Rectangle)
* @see #exportChartAsSVG(JFreeChart, Rectangle, File)
*/
public static void exportChartAsPDF(final JFreeChart chart, final Rectangle bounds, final File f)
throws FileNotFoundException, DocumentException {
final int margin = 0; // page margins
// Initialize writer
final Document document = new Document(new com.itextpdf.text.Rectangle(bounds.width, bounds.height), margin,
margin, margin, margin);
final PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(f));
document.open();
final PdfContentByte cb = writer.getDirectContent();
final PdfTemplate tp = cb.createTemplate(bounds.width, bounds.height);
// Draw the chart. Release resources upon completion
final Graphics2D g2 = tp.createGraphics(bounds.width, bounds.height, new DefaultFontMapper());
chart.draw(g2, bounds);
g2.dispose();
// Write to file
cb.addTemplate(tp, 0, 0);
document.close();
}
示例2
/**
* Writes swing to pdf
*
* @param panel
* @param fileName
* @throws DocumentException
* @throws Exception
*/
public static void writeToPDF(JComponent panel, File fileName)
throws IOException, DocumentException {
// print the panel to pdf
int width = panel.getWidth();
int height = panel.getHeight();
logger.info(
() -> MessageFormat.format("Exporting panel to PDF file (width x height; {0} x {1}): {2}",
width, height, fileName.getAbsolutePath()));
Document document = new Document(new Rectangle(width, height));
PdfWriter writer = null;
try {
writer = PdfWriter.getInstance(document, new FileOutputStream(fileName));
document.open();
PdfContentByte contentByte = writer.getDirectContent();
PdfTemplate template = contentByte.createTemplate(width, height);
Graphics2D g2 = new PdfGraphics2D(contentByte, width, height, new DefaultFontMapper());
panel.print(g2);
g2.dispose();
contentByte.addTemplate(template, 0, 0);
document.close();
writer.close();
} finally {
if (document.isOpen()) {
document.close();
}
}
}
示例3
/**
* This method saves a chart as a PDF with given dimensions
*
* @param chart
* @param width
* @param height
* @param fileName is a full path
*/
public static void writeChartToPDF(JFreeChart chart, int width, int height, File fileName)
throws Exception {
PdfWriter writer = null;
Document document = new Document(new Rectangle(width, height));
try {
writer = PdfWriter.getInstance(document, new FileOutputStream(fileName));
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();
throw e;
} finally {
document.close();
}
}
示例4
/**
* This method saves a chart as a PDF with given dimensions
*
* @param chart
* @param width
* @param height
* @param fileName is a full path
*/
public static void writeChartToPDF(JFreeChart chart, int width, int height, File fileName)
throws Exception {
PdfWriter writer = null;
Document document = new Document(new Rectangle(width, height));
try {
writer = PdfWriter.getInstance(document, new FileOutputStream(fileName));
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();
throw e;
} finally {
document.close();
}
}
示例5
/**
* Writes swing to pdf
*
* @param panel
* @param fileName
* @throws DocumentException
* @throws Exception
*/
public static void writeToPDF(JComponent panel, File fileName)
throws IOException, DocumentException {
// print the panel to pdf
int width = panel.getWidth();
int height = panel.getHeight();
logger.info(
() -> MessageFormat.format("Exporting panel to PDF file (width x height; {0} x {1}): {2}",
width, height, fileName.getAbsolutePath()));
Document document = new Document(new Rectangle(width, height));
PdfWriter writer = null;
try {
writer = PdfWriter.getInstance(document, new FileOutputStream(fileName));
document.open();
PdfContentByte contentByte = writer.getDirectContent();
PdfTemplate template = contentByte.createTemplate(width, height);
Graphics2D g2 = new PdfGraphics2D(contentByte, width, height, new DefaultFontMapper());
panel.print(g2);
g2.dispose();
contentByte.addTemplate(template, 0, 0);
document.close();
writer.close();
} finally {
if (document.isOpen()) {
document.close();
}
}
}
示例6
/**
* This method saves a chart as a PDF with given dimensions
*
* @param chart
* @param width
* @param height
* @param fileName is a full path
*/
public static void writeChartToPDF(JFreeChart chart, int width, int height, File fileName)
throws Exception {
PdfWriter writer = null;
Document document = new Document(new Rectangle(width, height));
try {
writer = PdfWriter.getInstance(document, new FileOutputStream(fileName));
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();
throw e;
} finally {
document.close();
}
}
示例7
@SuppressWarnings("deprecation")
public static void writeChartsToPDF(List<JFreeChart> charts, int width, int height, OutputStream outputStream, String hostname, Date date) {
PdfWriter writer = null;
Document document = new Document();
try {
writer = PdfWriter.getInstance(document, outputStream);
writer.setPageEmpty(false);
document.open();
document.setPageSize(PageSize.A4);
document.add(new Paragraph("Aggregates Report generated by " + hostname + " on " + date.toString()));
document.newPage();
writer.newPage();
PdfContentByte contentByte = writer.getDirectContent();
PdfTemplate template;
Graphics2D graphics2d;
int position = 0;
Rectangle2D rectangle2d;
for (JFreeChart chart : charts){
LOG.debug("Writing chart to PDF");
if (writer.getVerticalPosition(true)-height+(height*position) < 0){
position = 0;
document.newPage();
writer.newPage();
}
template = contentByte.createTemplate(width, height);
graphics2d = template.createGraphics(width, height, new DefaultFontMapper());
rectangle2d = new Rectangle2D.Double(0, 0, width, height);
chart.draw(graphics2d, rectangle2d);
graphics2d.dispose();
contentByte.addTemplate(template, 38, writer.getVerticalPosition(true)-height+(height*position));
position--;
}
} catch (Exception e) {
e.printStackTrace();
}
document.close();
}