Package com.simplicite.util.tools
Class DocxTool
- java.lang.Object
-
- com.simplicite.util.tools.DocxTool
-
public class DocxTool extends java.lang.Object
DOCX toolbox
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
STYLE_NORMAL
Normal stylestatic java.lang.String
STYLE_SUBTITLE
Subtitle stylestatic java.lang.String
STYLE_TITLE
Title style
-
Constructor Summary
Constructors Constructor Description DocxTool()
Default constructor: Use new document to generate the packageDocxTool(byte[] b)
Constructor: Load from DOCX byte arrayDocxTool(java.io.File file)
Constructor: Load from DOCX fileDocxTool(java.io.InputStream in)
Constructor: Load from DOCX stream
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(java.lang.Object o)
Add something at the main partboolean
add(java.util.List<java.lang.Object> list)
Add objects at the main partvoid
addFieldBegin(org.docx4j.wml.P paragraph, org.docx4j.wml.ObjectFactory objectFactory)
Begin add fieldvoid
addFieldEnd(org.docx4j.wml.P paragraph, org.docx4j.wml.ObjectFactory objectFactory)
End add fieldvoid
addHTML(java.lang.String html)
Add an HTML content shorthandvoid
addNumberedParagraph(java.lang.String style, long numId, long level, java.lang.String text)
Add a numbered paragraphvoid
addNumberedParagraph(java.lang.String style, long numId, long level, java.lang.String text, int bookmarkId, java.lang.String bookmarkName)
Add a numbered paragraph with bookmarkvoid
addNumbering()
Add the default numbering partvoid
addNumbering(java.lang.String xml)
Add a numbering partvoid
addPageBreak()
Add a page breakvoid
addParagraph(java.lang.String text)
Add a paragraphvoid
addStyledParagraph(java.lang.String style, java.lang.String text)
Add a styled paragraphvoid
addTableOfContent(org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart documentPart, java.lang.String depth)
Add table of contentsvoid
addTableOfContentField(org.docx4j.wml.P paragraph, org.docx4j.wml.ObjectFactory objectFactory, java.lang.String depth)
Add table of content fieldvoid
addXHTML(java.lang.String xhtml)
Add an XHTML content shorthandjava.util.List<java.lang.Object>
convert(java.lang.String xhtml)
Convert an XHTML content to a list of DOCX objects.void
createBookmark(org.docx4j.wml.P p, org.docx4j.wml.R r, java.lang.String bookmark, int id)
Surround the specified run in the specified paragraph with a bookmarkorg.docx4j.openpackaging.parts.WordprocessingML.FooterPart
createFooter()
Add a footer to the documentorg.docx4j.openpackaging.parts.WordprocessingML.HeaderPart
createHeader()
Add a header to the documentjava.util.List<java.lang.Object>
getContent()
Get all main contentsjava.util.List<org.docx4j.openpackaging.parts.WordprocessingML.FooterPart>
getFooters()
Get the document footer partsjava.util.List<org.docx4j.openpackaging.parts.WordprocessingML.HeaderPart>
getHeaders()
Get the document header partsorg.docx4j.wml.P.Hyperlink
getHyperlink(java.lang.String bookmark, java.lang.String label)
Create a link to a bookmark (w:hyperlink)org.docx4j.wml.P
getImage(byte[] bytes, java.lang.String filenameHint, java.lang.String altText, int id1, int id2)
Build a simple image in a paragraphorg.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart
getMainPart()
Get the main document partorg.docx4j.wml.PPr
getNum(java.lang.String style, long numId, long level)
org.docx4j.wml.P
getNumberedParagraph(java.lang.String style, long numId, long level, java.lang.String text)
org.docx4j.wml.P
getNumberedParagraph(java.lang.String style, long numId, long level, java.lang.String text, int bookmarkId, java.lang.String bookmarkName)
org.docx4j.openpackaging.packages.WordprocessingMLPackage
getPackage()
Get the whole documentorg.docx4j.wml.Br
getPageBreak()
Build a page breakorg.docx4j.wml.P
getParagraph(java.lang.String text)
Build a simple text paragraphorg.docx4j.wml.R
getRun(java.lang.String text)
Build a simple runorg.docx4j.wml.PPr
getStyle(java.lang.String style)
org.docx4j.wml.P
getStyledParagraph(java.lang.String style, java.lang.String text)
java.lang.String
getText(java.lang.Object obj)
Get the first text in the DOCX objectorg.docx4j.wml.Text
getText(java.lang.String text)
Build a simple textjava.util.List<java.lang.String>
getTexts()
Get all texts in the documentjava.util.List<java.lang.String>
getTexts(java.lang.Object obj)
Get all texts in the DOCX objectorg.docx4j.wml.P
getTOCparagraph(java.lang.String depth)
Get table of content paragraphjava.lang.String
getXmlNumbering(int numId)
Getw:numbering
schemavoid
insert(int index, java.lang.Object o)
Insert something in the main partvoid
insertPageBreak(int index)
Insert a page break at indexvoid
insertParagraph(int index, java.lang.String text)
Insert a paragraph at indexjava.lang.String
mainPartToString(boolean suppDecl, boolean prettyPrint)
Convert the main part into XMLvoid
newDocument()
Create a new default documentvoid
newDocument(org.docx4j.model.structure.PageSizePaper sz, boolean landscape)
Create a new documentvoid
open(java.io.File file)
Open the documentvoid
open(java.io.InputStream in)
Open the documentjava.lang.Object
remove(int index)
Remove something in the main partjava.lang.Object
remove(java.lang.Object o)
Remove something in the main partvoid
replace(java.lang.Object part, java.lang.String toFind, java.lang.String replacer)
void
replace(java.lang.String toFind, java.lang.String replacer)
void
replaceBookmark(org.docx4j.wml.P p, org.docx4j.wml.R r, java.lang.String label, java.lang.String bookmarkName)
Surround the label with a bookmark textvoid
save(java.io.File file)
Write the document to a filevoid
save(java.io.OutputStream out)
Write the document to an output streamjava.util.List<java.lang.Object>
scan(java.lang.Object obj, java.lang.Class<?> cls)
Search objects corresponding to the classjava.util.List<java.lang.Object>
scan(java.lang.String xpath)
Search objects corresponding to the xpathvoid
stringToMainPart(java.lang.String xml)
Replace the main part with XMLbyte[]
toByteArray()
Get the document as a byte array (for usage as publication template or external objet output)java.lang.String
toXHTML(java.io.InputStream input, java.lang.String encoding)
Convert any HTML to a well-formatted XHTML (jtidy implementation)java.lang.String
toXHTML(java.lang.String html)
Convert any HTML to a well-formatted XHTMLjava.lang.String
toXHTML(java.lang.String html, java.lang.String encoding)
Convert any HTML to a well-formatted XHTML
-
-
-
Field Detail
-
STYLE_NORMAL
public static final java.lang.String STYLE_NORMAL
Normal style- See Also:
- Constant Field Values
-
STYLE_TITLE
public static final java.lang.String STYLE_TITLE
Title style- See Also:
- Constant Field Values
-
STYLE_SUBTITLE
public static final java.lang.String STYLE_SUBTITLE
Subtitle style- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DocxTool
public DocxTool()
Default constructor: Use new document to generate the package
-
DocxTool
public DocxTool(java.io.File file)
Constructor: Load from DOCX file- Parameters:
file
- File
-
DocxTool
public DocxTool(java.io.InputStream in)
Constructor: Load from DOCX stream- Parameters:
in
- Input stream
-
DocxTool
public DocxTool(byte[] b)
Constructor: Load from DOCX byte array- Parameters:
b
- Byte array
-
-
Method Detail
-
open
public void open(java.io.File file)
Open the document- Parameters:
file
- DOCX file
-
open
public void open(java.io.InputStream in)
Open the document- Parameters:
in
- DOCX input stream
-
newDocument
public void newDocument()
Create a new default document
-
newDocument
public void newDocument(org.docx4j.model.structure.PageSizePaper sz, boolean landscape)
Create a new document- Parameters:
sz
- default is PageSizePaper.A4landscape
- horizontal or not
-
addNumbering
public void addNumbering()
Add the default numbering part
-
addNumbering
public void addNumbering(java.lang.String xml)
Add a numbering part- Parameters:
xml
- Numbering definition ex: getXmlNumbering(1234);
-
getPackage
public org.docx4j.openpackaging.packages.WordprocessingMLPackage getPackage()
Get the whole document
-
getMainPart
public org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart getMainPart()
Get the main document part
-
getContent
public java.util.List<java.lang.Object> getContent()
Get all main contents
-
mainPartToString
public java.lang.String mainPartToString(boolean suppDecl, boolean prettyPrint)
Convert the main part into XML
-
stringToMainPart
public void stringToMainPart(java.lang.String xml) throws javax.xml.bind.JAXBException
Replace the main part with XML- Parameters:
xml
- XML- Throws:
javax.xml.bind.JAXBException
-
getHeaders
public java.util.List<org.docx4j.openpackaging.parts.WordprocessingML.HeaderPart> getHeaders()
Get the document header parts
-
createHeader
public org.docx4j.openpackaging.parts.WordprocessingML.HeaderPart createHeader()
Add a header to the document
-
getFooters
public java.util.List<org.docx4j.openpackaging.parts.WordprocessingML.FooterPart> getFooters()
Get the document footer parts
-
createFooter
public org.docx4j.openpackaging.parts.WordprocessingML.FooterPart createFooter()
Add a footer to the document
-
scan
public java.util.List<java.lang.Object> scan(java.lang.String xpath)
Search objects corresponding to the xpath- Parameters:
xpath
- examples: //w:t to search all texts; //w:p paragraphs...
-
scan
public java.util.List<java.lang.Object> scan(java.lang.Object obj, java.lang.Class<?> cls)
Search objects corresponding to the class- Parameters:
obj
- starting pointcls
- examples: Text.class for texts, P.class to search paragraphs...
-
getText
public java.lang.String getText(java.lang.Object obj)
Get the first text in the DOCX object
-
getTexts
public java.util.List<java.lang.String> getTexts(java.lang.Object obj)
Get all texts in the DOCX object
-
getTexts
public java.util.List<java.lang.String> getTexts()
Get all texts in the document
-
replace
public void replace(java.lang.String toFind, java.lang.String replacer)
-
replace
public void replace(java.lang.Object part, java.lang.String toFind, java.lang.String replacer)
-
add
public boolean add(java.lang.Object o)
Add something at the main part
-
add
public boolean add(java.util.List<java.lang.Object> list)
Add objects at the main part
-
insert
public void insert(int index, java.lang.Object o)
Insert something in the main part
-
remove
public java.lang.Object remove(int index)
Remove something in the main part
-
remove
public java.lang.Object remove(java.lang.Object o)
Remove something in the main part
-
getText
public org.docx4j.wml.Text getText(java.lang.String text)
Build a simple text
-
getRun
public org.docx4j.wml.R getRun(java.lang.String text)
Build a simple run
-
getParagraph
public org.docx4j.wml.P getParagraph(java.lang.String text)
Build a simple text paragraph- Parameters:
text
- Text- Returns:
- Simple paragraph
-
addParagraph
public void addParagraph(java.lang.String text)
Add a paragraph- Parameters:
text
- Text
-
insertParagraph
public void insertParagraph(int index, java.lang.String text)
Insert a paragraph at index- Parameters:
index
- Indextext
- Text
-
getPageBreak
public org.docx4j.wml.Br getPageBreak()
Build a page break- Returns:
- Page breack
-
addPageBreak
public void addPageBreak()
Add a page break
-
insertPageBreak
public void insertPageBreak(int index)
Insert a page break at index- Parameters:
index
- Index
-
getImage
public org.docx4j.wml.P getImage(byte[] bytes, java.lang.String filenameHint, java.lang.String altText, int id1, int id2) throws java.io.IOException
Build a simple image in a paragraph- Parameters:
bytes
- Image datafilenameHint
- Filename hintaltText
- Alternative textid1
- Index 1id2
- Index 2- Returns:
- Paragraph
- Throws:
java.io.IOException
-
getStyle
public org.docx4j.wml.PPr getStyle(java.lang.String style)
-
getNum
public org.docx4j.wml.PPr getNum(java.lang.String style, long numId, long level)
-
getNumberedParagraph
public org.docx4j.wml.P getNumberedParagraph(java.lang.String style, long numId, long level, java.lang.String text)
-
getNumberedParagraph
public org.docx4j.wml.P getNumberedParagraph(java.lang.String style, long numId, long level, java.lang.String text, int bookmarkId, java.lang.String bookmarkName)
-
addNumberedParagraph
public void addNumberedParagraph(java.lang.String style, long numId, long level, java.lang.String text)
Add a numbered paragraph- Parameters:
style
- Default is NormalnumId
- Numbering idlevel
- Leveltext
- Text
-
addNumberedParagraph
public void addNumberedParagraph(java.lang.String style, long numId, long level, java.lang.String text, int bookmarkId, java.lang.String bookmarkName)
Add a numbered paragraph with bookmark- Parameters:
style
- Default is NormalnumId
- Numbering idlevel
- Leveltext
- Text
-
addStyledParagraph
public void addStyledParagraph(java.lang.String style, java.lang.String text)
Add a styled paragraph- Parameters:
style
- Default is Normaltext
- Text
-
getStyledParagraph
public org.docx4j.wml.P getStyledParagraph(java.lang.String style, java.lang.String text)
-
createBookmark
public void createBookmark(org.docx4j.wml.P p, org.docx4j.wml.R r, java.lang.String bookmark, int id)
Surround the specified run in the specified paragraph with a bookmark- Parameters:
p
- paragraphr
- runbookmark
- bookmark nameid
- bookmark id
-
getHyperlink
public org.docx4j.wml.P.Hyperlink getHyperlink(java.lang.String bookmark, java.lang.String label)
Create a link to a bookmark (w:hyperlink)- Parameters:
bookmark
- bookmark namelabel
- hyperlink label- Returns:
- Hyperlink link to add somewhere
-
replaceBookmark
public void replaceBookmark(org.docx4j.wml.P p, org.docx4j.wml.R r, java.lang.String label, java.lang.String bookmarkName)
Surround the label with a bookmark text
-
convert
public java.util.List<java.lang.Object> convert(java.lang.String xhtml)
Convert an XHTML content to a list of DOCX objects.- Parameters:
xhtml
- XHTML content- Returns:
- List of DOCX objects
-
toXHTML
public java.lang.String toXHTML(java.lang.String html)
Convert any HTML to a well-formatted XHTML- Parameters:
html
- Source- Returns:
- XHTML or empty string in case of error
-
toXHTML
public java.lang.String toXHTML(java.lang.String html, java.lang.String encoding)
Convert any HTML to a well-formatted XHTML- Parameters:
html
- Sourceencoding
- Use the platform encoding when null- Returns:
- XHTML or empty string in case of error
-
toXHTML
public java.lang.String toXHTML(java.io.InputStream input, java.lang.String encoding)
Convert any HTML to a well-formatted XHTML (jtidy implementation)- Parameters:
input
- HTML as input streamencoding
- Use the platform encoding when null- Returns:
- XHTML or empty string in case of error
-
addXHTML
public void addXHTML(java.lang.String xhtml)
Add an XHTML content shorthand- Parameters:
xhtml
- XHTML content
-
addHTML
public void addHTML(java.lang.String html)
Add an HTML content shorthand- Parameters:
html
- HTML content
-
addTableOfContent
public void addTableOfContent(org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart documentPart, java.lang.String depth)
Add table of contents- Parameters:
documentPart
- document part
-
getTOCparagraph
public org.docx4j.wml.P getTOCparagraph(java.lang.String depth)
Get table of content paragraph- Parameters:
depth
- Depth- Returns:
- Paragraph
-
addTableOfContentField
public void addTableOfContentField(org.docx4j.wml.P paragraph, org.docx4j.wml.ObjectFactory objectFactory, java.lang.String depth)
Add table of content field- Parameters:
paragraph
- ParagraphobjectFactory
- Object factorydepth
- Depth
-
addFieldBegin
public void addFieldBegin(org.docx4j.wml.P paragraph, org.docx4j.wml.ObjectFactory objectFactory)
Begin add field- Parameters:
paragraph
- ParagraphobjectFactory
- Object factory
-
addFieldEnd
public void addFieldEnd(org.docx4j.wml.P paragraph, org.docx4j.wml.ObjectFactory objectFactory)
End add field- Parameters:
paragraph
- ParagraphobjectFactory
- Object factory
-
getXmlNumbering
public java.lang.String getXmlNumbering(int numId)
Getw:numbering
schema- Parameters:
numId
- Number ID- Returns:
- Schema
-
save
public void save(java.io.File file)
Write the document to a file- Parameters:
file
- File
-
save
public void save(java.io.OutputStream out)
Write the document to an output stream- Parameters:
out
- Output stream
-
toByteArray
public byte[] toByteArray()
Get the document as a byte array (for usage as publication template or external objet output)- Returns:
- Byte array
-
-