Fix and update JavaDoc entries, and correct areas with wildy inconsistent whitespace / style to the surrounding code
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1492818 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ab19d2e09c
commit
042aab4030
@ -44,7 +44,7 @@ public interface IBody {
|
||||
|
||||
/**
|
||||
* get the PartType of the body, for example
|
||||
* DOCUMENT, HEADER, FOOTER, FOOTNOTE,
|
||||
* DOCUMENT, HEADER, FOOTER, FOOTNOTE,
|
||||
* @return the PartType of the body
|
||||
*/
|
||||
public BodyType getPartType();
|
||||
|
@ -110,31 +110,31 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
private XWPFHeaderFooterPolicy headerFooterPolicy;
|
||||
|
||||
public XWPFDocument(OPCPackage pkg) throws IOException {
|
||||
super(pkg);
|
||||
super(pkg);
|
||||
|
||||
//build a tree of POIXMLDocumentParts, this document being the root
|
||||
load(XWPFFactory.getInstance());
|
||||
//build a tree of POIXMLDocumentParts, this document being the root
|
||||
load(XWPFFactory.getInstance());
|
||||
}
|
||||
|
||||
public XWPFDocument(InputStream is) throws IOException {
|
||||
super(PackageHelper.open(is));
|
||||
super(PackageHelper.open(is));
|
||||
|
||||
//build a tree of POIXMLDocumentParts, this workbook being the root
|
||||
load(XWPFFactory.getInstance());
|
||||
//build a tree of POIXMLDocumentParts, this workbook being the root
|
||||
load(XWPFFactory.getInstance());
|
||||
}
|
||||
|
||||
public XWPFDocument(){
|
||||
super(newPackage());
|
||||
onDocumentCreate();
|
||||
super(newPackage());
|
||||
onDocumentCreate();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDocumentRead() throws IOException {
|
||||
try {
|
||||
DocumentDocument doc = DocumentDocument.Factory.parse(getPackagePart().getInputStream());
|
||||
ctDocument = doc.getDocument();
|
||||
try {
|
||||
DocumentDocument doc = DocumentDocument.Factory.parse(getPackagePart().getInputStream());
|
||||
ctDocument = doc.getDocument();
|
||||
|
||||
initFootnotes();
|
||||
initFootnotes();
|
||||
|
||||
// parse the document with cursor and add
|
||||
// the XmlObject to its lists
|
||||
@ -193,15 +193,15 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
// We don't currently process the glossary itself
|
||||
// Until we do, we do need to load the glossary child parts of it
|
||||
for (POIXMLDocumentPart gp : p.getRelations()) {
|
||||
// Trigger the onDocumentRead for all the child parts
|
||||
// Otherwise we'll hit issues on Styles, Settings etc on save
|
||||
try {
|
||||
Method onDocumentRead = gp.getClass().getDeclaredMethod("onDocumentRead");
|
||||
onDocumentRead.setAccessible(true);
|
||||
onDocumentRead.invoke(gp);
|
||||
} catch(Exception e) {
|
||||
throw new POIXMLException(e);
|
||||
}
|
||||
// Trigger the onDocumentRead for all the child parts
|
||||
// Otherwise we'll hit issues on Styles, Settings etc on save
|
||||
try {
|
||||
Method onDocumentRead = gp.getClass().getDeclaredMethod("onDocumentRead");
|
||||
onDocumentRead.setAccessible(true);
|
||||
onDocumentRead.invoke(gp);
|
||||
} catch(Exception e) {
|
||||
throw new POIXMLException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -212,39 +212,39 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
}
|
||||
|
||||
private void initHyperlinks(){
|
||||
// Get the hyperlinks
|
||||
// TODO: make me optional/separated in private function
|
||||
try {
|
||||
Iterator<PackageRelationship> relIter =
|
||||
getPackagePart().getRelationshipsByType(XWPFRelation.HYPERLINK.getRelation()).iterator();
|
||||
while(relIter.hasNext()) {
|
||||
PackageRelationship rel = relIter.next();
|
||||
hyperlinks.add(new XWPFHyperlink(rel.getId(), rel.getTargetURI().toString()));
|
||||
}
|
||||
} catch (InvalidFormatException e){
|
||||
throw new POIXMLException(e);
|
||||
}
|
||||
// Get the hyperlinks
|
||||
// TODO: make me optional/separated in private function
|
||||
try {
|
||||
Iterator<PackageRelationship> relIter =
|
||||
getPackagePart().getRelationshipsByType(XWPFRelation.HYPERLINK.getRelation()).iterator();
|
||||
while(relIter.hasNext()) {
|
||||
PackageRelationship rel = relIter.next();
|
||||
hyperlinks.add(new XWPFHyperlink(rel.getId(), rel.getTargetURI().toString()));
|
||||
}
|
||||
} catch (InvalidFormatException e){
|
||||
throw new POIXMLException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void initFootnotes() throws XmlException, IOException {
|
||||
for(POIXMLDocumentPart p : getRelations()){
|
||||
String relation = p.getPackageRelationship().getRelationshipType();
|
||||
if (relation.equals(XWPFRelation.FOOTNOTE.getRelation())) {
|
||||
FootnotesDocument footnotesDocument = FootnotesDocument.Factory.parse(p.getPackagePart().getInputStream());
|
||||
this.footnotes = (XWPFFootnotes)p;
|
||||
this.footnotes.onDocumentRead();
|
||||
for(POIXMLDocumentPart p : getRelations()){
|
||||
String relation = p.getPackageRelationship().getRelationshipType();
|
||||
if (relation.equals(XWPFRelation.FOOTNOTE.getRelation())) {
|
||||
FootnotesDocument footnotesDocument = FootnotesDocument.Factory.parse(p.getPackagePart().getInputStream());
|
||||
this.footnotes = (XWPFFootnotes)p;
|
||||
this.footnotes.onDocumentRead();
|
||||
|
||||
for(CTFtnEdn ctFtnEdn : footnotesDocument.getFootnotes().getFootnoteList()) {
|
||||
footnotes.addFootnote(ctFtnEdn);
|
||||
}
|
||||
} else if (relation.equals(XWPFRelation.ENDNOTE.getRelation())){
|
||||
EndnotesDocument endnotesDocument = EndnotesDocument.Factory.parse(p.getPackagePart().getInputStream());
|
||||
for(CTFtnEdn ctFtnEdn : footnotesDocument.getFootnotes().getFootnoteList()) {
|
||||
footnotes.addFootnote(ctFtnEdn);
|
||||
}
|
||||
} else if (relation.equals(XWPFRelation.ENDNOTE.getRelation())){
|
||||
EndnotesDocument endnotesDocument = EndnotesDocument.Factory.parse(p.getPackagePart().getInputStream());
|
||||
|
||||
for(CTFtnEdn ctFtnEdn : endnotesDocument.getEndnotes().getEndnoteList()) {
|
||||
endnotes.put(ctFtnEdn.getId().intValue(), new XWPFFootnote(this, ctFtnEdn));
|
||||
}
|
||||
}
|
||||
}
|
||||
for(CTFtnEdn ctFtnEdn : endnotesDocument.getEndnotes().getEndnoteList()) {
|
||||
endnotes.put(ctFtnEdn.getId().intValue(), new XWPFFootnote(this, ctFtnEdn));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -287,11 +287,11 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
*/
|
||||
@Internal
|
||||
public CTDocument1 getDocument() {
|
||||
return ctDocument;
|
||||
return ctDocument;
|
||||
}
|
||||
|
||||
IdentifierManager getDrawingIdManager() {
|
||||
return drawingIdManager;
|
||||
return drawingIdManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -299,35 +299,35 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getBodyElements()
|
||||
*/
|
||||
public List<IBodyElement> getBodyElements() {
|
||||
return Collections.unmodifiableList(bodyElements);
|
||||
return Collections.unmodifiableList(bodyElements);
|
||||
}
|
||||
|
||||
public Iterator<IBodyElement> getBodyElementsIterator() {
|
||||
return bodyElements.iterator();
|
||||
return bodyElements.iterator();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getParagraphs()
|
||||
*/
|
||||
public List<XWPFParagraph> getParagraphs(){
|
||||
return Collections.unmodifiableList(paragraphs);
|
||||
return Collections.unmodifiableList(paragraphs);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getTables()
|
||||
*/
|
||||
public List<XWPFTable> getTables(){
|
||||
return Collections.unmodifiableList(tables);
|
||||
return Collections.unmodifiableList(tables);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getTableArray(int)
|
||||
*/
|
||||
public XWPFTable getTableArray(int pos) {
|
||||
if(pos > 0 && pos < tables.size()){
|
||||
return tables.get(pos);
|
||||
}
|
||||
return null;
|
||||
if (pos > 0 && pos < tables.size()){
|
||||
return tables.get(pos);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -335,11 +335,11 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @return the list of footers
|
||||
*/
|
||||
public List<XWPFFooter> getFooterList(){
|
||||
return Collections.unmodifiableList(footers);
|
||||
return Collections.unmodifiableList(footers);
|
||||
}
|
||||
|
||||
public XWPFFooter getFooterArray(int pos){
|
||||
return footers.get(pos);
|
||||
return footers.get(pos);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -347,62 +347,62 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @return the list of headers
|
||||
*/
|
||||
public List<XWPFHeader> getHeaderList(){
|
||||
return Collections.unmodifiableList(headers);
|
||||
return Collections.unmodifiableList(headers);
|
||||
}
|
||||
|
||||
public XWPFHeader getHeaderArray(int pos){
|
||||
return headers.get(pos);
|
||||
return headers.get(pos);
|
||||
}
|
||||
|
||||
public String getTblStyle(XWPFTable table){
|
||||
return table.getStyleID();
|
||||
return table.getStyleID();
|
||||
}
|
||||
|
||||
public XWPFHyperlink getHyperlinkByID(String id) {
|
||||
Iterator<XWPFHyperlink> iter = hyperlinks.iterator();
|
||||
while (iter.hasNext()) {
|
||||
XWPFHyperlink link = iter.next();
|
||||
if(link.getId().equals(id))
|
||||
return link;
|
||||
}
|
||||
Iterator<XWPFHyperlink> iter = hyperlinks.iterator();
|
||||
while (iter.hasNext()) {
|
||||
XWPFHyperlink link = iter.next();
|
||||
if(link.getId().equals(id))
|
||||
return link;
|
||||
}
|
||||
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
public XWPFFootnote getFootnoteByID(int id) {
|
||||
if(footnotes == null) return null;
|
||||
return footnotes.getFootnoteById(id);
|
||||
if(footnotes == null) return null;
|
||||
return footnotes.getFootnoteById(id);
|
||||
}
|
||||
|
||||
public XWPFFootnote getEndnoteByID(int id) {
|
||||
if(endnotes == null) return null;
|
||||
return endnotes.get(id);
|
||||
if(endnotes == null) return null;
|
||||
return endnotes.get(id);
|
||||
}
|
||||
|
||||
public List<XWPFFootnote> getFootnotes() {
|
||||
if(footnotes == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return footnotes.getFootnotesList();
|
||||
if(footnotes == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return footnotes.getFootnotesList();
|
||||
}
|
||||
|
||||
public XWPFHyperlink[] getHyperlinks() {
|
||||
return hyperlinks.toArray(new XWPFHyperlink[hyperlinks.size()]);
|
||||
return hyperlinks.toArray(new XWPFHyperlink[hyperlinks.size()]);
|
||||
}
|
||||
|
||||
public XWPFComment getCommentByID(String id) {
|
||||
Iterator<XWPFComment> iter = comments.iterator();
|
||||
while (iter.hasNext()) {
|
||||
XWPFComment comment = iter.next();
|
||||
if(comment.getId().equals(id))
|
||||
return comment;
|
||||
}
|
||||
Iterator<XWPFComment> iter = comments.iterator();
|
||||
while (iter.hasNext()) {
|
||||
XWPFComment comment = iter.next();
|
||||
if(comment.getId().equals(id))
|
||||
return comment;
|
||||
}
|
||||
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
public XWPFComment[] getComments() {
|
||||
return comments.toArray(new XWPFComment[comments.size()]);
|
||||
return comments.toArray(new XWPFComment[comments.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -622,18 +622,18 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
XmlCursor tableCursor = t.newCursor();
|
||||
try {
|
||||
cursor.toCursor(tableCursor);
|
||||
while (cursor.toPrevSibling()) {
|
||||
o = cursor.getObject();
|
||||
if (o instanceof CTP || o instanceof CTTbl)
|
||||
i++;
|
||||
while (cursor.toPrevSibling()) {
|
||||
o = cursor.getObject();
|
||||
if (o instanceof CTP || o instanceof CTTbl)
|
||||
i++;
|
||||
}
|
||||
bodyElements.add(i, newT);
|
||||
cursor.toCursor(tableCursor);
|
||||
cursor.toEndToken();
|
||||
return newT;
|
||||
}
|
||||
bodyElements.add(i, newT);
|
||||
cursor.toCursor(tableCursor);
|
||||
cursor.toEndToken();
|
||||
return newT;
|
||||
}
|
||||
finally {
|
||||
tableCursor.dispose();
|
||||
tableCursor.dispose();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@ -644,27 +644,27 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @param cursor
|
||||
*/
|
||||
private boolean isCursorInBody(XmlCursor cursor) {
|
||||
XmlCursor verify = cursor.newCursor();
|
||||
verify.toParent();
|
||||
try {
|
||||
return (verify.getObject() == this.ctDocument.getBody());
|
||||
} finally {
|
||||
verify.dispose();
|
||||
}
|
||||
XmlCursor verify = cursor.newCursor();
|
||||
verify.toParent();
|
||||
try {
|
||||
return (verify.getObject() == this.ctDocument.getBody());
|
||||
} finally {
|
||||
verify.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
private int getPosOfBodyElement(IBodyElement needle) {
|
||||
BodyElementType type = needle.getElementType();
|
||||
IBodyElement current;
|
||||
for(int i=0; i<bodyElements.size(); i++) {
|
||||
current = bodyElements.get(i);
|
||||
if(current.getElementType() == type) {
|
||||
if(current.equals(needle)) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
BodyElementType type = needle.getElementType();
|
||||
IBodyElement current;
|
||||
for(int i=0; i<bodyElements.size(); i++) {
|
||||
current = bodyElements.get(i);
|
||||
if(current.getElementType() == type) {
|
||||
if(current.equals(needle)) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -674,7 +674,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @return The location, or -1 if the paragraph couldn't be found
|
||||
*/
|
||||
public int getPosOfParagraph(XWPFParagraph p){
|
||||
return getPosOfBodyElement(p);
|
||||
return getPosOfBodyElement(p);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -684,7 +684,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @return The location, or -1 if the table couldn't be found
|
||||
*/
|
||||
public int getPosOfTable(XWPFTable t){
|
||||
return getPosOfBodyElement(t);
|
||||
return getPosOfBodyElement(t);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -692,24 +692,24 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
*/
|
||||
@Override
|
||||
protected void commit() throws IOException {
|
||||
XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
|
||||
xmlOptions.setSaveSyntheticDocumentElement(new QName(CTDocument1.type.getName().getNamespaceURI(), "document"));
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("http://schemas.openxmlformats.org/officeDocument/2006/math", "m");
|
||||
map.put("urn:schemas-microsoft-com:office:office", "o");
|
||||
map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r");
|
||||
map.put("urn:schemas-microsoft-com:vml", "v");
|
||||
map.put("http://schemas.openxmlformats.org/markup-compatibility/2006", "ve");
|
||||
map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w");
|
||||
map.put("urn:schemas-microsoft-com:office:word", "w10");
|
||||
map.put("http://schemas.microsoft.com/office/word/2006/wordml", "wne");
|
||||
map.put("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wp");
|
||||
xmlOptions.setSaveSuggestedPrefixes(map);
|
||||
XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
|
||||
xmlOptions.setSaveSyntheticDocumentElement(new QName(CTDocument1.type.getName().getNamespaceURI(), "document"));
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("http://schemas.openxmlformats.org/officeDocument/2006/math", "m");
|
||||
map.put("urn:schemas-microsoft-com:office:office", "o");
|
||||
map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r");
|
||||
map.put("urn:schemas-microsoft-com:vml", "v");
|
||||
map.put("http://schemas.openxmlformats.org/markup-compatibility/2006", "ve");
|
||||
map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w");
|
||||
map.put("urn:schemas-microsoft-com:office:word", "w10");
|
||||
map.put("http://schemas.microsoft.com/office/word/2006/wordml", "wne");
|
||||
map.put("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wp");
|
||||
xmlOptions.setSaveSuggestedPrefixes(map);
|
||||
|
||||
PackagePart part = getPackagePart();
|
||||
OutputStream out = part.getOutputStream();
|
||||
ctDocument.save(out, xmlOptions);
|
||||
out.close();
|
||||
PackagePart part = getPackagePart();
|
||||
OutputStream out = part.getOutputStream();
|
||||
ctDocument.save(out, xmlOptions);
|
||||
out.close();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -813,22 +813,22 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @return true if removing was successfully, else return false
|
||||
*/
|
||||
public boolean removeBodyElement(int pos) {
|
||||
if(pos >= 0 && pos < bodyElements.size()) {
|
||||
BodyElementType type = bodyElements.get(pos).getElementType();
|
||||
if(type == BodyElementType.TABLE){
|
||||
int tablePos = getTablePos(pos);
|
||||
tables.remove(tablePos);
|
||||
ctDocument.getBody().removeTbl(tablePos);
|
||||
}
|
||||
if(type == BodyElementType.PARAGRAPH) {
|
||||
int paraPos = getParagraphPos(pos);
|
||||
paragraphs.remove(paraPos);
|
||||
ctDocument.getBody().removeP(paraPos);
|
||||
}
|
||||
bodyElements.remove(pos);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
if (pos >= 0 && pos < bodyElements.size()) {
|
||||
BodyElementType type = bodyElements.get(pos).getElementType();
|
||||
if (type == BodyElementType.TABLE){
|
||||
int tablePos = getTablePos(pos);
|
||||
tables.remove(tablePos);
|
||||
ctDocument.getBody().removeTbl(tablePos);
|
||||
}
|
||||
if (type == BodyElementType.PARAGRAPH) {
|
||||
int paraPos = getParagraphPos(pos);
|
||||
paragraphs.remove(paraPos);
|
||||
ctDocument.getBody().removeP(paraPos);
|
||||
}
|
||||
bodyElements.remove(pos);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1063,7 +1063,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* </ul>
|
||||
*/
|
||||
public void enforceUpdateFields() {
|
||||
settings.setUpdateFields();
|
||||
settings.setUpdateFields();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1280,13 +1280,12 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public Iterator<XWPFTable> getTablesIterator() {
|
||||
return tables.iterator();
|
||||
return tables.iterator();
|
||||
}
|
||||
|
||||
public Iterator<XWPFParagraph> getParagraphsIterator() {
|
||||
return paragraphs.iterator();
|
||||
return paragraphs.iterator();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1294,10 +1293,10 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getParagraphArray(int)
|
||||
*/
|
||||
public XWPFParagraph getParagraphArray(int pos) {
|
||||
if(pos >= 0 && pos < paragraphs.size()){
|
||||
return paragraphs.get(pos);
|
||||
}
|
||||
return null;
|
||||
if(pos >= 0 && pos < paragraphs.size()){
|
||||
return paragraphs.get(pos);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1307,7 +1306,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getPart()
|
||||
*/
|
||||
public POIXMLDocumentPart getPart() {
|
||||
return this;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@ -1318,7 +1317,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getPartType()
|
||||
*/
|
||||
public BodyType getPartType() {
|
||||
return BodyType.DOCUMENT;
|
||||
return BodyType.DOCUMENT;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1326,32 +1325,32 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
|
||||
* @param cell
|
||||
*/
|
||||
public XWPFTableCell getTableCell(CTTc cell) {
|
||||
XmlCursor cursor = cell.newCursor();
|
||||
cursor.toParent();
|
||||
XmlObject o = cursor.getObject();
|
||||
if(!(o instanceof CTRow)){
|
||||
return null;
|
||||
}
|
||||
CTRow row = (CTRow)o;
|
||||
cursor.toParent();
|
||||
o = cursor.getObject();
|
||||
cursor.dispose();
|
||||
if(! (o instanceof CTTbl)){
|
||||
return null;
|
||||
}
|
||||
CTTbl tbl = (CTTbl) o;
|
||||
XWPFTable table = getTable(tbl);
|
||||
if(table == null){
|
||||
return null;
|
||||
}
|
||||
XWPFTableRow tableRow = table.getRow(row);
|
||||
if (tableRow == null) {
|
||||
return null;
|
||||
}
|
||||
return tableRow.getTableCell(cell);
|
||||
XmlCursor cursor = cell.newCursor();
|
||||
cursor.toParent();
|
||||
XmlObject o = cursor.getObject();
|
||||
if(!(o instanceof CTRow)){
|
||||
return null;
|
||||
}
|
||||
CTRow row = (CTRow)o;
|
||||
cursor.toParent();
|
||||
o = cursor.getObject();
|
||||
cursor.dispose();
|
||||
if(! (o instanceof CTTbl)){
|
||||
return null;
|
||||
}
|
||||
CTTbl tbl = (CTTbl) o;
|
||||
XWPFTable table = getTable(tbl);
|
||||
if(table == null){
|
||||
return null;
|
||||
}
|
||||
XWPFTableRow tableRow = table.getRow(row);
|
||||
if (tableRow == null) {
|
||||
return null;
|
||||
}
|
||||
return tableRow.getTableCell(cell);
|
||||
}
|
||||
|
||||
public XWPFDocument getXWPFDocument() {
|
||||
return this;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
@ -41,13 +41,13 @@ public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
|
||||
public XWPFFootnote(CTFtnEdn note, XWPFFootnotes xFootnotes) {
|
||||
footnotes = xFootnotes;
|
||||
ctFtnEdn = note;
|
||||
for (CTP p : ctFtnEdn.getPList()) {
|
||||
for (CTP p : ctFtnEdn.getPList()) {
|
||||
paragraphs.add(new XWPFParagraph(p, this));
|
||||
}
|
||||
}
|
||||
|
||||
public XWPFFootnote(XWPFDocument document, CTFtnEdn body) {
|
||||
for (CTP p : body.getPList()) {
|
||||
for (CTP p : body.getPList()) {
|
||||
paragraphs.add(new XWPFParagraph(p, document));
|
||||
}
|
||||
}
|
||||
@ -96,7 +96,7 @@ public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
|
||||
* inserts an existing XWPFTable to the arrays bodyElements and tables
|
||||
* @param pos
|
||||
* @param table
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int pos, XWPFTable table)
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int pos, XWPFTable table)
|
||||
*/
|
||||
public void insertTable(int pos, XWPFTable table) {
|
||||
bodyElements.add(pos, table);
|
||||
@ -116,14 +116,14 @@ public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
|
||||
* the method will return this table
|
||||
* if there is no corresponding {@link XWPFTable} the method will return null
|
||||
* @param ctTable
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getTable(CTTbl ctTable)
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getTable(CTTbl ctTable)
|
||||
*/
|
||||
public XWPFTable getTable(CTTbl ctTable){
|
||||
for (XWPFTable table : tables) {
|
||||
if(table==null)
|
||||
return null;
|
||||
if(table.getCTTbl().equals(ctTable))
|
||||
return table;
|
||||
return table;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -135,7 +135,7 @@ public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
|
||||
* @param p is instance of CTP and is searching for an XWPFParagraph
|
||||
* @return null if there is no XWPFParagraph with an corresponding CTPparagraph in the paragraphList of this header or footer
|
||||
* XWPFParagraph with the correspondig CTP p
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getParagraph(CTP p)
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getParagraph(CTP p)
|
||||
*/
|
||||
public XWPFParagraph getParagraph(CTP p){
|
||||
for (XWPFParagraph paragraph : paragraphs) {
|
||||
@ -148,7 +148,7 @@ public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
|
||||
/**
|
||||
* Returns the paragraph that holds
|
||||
* the text of the header or footer.
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getParagraphArray(int pos)
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getParagraphArray(int pos)
|
||||
*/
|
||||
public XWPFParagraph getParagraphArray(int pos) {
|
||||
|
||||
@ -158,7 +158,7 @@ public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
|
||||
/**
|
||||
* get the TableCell which belongs to the TableCell
|
||||
* @param cell
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getTableCell(CTTc cell)
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getTableCell(CTTc cell)
|
||||
*/
|
||||
public XWPFTableCell getTableCell(CTTc cell) {
|
||||
XmlCursor cursor = cell.newCursor();
|
||||
@ -207,7 +207,7 @@ public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
|
||||
*
|
||||
* @param cursor
|
||||
* @return the inserted table
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#insertNewTbl(XmlCursor cursor)
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#insertNewTbl(XmlCursor cursor)
|
||||
*/
|
||||
public XWPFTable insertNewTbl(XmlCursor cursor) {
|
||||
if(isCursorInFtn(cursor)){
|
||||
@ -248,7 +248,7 @@ public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
|
||||
* add a new paragraph at position of the cursor
|
||||
* @param cursor
|
||||
* @return the inserted paragraph
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#insertNewParagraph(XmlCursor cursor)
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#insertNewParagraph(XmlCursor cursor)
|
||||
*/
|
||||
public XWPFParagraph insertNewParagraph(XmlCursor cursor){
|
||||
if(isCursorInFtn(cursor)){
|
||||
@ -284,37 +284,37 @@ public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* add a new table to the end of the footnote
|
||||
* @param table
|
||||
* @return the added XWPFTable
|
||||
*/
|
||||
/**
|
||||
* add a new table to the end of the footnote
|
||||
* @param table
|
||||
* @return the added XWPFTable
|
||||
*/
|
||||
public XWPFTable addNewTbl(CTTbl table) {
|
||||
CTTbl newTable = ctFtnEdn.addNewTbl();
|
||||
newTable.set(table);
|
||||
XWPFTable xTable = new XWPFTable(newTable, this);
|
||||
tables.add(xTable);
|
||||
return xTable;
|
||||
CTTbl newTable = ctFtnEdn.addNewTbl();
|
||||
newTable.set(table);
|
||||
XWPFTable xTable = new XWPFTable(newTable, this);
|
||||
tables.add(xTable);
|
||||
return xTable;
|
||||
}
|
||||
|
||||
/**
|
||||
* add a new paragraph to the end of the footnote
|
||||
* @param paragraph
|
||||
* @return the added XWPFParagraph
|
||||
*/
|
||||
|
||||
/**
|
||||
* add a new paragraph to the end of the footnote
|
||||
* @param paragraph
|
||||
* @return the added XWPFParagraph
|
||||
*/
|
||||
public XWPFParagraph addNewParagraph(CTP paragraph) {
|
||||
CTP newPara = ctFtnEdn.addNewP();
|
||||
newPara.set(paragraph);
|
||||
XWPFParagraph xPara = new XWPFParagraph(newPara, this);
|
||||
paragraphs.add(xPara);
|
||||
return xPara;
|
||||
CTP newPara = ctFtnEdn.addNewP();
|
||||
newPara.set(paragraph);
|
||||
XWPFParagraph xPara = new XWPFParagraph(newPara, this);
|
||||
paragraphs.add(xPara);
|
||||
return xPara;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getXWPFDocument()
|
||||
*/
|
||||
public XWPFDocument getXWPFDocument() {
|
||||
return footnotes.getXWPFDocument();
|
||||
return footnotes.getXWPFDocument();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -55,7 +55,7 @@ public class XWPFFootnotes extends POIXMLDocumentPart {
|
||||
* @param rel the package relationship of type "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes"
|
||||
*/
|
||||
public XWPFFootnotes(PackagePart part, PackageRelationship rel) throws IOException, OpenXML4JException{
|
||||
super(part, rel);
|
||||
super(part, rel);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -69,45 +69,45 @@ public class XWPFFootnotes extends POIXMLDocumentPart {
|
||||
*/
|
||||
@Override
|
||||
protected void onDocumentRead () throws IOException {
|
||||
FootnotesDocument notesDoc;
|
||||
try {
|
||||
InputStream is = getPackagePart().getInputStream();
|
||||
notesDoc = FootnotesDocument.Factory.parse(is);
|
||||
ctFootnotes = notesDoc.getFootnotes();
|
||||
} catch (XmlException e) {
|
||||
throw new POIXMLException();
|
||||
}
|
||||
FootnotesDocument notesDoc;
|
||||
try {
|
||||
InputStream is = getPackagePart().getInputStream();
|
||||
notesDoc = FootnotesDocument.Factory.parse(is);
|
||||
ctFootnotes = notesDoc.getFootnotes();
|
||||
} catch (XmlException e) {
|
||||
throw new POIXMLException();
|
||||
}
|
||||
|
||||
//get any Footnote
|
||||
for(CTFtnEdn note : ctFootnotes.getFootnoteList()) {
|
||||
listFootnote.add(new XWPFFootnote(note, this));
|
||||
}
|
||||
// Find our footnotes
|
||||
for(CTFtnEdn note : ctFootnotes.getFootnoteList()) {
|
||||
listFootnote.add(new XWPFFootnote(note, this));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void commit() throws IOException {
|
||||
XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
|
||||
xmlOptions.setSaveSyntheticDocumentElement(new QName(CTFootnotes.type.getName().getNamespaceURI(), "footnotes"));
|
||||
Map<String,String> map = new HashMap<String,String>();
|
||||
map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r");
|
||||
map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w");
|
||||
xmlOptions.setSaveSuggestedPrefixes(map);
|
||||
PackagePart part = getPackagePart();
|
||||
OutputStream out = part.getOutputStream();
|
||||
ctFootnotes.save(out, xmlOptions);
|
||||
out.close();
|
||||
XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
|
||||
xmlOptions.setSaveSyntheticDocumentElement(new QName(CTFootnotes.type.getName().getNamespaceURI(), "footnotes"));
|
||||
Map<String,String> map = new HashMap<String,String>();
|
||||
map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r");
|
||||
map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w");
|
||||
xmlOptions.setSaveSuggestedPrefixes(map);
|
||||
PackagePart part = getPackagePart();
|
||||
OutputStream out = part.getOutputStream();
|
||||
ctFootnotes.save(out, xmlOptions);
|
||||
out.close();
|
||||
}
|
||||
|
||||
public List<XWPFFootnote> getFootnotesList() {
|
||||
return listFootnote;
|
||||
return listFootnote;
|
||||
}
|
||||
|
||||
public XWPFFootnote getFootnoteById(int id) {
|
||||
for(XWPFFootnote note : listFootnote) {
|
||||
if(note.getCTFtnEdn().getId().intValue() == id)
|
||||
return note;
|
||||
}
|
||||
return null;
|
||||
for(XWPFFootnote note : listFootnote) {
|
||||
if(note.getCTFtnEdn().getId().intValue() == id)
|
||||
return note;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -115,7 +115,7 @@ public class XWPFFootnotes extends POIXMLDocumentPart {
|
||||
* @param footnotes
|
||||
*/
|
||||
public void setFootnotes(CTFootnotes footnotes) {
|
||||
ctFootnotes = footnotes;
|
||||
ctFootnotes = footnotes;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -124,8 +124,8 @@ public class XWPFFootnotes extends POIXMLDocumentPart {
|
||||
* @throws IOException
|
||||
*/
|
||||
public void addFootnote(XWPFFootnote footnote){
|
||||
listFootnote.add(footnote);
|
||||
ctFootnotes.addNewFootnote().set(footnote.getCTFtnEdn());
|
||||
listFootnote.add(footnote);
|
||||
ctFootnotes.addNewFootnote().set(footnote.getCTFtnEdn());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -134,25 +134,25 @@ public class XWPFFootnotes extends POIXMLDocumentPart {
|
||||
* @throws IOException
|
||||
*/
|
||||
public XWPFFootnote addFootnote(CTFtnEdn note){
|
||||
CTFtnEdn newNote = ctFootnotes.addNewFootnote();
|
||||
newNote.set(note);
|
||||
XWPFFootnote xNote = new XWPFFootnote(newNote, this);
|
||||
listFootnote.add(xNote);
|
||||
return xNote;
|
||||
CTFtnEdn newNote = ctFootnotes.addNewFootnote();
|
||||
newNote.set(note);
|
||||
XWPFFootnote xNote = new XWPFFootnote(newNote, this);
|
||||
listFootnote.add(xNote);
|
||||
return xNote;
|
||||
}
|
||||
|
||||
public void setXWPFDocument(XWPFDocument doc) {
|
||||
document = doc;
|
||||
document = doc;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getPart()
|
||||
*/
|
||||
public XWPFDocument getXWPFDocument() {
|
||||
if ( document != null) {
|
||||
return document;
|
||||
} else {
|
||||
return (XWPFDocument)getParent();
|
||||
}
|
||||
if ( document != null) {
|
||||
return document;
|
||||
} else {
|
||||
return (XWPFDocument)getParent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
||||
CTHdrFtr headerFooter;
|
||||
XWPFDocument document;
|
||||
|
||||
XWPFHeaderFooter(XWPFDocument doc, CTHdrFtr hdrFtr){
|
||||
XWPFHeaderFooter(XWPFDocument doc, CTHdrFtr hdrFtr) {
|
||||
if (doc==null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
@ -171,7 +171,7 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
||||
if(table==null)
|
||||
return null;
|
||||
if(table.getCTTbl().equals(ctTable))
|
||||
return table;
|
||||
return table;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -257,7 +257,7 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
document.registerPackagePictureData(xwpfPicData);
|
||||
pictures.add(xwpfPicData);
|
||||
return getRelationId(xwpfPicData);
|
||||
@ -313,7 +313,7 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
||||
if (relatedPart != null && relatedPart instanceof XWPFPictureData) {
|
||||
return (XWPFPictureData) relatedPart;
|
||||
}
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -499,15 +499,15 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
||||
}
|
||||
|
||||
public void setXWPFDocument(XWPFDocument doc) {
|
||||
document = doc;
|
||||
document = doc;
|
||||
}
|
||||
|
||||
public XWPFDocument getXWPFDocument() {
|
||||
if (document!=null) {
|
||||
return document;
|
||||
} else {
|
||||
return (XWPFDocument)getParent();
|
||||
}
|
||||
if (document!=null) {
|
||||
return document;
|
||||
} else {
|
||||
return (XWPFDocument)getParent();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -517,4 +517,4 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
|
||||
public POIXMLDocumentPart getPart() {
|
||||
return this;
|
||||
}
|
||||
}//end class
|
||||
}
|
||||
|
@ -55,7 +55,11 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff;
|
||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTextAlignment;
|
||||
|
||||
/**
|
||||
* Sketch of XWPF paragraph class
|
||||
* <p>A Paragraph within a Document, Table, Header etc.</p>
|
||||
*
|
||||
* <p>A paragraph has a lot of styling information, but the
|
||||
* actual text (possibly along with more styling) is held on
|
||||
* the child {@link XWPFRun}s.</p>
|
||||
*/
|
||||
public class XWPFParagraph implements IBodyElement {
|
||||
private final CTP paragraph;
|
||||
@ -182,25 +186,25 @@ public class XWPFParagraph implements IBodyElement {
|
||||
public String getText() {
|
||||
StringBuffer out = new StringBuffer();
|
||||
for(XWPFRun run : runs) {
|
||||
out.append(run.toString());
|
||||
out.append(run.toString());
|
||||
}
|
||||
out.append(footnoteText);
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return styleID of the paragraph if style exist for this paragraph
|
||||
* if not, null will be returned
|
||||
* @return styleID as String
|
||||
*/
|
||||
public String getStyleID(){
|
||||
if (paragraph.getPPr() != null){
|
||||
if(paragraph.getPPr().getPStyle()!= null){
|
||||
if (paragraph.getPPr().getPStyle().getVal()!= null)
|
||||
return paragraph.getPPr().getPStyle().getVal();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
public String getStyleID() {
|
||||
if (paragraph.getPPr() != null) {
|
||||
if(paragraph.getPPr().getPStyle()!= null) {
|
||||
if (paragraph.getPPr().getPStyle().getVal()!= null)
|
||||
return paragraph.getPPr().getPStyle().getVal();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* If style exist for this paragraph
|
||||
@ -217,7 +221,7 @@ public class XWPFParagraph implements IBodyElement {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns Ilvl of the numeric style for this paragraph.
|
||||
* Returns null if this paragraph does not have numeric style.
|
||||
@ -261,7 +265,7 @@ public class XWPFParagraph implements IBodyElement {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* setNumID of Paragraph
|
||||
* @param numPos
|
||||
@ -282,22 +286,22 @@ public class XWPFParagraph implements IBodyElement {
|
||||
* paragraph
|
||||
*/
|
||||
public String getParagraphText() {
|
||||
StringBuffer out = new StringBuffer();
|
||||
for(XWPFRun run : runs) {
|
||||
out.append(run.toString());
|
||||
}
|
||||
return out.toString();
|
||||
StringBuffer out = new StringBuffer();
|
||||
for(XWPFRun run : runs) {
|
||||
out.append(run.toString());
|
||||
}
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns any text from any suitable pictures in the paragraph
|
||||
*/
|
||||
public String getPictureText() {
|
||||
StringBuffer out = new StringBuffer();
|
||||
for(XWPFRun run : runs) {
|
||||
out.append(run.getPictureText());
|
||||
}
|
||||
return out.toString();
|
||||
StringBuffer out = new StringBuffer();
|
||||
for(XWPFRun run : runs) {
|
||||
out.append(run.getPictureText());
|
||||
}
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -383,7 +387,7 @@ public class XWPFParagraph implements IBodyElement {
|
||||
CTPPr pr = getCTPPr();
|
||||
return (pr == null || !pr.isSetTextAlignment()) ? TextAlignment.AUTO
|
||||
: TextAlignment.valueOf(pr.getTextAlignment().getVal()
|
||||
.intValue());
|
||||
.intValue());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -409,9 +413,9 @@ public class XWPFParagraph implements IBodyElement {
|
||||
CTPPr pr = getCTPPr();
|
||||
CTTextAlignment textAlignment = pr.isSetTextAlignment() ? pr
|
||||
.getTextAlignment() : pr.addNewTextAlignment();
|
||||
STTextAlignment.Enum en = STTextAlignment.Enum
|
||||
.forInt(valign.getValue());
|
||||
textAlignment.setVal(en);
|
||||
STTextAlignment.Enum en = STTextAlignment.Enum
|
||||
.forInt(valign.getValue());
|
||||
textAlignment.setVal(en);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1162,8 +1166,7 @@ public class XWPFParagraph implements IBodyElement {
|
||||
* @param searched
|
||||
* @param startPos
|
||||
*/
|
||||
public TextSegement searchText(String searched,PositionInParagraph startPos){
|
||||
|
||||
public TextSegement searchText(String searched,PositionInParagraph startPos) {
|
||||
int startRun = startPos.getRun(),
|
||||
startText = startPos.getText(),
|
||||
startChar = startPos.getChar();
|
||||
@ -1182,7 +1185,8 @@ public class XWPFParagraph implements IBodyElement {
|
||||
if(runPos==startRun)
|
||||
charPos= startChar;
|
||||
else
|
||||
charPos = 0;
|
||||
charPos = 0;
|
||||
|
||||
for(; charPos<candidate.length(); charPos++){
|
||||
if((candidate.charAt(charPos)==searched.charAt(0))&&(candCharPos==0)){
|
||||
beginTextPos = textPos;
|
||||
@ -1204,8 +1208,9 @@ public class XWPFParagraph implements IBodyElement {
|
||||
return segement;
|
||||
}
|
||||
}
|
||||
else
|
||||
else {
|
||||
candCharPos=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
textPos++;
|
||||
@ -1230,29 +1235,27 @@ public class XWPFParagraph implements IBodyElement {
|
||||
* @return the inserted run
|
||||
*/
|
||||
public XWPFRun insertNewRun(int pos){
|
||||
if (pos >= 0 && pos <= paragraph.sizeOfRArray()) {
|
||||
if (pos >= 0 && pos <= paragraph.sizeOfRArray()) {
|
||||
CTR ctRun = paragraph.insertNewR(pos);
|
||||
XWPFRun newRun = new XWPFRun(ctRun, this);
|
||||
runs.add(pos, newRun);
|
||||
return newRun;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* get a Text
|
||||
* @param segment
|
||||
*/
|
||||
public String getText(TextSegement segment){
|
||||
int runBegin = segment.getBeginRun();
|
||||
int textBegin = segment.getBeginText();
|
||||
int charBegin = segment.getBeginChar();
|
||||
int runEnd = segment.getEndRun();
|
||||
int textEnd = segment.getEndText();
|
||||
int charEnd = segment.getEndChar();
|
||||
StringBuffer out = new StringBuffer();
|
||||
int runBegin = segment.getBeginRun();
|
||||
int textBegin = segment.getBeginText();
|
||||
int charBegin = segment.getBeginChar();
|
||||
int runEnd = segment.getEndRun();
|
||||
int textEnd = segment.getEndText();
|
||||
int charEnd = segment.getEndChar();
|
||||
StringBuffer out = new StringBuffer();
|
||||
for(int i=runBegin; i<=runEnd;i++){
|
||||
int startText=0, endText = paragraph.getRArray(i).getTList().size()-1;
|
||||
if(i==runBegin)
|
||||
@ -1267,8 +1270,8 @@ public class XWPFParagraph implements IBodyElement {
|
||||
if((j==textEnd)&&(i==runEnd)){
|
||||
endChar = charEnd;
|
||||
}
|
||||
out.append(tmpText.substring(startChar, endChar+1));
|
||||
|
||||
out.append(tmpText.substring(startChar, endChar+1));
|
||||
|
||||
}
|
||||
}
|
||||
return out.toString();
|
||||
@ -1280,12 +1283,12 @@ public class XWPFParagraph implements IBodyElement {
|
||||
* @return true if the run was removed
|
||||
*/
|
||||
public boolean removeRun(int pos){
|
||||
if (pos >= 0 && pos < paragraph.sizeOfRArray()){
|
||||
getCTP().removeR(pos);
|
||||
runs.remove(pos);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
if (pos >= 0 && pos < paragraph.sizeOfRArray()) {
|
||||
getCTP().removeR(pos);
|
||||
runs.remove(pos);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1345,5 +1348,4 @@ public class XWPFParagraph implements IBodyElement {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ public class XWPFTable implements IBodyElement {
|
||||
stBorderTypeMap.put(STBorder.INT_DOUBLE, XWPFBorderType.DOUBLE);
|
||||
stBorderTypeMap.put(STBorder.INT_DOTTED, XWPFBorderType.DOTTED);
|
||||
stBorderTypeMap.put(STBorder.INT_DASHED, XWPFBorderType.DASHED);
|
||||
stBorderTypeMap.put(STBorder.INT_DOT_DASH, XWPFBorderType.DOT_DASH);
|
||||
stBorderTypeMap.put(STBorder.INT_DOT_DASH, XWPFBorderType.DOT_DASH);
|
||||
}
|
||||
|
||||
public XWPFTable(CTTbl table, IBody part, int row, int col) {
|
||||
@ -94,9 +94,9 @@ public class XWPFTable implements IBodyElement {
|
||||
}
|
||||
|
||||
public XWPFTable(CTTbl table, IBody part){
|
||||
this.part = part;
|
||||
this.part = part;
|
||||
this.ctTbl = table;
|
||||
|
||||
|
||||
tableRows = new ArrayList<XWPFTableRow>();
|
||||
|
||||
// is an empty table: I add one row and one column as default
|
||||
@ -203,7 +203,7 @@ public class XWPFTable implements IBodyElement {
|
||||
public XWPFTableRow getRow(int pos) {
|
||||
if (pos >= 0 && pos < ctTbl.sizeOfTrArray()) {
|
||||
//return new XWPFTableRow(ctTbl.getTrArray(pos));
|
||||
return getRows().get(pos);
|
||||
return getRows().get(pos);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -277,167 +277,167 @@ public class XWPFTable implements IBodyElement {
|
||||
}
|
||||
|
||||
public XWPFBorderType getInsideHBorderType() {
|
||||
XWPFBorderType bt = null;
|
||||
XWPFBorderType bt = null;
|
||||
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideH()) {
|
||||
CTBorder border = ctb.getInsideH();
|
||||
bt = stBorderTypeMap.get(border.getVal().intValue());
|
||||
}
|
||||
}
|
||||
return bt;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideH()) {
|
||||
CTBorder border = ctb.getInsideH();
|
||||
bt = stBorderTypeMap.get(border.getVal().intValue());
|
||||
}
|
||||
}
|
||||
return bt;
|
||||
}
|
||||
|
||||
public int getInsideHBorderSize() {
|
||||
int size = -1;
|
||||
int size = -1;
|
||||
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideH()) {
|
||||
CTBorder border = ctb.getInsideH();
|
||||
size = border.getSz().intValue();
|
||||
}
|
||||
}
|
||||
return size;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideH()) {
|
||||
CTBorder border = ctb.getInsideH();
|
||||
size = border.getSz().intValue();
|
||||
}
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
public int getInsideHBorderSpace() {
|
||||
int space = -1;
|
||||
int space = -1;
|
||||
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideH()) {
|
||||
CTBorder border = ctb.getInsideH();
|
||||
space = border.getSpace().intValue();
|
||||
}
|
||||
}
|
||||
return space;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideH()) {
|
||||
CTBorder border = ctb.getInsideH();
|
||||
space = border.getSpace().intValue();
|
||||
}
|
||||
}
|
||||
return space;
|
||||
}
|
||||
|
||||
public String getInsideHBorderColor() {
|
||||
String color = null;
|
||||
String color = null;
|
||||
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideH()) {
|
||||
CTBorder border = ctb.getInsideH();
|
||||
color = border.xgetColor().getStringValue();
|
||||
}
|
||||
}
|
||||
return color;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideH()) {
|
||||
CTBorder border = ctb.getInsideH();
|
||||
color = border.xgetColor().getStringValue();
|
||||
}
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
public XWPFBorderType getInsideVBorderType() {
|
||||
XWPFBorderType bt = null;
|
||||
XWPFBorderType bt = null;
|
||||
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideV()) {
|
||||
CTBorder border = ctb.getInsideV();
|
||||
bt = stBorderTypeMap.get(border.getVal().intValue());
|
||||
}
|
||||
}
|
||||
return bt;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideV()) {
|
||||
CTBorder border = ctb.getInsideV();
|
||||
bt = stBorderTypeMap.get(border.getVal().intValue());
|
||||
}
|
||||
}
|
||||
return bt;
|
||||
}
|
||||
|
||||
public int getInsideVBorderSize() {
|
||||
int size = -1;
|
||||
int size = -1;
|
||||
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideV()) {
|
||||
CTBorder border = ctb.getInsideV();
|
||||
size = border.getSz().intValue();
|
||||
}
|
||||
}
|
||||
return size;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideV()) {
|
||||
CTBorder border = ctb.getInsideV();
|
||||
size = border.getSz().intValue();
|
||||
}
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
public int getInsideVBorderSpace() {
|
||||
int space = -1;
|
||||
int space = -1;
|
||||
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideV()) {
|
||||
CTBorder border = ctb.getInsideV();
|
||||
space = border.getSpace().intValue();
|
||||
}
|
||||
}
|
||||
return space;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideV()) {
|
||||
CTBorder border = ctb.getInsideV();
|
||||
space = border.getSpace().intValue();
|
||||
}
|
||||
}
|
||||
return space;
|
||||
}
|
||||
|
||||
public String getInsideVBorderColor() {
|
||||
String color = null;
|
||||
String color = null;
|
||||
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideV()) {
|
||||
CTBorder border = ctb.getInsideV();
|
||||
color = border.xgetColor().getStringValue();
|
||||
}
|
||||
}
|
||||
return color;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblBorders()) {
|
||||
CTTblBorders ctb = tblPr.getTblBorders();
|
||||
if (ctb.isSetInsideV()) {
|
||||
CTBorder border = ctb.getInsideV();
|
||||
color = border.xgetColor().getStringValue();
|
||||
}
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
public int getRowBandSize() {
|
||||
int size = 0;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblStyleRowBandSize()) {
|
||||
CTDecimalNumber rowSize = tblPr.getTblStyleRowBandSize();
|
||||
size = rowSize.getVal().intValue();
|
||||
}
|
||||
return size;
|
||||
int size = 0;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblStyleRowBandSize()) {
|
||||
CTDecimalNumber rowSize = tblPr.getTblStyleRowBandSize();
|
||||
size = rowSize.getVal().intValue();
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
public void setRowBandSize(int size) {
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTDecimalNumber rowSize = tblPr.isSetTblStyleRowBandSize() ? tblPr.getTblStyleRowBandSize() : tblPr.addNewTblStyleRowBandSize();
|
||||
rowSize.setVal(BigInteger.valueOf(size));
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTDecimalNumber rowSize = tblPr.isSetTblStyleRowBandSize() ? tblPr.getTblStyleRowBandSize() : tblPr.addNewTblStyleRowBandSize();
|
||||
rowSize.setVal(BigInteger.valueOf(size));
|
||||
}
|
||||
|
||||
public int getColBandSize() {
|
||||
int size = 0;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblStyleColBandSize()) {
|
||||
CTDecimalNumber colSize = tblPr.getTblStyleColBandSize();
|
||||
size = colSize.getVal().intValue();
|
||||
}
|
||||
return size;
|
||||
int size = 0;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
if (tblPr.isSetTblStyleColBandSize()) {
|
||||
CTDecimalNumber colSize = tblPr.getTblStyleColBandSize();
|
||||
size = colSize.getVal().intValue();
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
public void setColBandSize(int size) {
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTDecimalNumber colSize = tblPr.isSetTblStyleColBandSize() ? tblPr.getTblStyleColBandSize() : tblPr.addNewTblStyleColBandSize();
|
||||
colSize.setVal(BigInteger.valueOf(size));
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTDecimalNumber colSize = tblPr.isSetTblStyleColBandSize() ? tblPr.getTblStyleColBandSize() : tblPr.addNewTblStyleColBandSize();
|
||||
colSize.setVal(BigInteger.valueOf(size));
|
||||
}
|
||||
|
||||
public void setInsideHBorder(XWPFBorderType type, int size, int space, String rgbColor) {
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblBorders ctb = tblPr.isSetTblBorders() ? tblPr.getTblBorders() : tblPr.addNewTblBorders();
|
||||
CTBorder b = ctb.isSetInsideH() ? ctb.getInsideH() : ctb.addNewInsideH();
|
||||
b.setVal(xwpfBorderTypeMap.get(type));
|
||||
b.setSz(BigInteger.valueOf(size));
|
||||
b.setSpace(BigInteger.valueOf(space));
|
||||
b.setColor(rgbColor);
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblBorders ctb = tblPr.isSetTblBorders() ? tblPr.getTblBorders() : tblPr.addNewTblBorders();
|
||||
CTBorder b = ctb.isSetInsideH() ? ctb.getInsideH() : ctb.addNewInsideH();
|
||||
b.setVal(xwpfBorderTypeMap.get(type));
|
||||
b.setSz(BigInteger.valueOf(size));
|
||||
b.setSpace(BigInteger.valueOf(space));
|
||||
b.setColor(rgbColor);
|
||||
}
|
||||
|
||||
public void setInsideVBorder(XWPFBorderType type, int size, int space, String rgbColor) {
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblBorders ctb = tblPr.isSetTblBorders() ? tblPr.getTblBorders() : tblPr.addNewTblBorders();
|
||||
CTBorder b = ctb.isSetInsideV() ? ctb.getInsideV() : ctb.addNewInsideV();
|
||||
b.setVal(xwpfBorderTypeMap.get(type));
|
||||
b.setSz(BigInteger.valueOf(size));
|
||||
b.setSpace(BigInteger.valueOf(space));
|
||||
b.setColor(rgbColor);
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblBorders ctb = tblPr.isSetTblBorders() ? tblPr.getTblBorders() : tblPr.addNewTblBorders();
|
||||
CTBorder b = ctb.isSetInsideV() ? ctb.getInsideV() : ctb.addNewInsideV();
|
||||
b.setVal(xwpfBorderTypeMap.get(type));
|
||||
b.setSz(BigInteger.valueOf(size));
|
||||
b.setSpace(BigInteger.valueOf(space));
|
||||
b.setColor(rgbColor);
|
||||
}
|
||||
|
||||
public int getCellMarginTop() {
|
||||
@ -445,10 +445,10 @@ public class XWPFTable implements IBodyElement {
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblCellMar tcm = tblPr.getTblCellMar();
|
||||
if (tcm != null) {
|
||||
CTTblWidth tw = tcm.getTop();
|
||||
if (tw != null) {
|
||||
margin = tw.getW().intValue();
|
||||
}
|
||||
CTTblWidth tw = tcm.getTop();
|
||||
if (tw != null) {
|
||||
margin = tw.getW().intValue();
|
||||
}
|
||||
}
|
||||
return margin;
|
||||
}
|
||||
@ -458,10 +458,10 @@ public class XWPFTable implements IBodyElement {
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblCellMar tcm = tblPr.getTblCellMar();
|
||||
if (tcm != null) {
|
||||
CTTblWidth tw = tcm.getLeft();
|
||||
if (tw != null) {
|
||||
margin = tw.getW().intValue();
|
||||
}
|
||||
CTTblWidth tw = tcm.getLeft();
|
||||
if (tw != null) {
|
||||
margin = tw.getW().intValue();
|
||||
}
|
||||
}
|
||||
return margin;
|
||||
}
|
||||
@ -471,46 +471,46 @@ public class XWPFTable implements IBodyElement {
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblCellMar tcm = tblPr.getTblCellMar();
|
||||
if (tcm != null) {
|
||||
CTTblWidth tw = tcm.getBottom();
|
||||
if (tw != null) {
|
||||
margin = tw.getW().intValue();
|
||||
}
|
||||
CTTblWidth tw = tcm.getBottom();
|
||||
if (tw != null) {
|
||||
margin = tw.getW().intValue();
|
||||
}
|
||||
}
|
||||
return margin;
|
||||
}
|
||||
|
||||
public int getCellMarginRight() {
|
||||
int margin = 0;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblCellMar tcm = tblPr.getTblCellMar();
|
||||
if (tcm != null) {
|
||||
CTTblWidth tw = tcm.getRight();
|
||||
if (tw != null) {
|
||||
margin = tw.getW().intValue();
|
||||
}
|
||||
}
|
||||
return margin;
|
||||
int margin = 0;
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblCellMar tcm = tblPr.getTblCellMar();
|
||||
if (tcm != null) {
|
||||
CTTblWidth tw = tcm.getRight();
|
||||
if (tw != null) {
|
||||
margin = tw.getW().intValue();
|
||||
}
|
||||
}
|
||||
return margin;
|
||||
}
|
||||
|
||||
public void setCellMargins(int top, int left, int bottom, int right) {
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblCellMar tcm = tblPr.isSetTblCellMar() ? tblPr.getTblCellMar() : tblPr.addNewTblCellMar();
|
||||
CTTblPr tblPr = getTrPr();
|
||||
CTTblCellMar tcm = tblPr.isSetTblCellMar() ? tblPr.getTblCellMar() : tblPr.addNewTblCellMar();
|
||||
|
||||
CTTblWidth tw = tcm.isSetLeft() ? tcm.getLeft() : tcm.addNewLeft();
|
||||
tw.setType(STTblWidth.DXA);
|
||||
tw.setW(BigInteger.valueOf(left));
|
||||
CTTblWidth tw = tcm.isSetLeft() ? tcm.getLeft() : tcm.addNewLeft();
|
||||
tw.setType(STTblWidth.DXA);
|
||||
tw.setW(BigInteger.valueOf(left));
|
||||
|
||||
tw = tcm.isSetTop() ? tcm.getTop() : tcm.addNewTop();
|
||||
tw.setType(STTblWidth.DXA);
|
||||
tw.setW(BigInteger.valueOf(top));
|
||||
tw = tcm.isSetTop() ? tcm.getTop() : tcm.addNewTop();
|
||||
tw.setType(STTblWidth.DXA);
|
||||
tw.setW(BigInteger.valueOf(top));
|
||||
|
||||
tw = tcm.isSetBottom() ? tcm.getBottom() : tcm.addNewBottom();
|
||||
tw.setType(STTblWidth.DXA);
|
||||
tw.setW(BigInteger.valueOf(bottom));
|
||||
tw = tcm.isSetBottom() ? tcm.getBottom() : tcm.addNewBottom();
|
||||
tw.setType(STTblWidth.DXA);
|
||||
tw.setW(BigInteger.valueOf(bottom));
|
||||
|
||||
tw = tcm.isSetRight() ? tcm.getRight() : tcm.addNewRight();
|
||||
tw.setType(STTblWidth.DXA);
|
||||
tw.setW(BigInteger.valueOf(right));
|
||||
tw = tcm.isSetRight() ? tcm.getRight() : tcm.addNewRight();
|
||||
tw.setType(STTblWidth.DXA);
|
||||
tw.setW(BigInteger.valueOf(right));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -518,103 +518,102 @@ public class XWPFTable implements IBodyElement {
|
||||
*
|
||||
* @param row the row which should be added
|
||||
*/
|
||||
public void addRow(XWPFTableRow row){
|
||||
ctTbl.addNewTr();
|
||||
ctTbl.setTrArray(getNumberOfRows()-1, row.getCtRow());
|
||||
tableRows.add(row);
|
||||
}
|
||||
public void addRow(XWPFTableRow row){
|
||||
ctTbl.addNewTr();
|
||||
ctTbl.setTrArray(getNumberOfRows()-1, row.getCtRow());
|
||||
tableRows.add(row);
|
||||
}
|
||||
|
||||
/**
|
||||
* add a new Row to the table
|
||||
* at position pos
|
||||
* @param row the row which should be added
|
||||
*/
|
||||
public boolean addRow(XWPFTableRow row, int pos){
|
||||
if(pos >= 0 && pos <= tableRows.size()){
|
||||
ctTbl.insertNewTr(pos);
|
||||
ctTbl.setTrArray(pos,row.getCtRow());
|
||||
tableRows.add(pos, row);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* add a new Row to the table
|
||||
* at position pos
|
||||
* @param row the row which should be added
|
||||
*/
|
||||
public boolean addRow(XWPFTableRow row, int pos){
|
||||
if(pos >= 0 && pos <= tableRows.size()){
|
||||
ctTbl.insertNewTr(pos);
|
||||
ctTbl.setTrArray(pos,row.getCtRow());
|
||||
tableRows.add(pos, row);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* inserts a new tablerow
|
||||
* @param pos
|
||||
* @return the inserted row
|
||||
*/
|
||||
public XWPFTableRow insertNewTableRow(int pos){
|
||||
if(pos >= 0 && pos <= tableRows.size()){
|
||||
CTRow row = ctTbl.insertNewTr(pos);
|
||||
XWPFTableRow tableRow = new XWPFTableRow(row, this);
|
||||
tableRows.add(pos, tableRow);
|
||||
return tableRow;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* inserts a new tablerow
|
||||
* @param pos
|
||||
* @return the inserted row
|
||||
*/
|
||||
public XWPFTableRow insertNewTableRow(int pos){
|
||||
if(pos >= 0 && pos <= tableRows.size()){
|
||||
CTRow row = ctTbl.insertNewTr(pos);
|
||||
XWPFTableRow tableRow = new XWPFTableRow(row, this);
|
||||
tableRows.add(pos, tableRow);
|
||||
return tableRow;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Remove a row at position pos from the table
|
||||
* @param pos position the Row in the Table
|
||||
*/
|
||||
public boolean removeRow(int pos) throws IndexOutOfBoundsException {
|
||||
if (pos >= 0 && pos < tableRows.size()) {
|
||||
if (ctTbl.sizeOfTrArray() > 0) {
|
||||
ctTbl.removeTr(pos);
|
||||
}
|
||||
tableRows.remove(pos);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Remove a row at position pos from the table
|
||||
* @param pos position the Row in the Table
|
||||
*/
|
||||
public boolean removeRow(int pos) throws IndexOutOfBoundsException {
|
||||
if (pos >= 0 && pos < tableRows.size()) {
|
||||
if (ctTbl.sizeOfTrArray() > 0) {
|
||||
ctTbl.removeTr(pos);
|
||||
}
|
||||
tableRows.remove(pos);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<XWPFTableRow> getRows() {
|
||||
return tableRows;
|
||||
}
|
||||
public List<XWPFTableRow> getRows() {
|
||||
return tableRows;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* returns the type of the BodyElement Table
|
||||
* @see org.apache.poi.xwpf.usermodel.IBodyElement#getElementType()
|
||||
*/
|
||||
public BodyElementType getElementType() {
|
||||
return BodyElementType.TABLE;
|
||||
}
|
||||
/**
|
||||
* returns the type of the BodyElement Table
|
||||
* @see org.apache.poi.xwpf.usermodel.IBodyElement#getElementType()
|
||||
*/
|
||||
public BodyElementType getElementType() {
|
||||
return BodyElementType.TABLE;
|
||||
}
|
||||
|
||||
public IBody getBody()
|
||||
{
|
||||
return part;
|
||||
}
|
||||
public IBody getBody() {
|
||||
return part;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the part of the bodyElement
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getPart()
|
||||
*/
|
||||
public POIXMLDocumentPart getPart() {
|
||||
if(part != null){
|
||||
return part.getPart();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* returns the part of the bodyElement
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getPart()
|
||||
*/
|
||||
public POIXMLDocumentPart getPart() {
|
||||
if(part != null){
|
||||
return part.getPart();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the partType of the bodyPart which owns the bodyElement
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getPartType()
|
||||
*/
|
||||
public BodyType getPartType() {
|
||||
return part.getPartType();
|
||||
}
|
||||
/**
|
||||
* returns the partType of the bodyPart which owns the bodyElement
|
||||
* @see org.apache.poi.xwpf.usermodel.IBody#getPartType()
|
||||
*/
|
||||
public BodyType getPartType() {
|
||||
return part.getPartType();
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the XWPFRow which belongs to the CTRow row
|
||||
* if this row is not existing in the table null will be returned
|
||||
*/
|
||||
public XWPFTableRow getRow(CTRow row) {
|
||||
for(int i=0; i<getRows().size(); i++){
|
||||
if(getRows().get(i).getCtRow()== row) return getRow(i);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* returns the XWPFRow which belongs to the CTRow row
|
||||
* if this row is not existing in the table null will be returned
|
||||
*/
|
||||
public XWPFTableRow getRow(CTRow row) {
|
||||
for(int i=0; i<getRows().size(); i++){
|
||||
if(getRows().get(i).getCtRow()== row) return getRow(i);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -73,38 +73,38 @@ public class XWPFTableCell implements IBody {
|
||||
* If a table cell does not include at least one block-level element, then this document shall be considered corrupt
|
||||
*/
|
||||
public XWPFTableCell(CTTc cell, XWPFTableRow tableRow, IBody part) {
|
||||
this.ctTc = cell;
|
||||
this.part = part;
|
||||
this.tableRow = tableRow;
|
||||
// NB: If a table cell does not include at least one block-level element, then this document shall be considered corrupt.
|
||||
if(cell.getPList().size()<1)
|
||||
cell.addNewP();
|
||||
bodyElements = new ArrayList<IBodyElement>();
|
||||
paragraphs = new ArrayList<XWPFParagraph>();
|
||||
tables = new ArrayList<XWPFTable>();
|
||||
this.ctTc = cell;
|
||||
this.part = part;
|
||||
this.tableRow = tableRow;
|
||||
// NB: If a table cell does not include at least one block-level element, then this document shall be considered corrupt.
|
||||
if(cell.getPList().size()<1)
|
||||
cell.addNewP();
|
||||
bodyElements = new ArrayList<IBodyElement>();
|
||||
paragraphs = new ArrayList<XWPFParagraph>();
|
||||
tables = new ArrayList<XWPFTable>();
|
||||
|
||||
XmlCursor cursor = ctTc.newCursor();
|
||||
cursor.selectPath("./*");
|
||||
while (cursor.toNextSelection()) {
|
||||
XmlObject o = cursor.getObject();
|
||||
if (o instanceof CTP) {
|
||||
XWPFParagraph p = new XWPFParagraph((CTP)o, this);
|
||||
paragraphs.add(p);
|
||||
bodyElements.add(p);
|
||||
}
|
||||
if (o instanceof CTTbl) {
|
||||
XWPFTable t = new XWPFTable((CTTbl)o, this);
|
||||
tables.add(t);
|
||||
bodyElements.add(t);
|
||||
}
|
||||
}
|
||||
cursor.dispose();
|
||||
XmlCursor cursor = ctTc.newCursor();
|
||||
cursor.selectPath("./*");
|
||||
while (cursor.toNextSelection()) {
|
||||
XmlObject o = cursor.getObject();
|
||||
if (o instanceof CTP) {
|
||||
XWPFParagraph p = new XWPFParagraph((CTP)o, this);
|
||||
paragraphs.add(p);
|
||||
bodyElements.add(p);
|
||||
}
|
||||
if (o instanceof CTTbl) {
|
||||
XWPFTable t = new XWPFTable((CTTbl)o, this);
|
||||
tables.add(t);
|
||||
bodyElements.add(t);
|
||||
}
|
||||
}
|
||||
cursor.dispose();
|
||||
}
|
||||
|
||||
|
||||
@Internal
|
||||
public CTTc getCTTc() {
|
||||
return ctTc;
|
||||
return ctTc;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -40,14 +40,14 @@ public class XWPFTableRow {
|
||||
private List<XWPFTableCell> tableCells;
|
||||
|
||||
public XWPFTableRow(CTRow row, XWPFTable table) {
|
||||
this.table = table;
|
||||
this.ctRow = row;
|
||||
getTableCells();
|
||||
this.table = table;
|
||||
this.ctRow = row;
|
||||
getTableCells();
|
||||
}
|
||||
|
||||
@Internal
|
||||
public CTRow getCtRow() {
|
||||
return ctRow;
|
||||
return ctRow;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user