mirror of https://github.com/apache/poi.git
Miscellaneous fixes for chart functionalities
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1871010 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
de2467e9ae
commit
4703c18b83
|
@ -87,11 +87,9 @@ public class ChartFromScratch {
|
|||
Double[] values2 = listSpeakers.toArray(new Double[0]);
|
||||
|
||||
try (XMLSlideShow ppt = new XMLSlideShow()) {
|
||||
XSLFSlide slide = ppt.createSlide();
|
||||
XSLFChart chart = ppt.createChart();
|
||||
Rectangle2D rect2D = new java.awt.Rectangle(fromCM(1.5), fromCM(4), fromCM(22), fromCM(14));
|
||||
slide.addChart(chart, rect2D);
|
||||
setBarData(chart, chartTitle, series, categories, values1, values2);
|
||||
createSlideWithChart(ppt, chartTitle, series, categories, values1, values2);
|
||||
createSlideWithChart(ppt, chartTitle, series, categories, values1, values2);
|
||||
createSlideWithChart(ppt, chartTitle, series, categories, values1, values2);
|
||||
// save the result
|
||||
try (OutputStream out = new FileOutputStream("chart-from-scratch.pptx")) {
|
||||
ppt.write(out);
|
||||
|
@ -101,6 +99,15 @@ public class ChartFromScratch {
|
|||
System.out.println("Done");
|
||||
}
|
||||
|
||||
private static void createSlideWithChart(XMLSlideShow ppt, String chartTitle, String[] series, String[] categories,
|
||||
Double[] values1, Double[] values2) {
|
||||
XSLFSlide slide = ppt.createSlide();
|
||||
XSLFChart chart = ppt.createChart();
|
||||
Rectangle2D rect2D = new java.awt.Rectangle(fromCM(1.5), fromCM(4), fromCM(22), fromCM(14));
|
||||
slide.addChart(chart, rect2D);
|
||||
setBarData(chart, chartTitle, series, categories, values1, values2);
|
||||
}
|
||||
|
||||
private static int fromCM(double cm) {
|
||||
return (int) (Math.rint(cm * Units.EMU_PER_CENTIMETER));
|
||||
}
|
||||
|
|
|
@ -212,6 +212,7 @@ public class XDDFCategoryAxis extends XDDFChartAxis {
|
|||
final long id = getNextAxId(plotArea);
|
||||
ctCatAx = plotArea.addNewCatAx();
|
||||
ctCatAx.addNewAxId().setVal(id);
|
||||
ctCatAx.addNewAuto().setVal(false);
|
||||
ctCatAx.addNewAxPos();
|
||||
ctCatAx.addNewScaling();
|
||||
ctCatAx.addNewCrosses();
|
||||
|
@ -220,6 +221,8 @@ public class XDDFCategoryAxis extends XDDFChartAxis {
|
|||
ctCatAx.addNewDelete();
|
||||
ctCatAx.addNewMajorTickMark();
|
||||
ctCatAx.addNewMinorTickMark();
|
||||
ctCatAx.addNewNumFmt().setSourceLinked(true);
|
||||
ctCatAx.getNumFmt().setFormatCode("");
|
||||
|
||||
setPosition(position);
|
||||
setOrientation(AxisOrientation.MIN_MAX);
|
||||
|
|
|
@ -236,6 +236,7 @@ public class XDDFDateAxis extends XDDFChartAxis {
|
|||
final long id = getNextAxId(plotArea);
|
||||
ctDateAx = plotArea.addNewDateAx();
|
||||
ctDateAx.addNewAxId().setVal(id);
|
||||
ctDateAx.addNewAuto().setVal(false);
|
||||
ctDateAx.addNewAxPos();
|
||||
ctDateAx.addNewScaling();
|
||||
ctDateAx.addNewCrosses();
|
||||
|
@ -244,6 +245,8 @@ public class XDDFDateAxis extends XDDFChartAxis {
|
|||
ctDateAx.addNewDelete();
|
||||
ctDateAx.addNewMajorTickMark();
|
||||
ctDateAx.addNewMinorTickMark();
|
||||
ctDateAx.addNewNumFmt().setSourceLinked(true);
|
||||
ctDateAx.getNumFmt().setFormatCode("");
|
||||
|
||||
setPosition(position);
|
||||
setOrientation(AxisOrientation.MIN_MAX);
|
||||
|
|
|
@ -123,9 +123,9 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
* Keeps track on all id-values used in this document and included parts, like headers, footers, etc.
|
||||
*/
|
||||
private IdentifierManager drawingIdManager = new IdentifierManager(0L, 4294967295L);
|
||||
|
||||
|
||||
private FootnoteEndnoteIdManager footnoteIdManager = new FootnoteEndnoteIdManager(this);
|
||||
|
||||
|
||||
/**
|
||||
* Handles the joy of different headers/footers for different pages
|
||||
*/
|
||||
|
@ -1356,7 +1356,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
public boolean getEvenAndOddHeadings() {
|
||||
return settings.getEvenAndOddHeadings();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the even-and-odd-headings setting
|
||||
* @param enable Set to true to turn on separate even and odd headings.
|
||||
|
@ -1364,7 +1364,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
public void setEvenAndOddHeadings(boolean enable) {
|
||||
settings.setEvenAndOddHeadings(enable);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the mirror margins setting
|
||||
*
|
||||
|
@ -1373,7 +1373,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
public boolean getMirrorMargins() {
|
||||
return settings.getMirrorMargins();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the mirror margins setting
|
||||
* @param enable Set to true to turn on mirror margins.
|
||||
|
@ -1381,7 +1381,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
public void setMirrorMargins(boolean enable) {
|
||||
settings.setMirrorMargins(enable);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* inserts an existing XWPFTable to the arrays bodyElements and tables
|
||||
*
|
||||
|
@ -1694,7 +1694,20 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
* @since POI 4.0.0
|
||||
*/
|
||||
public XWPFChart createChart(int width, int height) throws InvalidFormatException, IOException {
|
||||
return createChart(createParagraph().createRun(), width, height);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param run in which the chart will be attached.
|
||||
* @param width in EMU.
|
||||
* @param height in EMU.
|
||||
* @return the new chart.
|
||||
* @throws InvalidFormatException
|
||||
* @throws IOException
|
||||
* @since POI 4.1.2
|
||||
*/
|
||||
public XWPFChart createChart(XWPFRun run, int width, int height) throws InvalidFormatException, IOException {
|
||||
//get chart number
|
||||
int chartNumber = getNextPartNumber(XWPFRelation.CHART, charts.size() + 1);
|
||||
|
||||
|
@ -1705,7 +1718,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
// initialize xwpfchart object
|
||||
XWPFChart xwpfChart = rp.getDocumentPart();
|
||||
xwpfChart.setChartIndex(chartNumber);
|
||||
xwpfChart.attach(rp.getRelationship().getId(), createParagraph().createRun());
|
||||
xwpfChart.attach(rp.getRelationship().getId(), run);
|
||||
xwpfChart.setChartBoundingBox(width, height);
|
||||
|
||||
//add chart object to chart list
|
||||
|
@ -1721,7 +1734,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
*/
|
||||
public XWPFFootnote createFootnote() {
|
||||
XWPFFootnotes footnotes = this.createFootnotes();
|
||||
|
||||
|
||||
XWPFFootnote footnote = footnotes.createFootnote();
|
||||
return footnote;
|
||||
}
|
||||
|
@ -1749,7 +1762,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
*/
|
||||
public XWPFEndnote createEndnote() {
|
||||
XWPFEndnotes endnotes = this.createEndnotes();
|
||||
|
||||
|
||||
XWPFEndnote endnote = endnotes.createEndnote();
|
||||
return endnote;
|
||||
|
||||
|
@ -1769,7 +1782,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
|||
}
|
||||
|
||||
return endnotes;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue