<changes>
<release version="3.8-beta5" date="2011-??-??">
+ <action dev="poi-developers" type="fix">52209 - fixed inserting multiple pictures in XSLF </action>
<action dev="poi-developers" type="fix">51803 - fixed HSLF TextExtractor to extract content from master slide </action>
<action dev="poi-developers" type="fix">52190 - null check on XWPF setFontFamily</action>
<action dev="poi-developers" type="fix">52062 - ensure that temporary files in SXSSF are deleted</action>
public int addPicture(byte[] pictureData, int format) {
getAllPictures();
- int imageNumber = getPackage().getPartsByName(Pattern.compile("/ppt/media/.*?")).size() + 1;
+ int imageNumber = _pictures.size() + 1;
XSLFPictureData img = (XSLFPictureData) createRelationship(
XSLFPictureData.RELATIONS[format], XSLFFactory.getInstance(), imageNumber, true);
_pictures.add(img);
public XSLFPictureShape createPicture(int pictureIndex){\r
\r
List<PackagePart> pics = _sheet.getPackagePart().getPackage()\r
- .getPartsByName(Pattern.compile("/ppt/media/.*?"));\r
+ .getPartsByName(Pattern.compile("/ppt/media/image" + (pictureIndex + 1) + ".*?"));\r
\r
- PackagePart pic = pics.get(pictureIndex);\r
+ if(pics.size() == 0) {\r
+ throw new IllegalArgumentException("Picture with index=" + pictureIndex + " was not found");\r
+ }\r
+\r
+ PackagePart pic = pics.get(0);\r
\r
PackageRelationship rel = _sheet.getPackagePart().addRelationship(\r
pic.getPartName(), TargetMode.INTERNAL, XSLFRelation.IMAGES.getRelation());\r
public XSLFPictureShape createPicture(int pictureIndex){
List<PackagePart> pics = getPackagePart().getPackage()
- .getPartsByName(Pattern.compile("/ppt/media/.*?"));
+ .getPartsByName(Pattern.compile("/ppt/media/image" + (pictureIndex + 1) + ".*?"));
- PackagePart pic = pics.get(pictureIndex);
+ if(pics.size() == 0) {
+ throw new IllegalArgumentException("Picture with index=" + pictureIndex + " was not found");
+ }
+
+ PackagePart pic = pics.get(0);
PackageRelationship rel = getPackagePart().addRelationship(
pic.getPartName(), TargetMode.INTERNAL, XSLFRelation.IMAGES.getRelation());
layout = measurer.nextLayout((float)wrappingWidth, nextBreak, false);\r
}\r
\r
- int endIndex = measurer.getPosition();\r
-\r
- TextAlign hAlign = getTextAlign();\r
- if(hAlign == TextAlign.JUSTIFY || hAlign == TextAlign.JUSTIFY_LOW) {\r
- layout = layout.getJustifiedLayout((float)wrappingWidth);\r
+ if(layout == null) {\r
+ // exit if can't break any more\r
+ break;\r
}\r
\r
+ int endIndex = measurer.getPosition();\r
// skip over new line breaks (we paint 'clear' text runs not starting or ending with \n)\r
if(endIndex < it.getEndIndex() && text.charAt(endIndex) == '\n'){\r
measurer.setPosition(endIndex + 1);\r
}\r
\r
+ TextAlign hAlign = getTextAlign();\r
+ if(hAlign == TextAlign.JUSTIFY || hAlign == TextAlign.JUSTIFY_LOW) {\r
+ layout = layout.getJustifiedLayout((float)wrappingWidth);\r
+ }\r
+\r
AttributedString str = new AttributedString(it, startIndex, endIndex);\r
TextFragment line = new TextFragment(\r
layout, // we will not paint empty paragraphs\r