aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/examples/src/org/apache/poi/xslf/usermodel/ChartFromScratch.java17
-rw-r--r--src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFCategoryAxis.java3
-rw-r--r--src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDateAxis.java3
-rw-r--r--src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java33
4 files changed, 41 insertions, 15 deletions
diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/ChartFromScratch.java b/src/examples/src/org/apache/poi/xslf/usermodel/ChartFromScratch.java
index 1e923b9aab..637b485bda 100644
--- a/src/examples/src/org/apache/poi/xslf/usermodel/ChartFromScratch.java
+++ b/src/examples/src/org/apache/poi/xslf/usermodel/ChartFromScratch.java
@@ -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));
}
diff --git a/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFCategoryAxis.java b/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFCategoryAxis.java
index 1a0ef8f9f4..bbdccedb13 100644
--- a/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFCategoryAxis.java
+++ b/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFCategoryAxis.java
@@ -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);
diff --git a/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDateAxis.java b/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDateAxis.java
index 03cc2cba03..00722ea02a 100644
--- a/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDateAxis.java
+++ b/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDateAxis.java
@@ -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);
diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
index 994deb6daf..5227ee3742 100644
--- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
+++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
@@ -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;
-
+
}
/**