Hi ,
Here the code:
private void xxxxxx(DecorateContext context, byte[] qrCodeBytes, byte[] wmBytes) throws Exception
{
Document doc = context.getContent(Document.class);
Map<String, Paragraph> wmGraphMap = new HashMap<>();
Map<String, Paragraph> qrCodeGraphMap = new HashMap<>();
HeaderFooter headerFooter = null ;
// Insert the watermark into all headers of each document section.
for (Section sect : doc.getSections()) {
PageSetup ps = sect.getPageSetup();
String key = ps.getPageWidth() + "_" + ps.getPageHeight();
if (wmBytes != null) {
Paragraph watermarkPara = wmGraphMap.get(key);
if (watermarkPara == null) {
watermarkPara = new Paragraph(doc);
watermarkPara.appendChild(generateShape(context, doc, ps, wmBytes, ImageType. WATERMARK));
wmGraphMap.put(key, watermarkPara);
}
// There could be up to three different headers in each section,
// since we want
// the watermark to appear on all pages, insert into all headers.
insertWatermarkIntoHeader(watermarkPara, sect, headerFooter, HeaderFooterType. HEADER_PRIMARY);
insertWatermarkIntoHeader(watermarkPara, sect, headerFooter, HeaderFooterType. HEADER_FIRST);
insertWatermarkIntoHeader(watermarkPara, sect, headerFooter, HeaderFooterType. HEADER_EVEN);
}
}
doc.updatePageLayout();
}
private void yyyyy(Paragraph watermarkPara, Section sect, HeaderFooter headerFooter, int headerType) throws Exception {
HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType);
if(header == null ) {
if(headerFooter == null ) {
header = new HeaderFooter(sect.getDocument(), headerType);
sect.getHeadersFooters().add(header);
}
else {
header = (HeaderFooter)headerFooter.deepClone(true );
}
}
else {
headerFooter = (HeaderFooter)header.deepClone(true );
}
Paragraph gg = header.getLastParagraph();
if(gg != null ) {
Paragraph newnode = (Paragraph)watermarkPara.deepClone(true );
int count = newnode.getCount();
if(count >= 1) {
gg.appendChild(newnode.getFirstChild());
}
if(count >= 2) {
gg.appendChild(newnode.getLastChild());
}
}
else {
header.appendChild(watermarkPara.deepClone(true ));
}
}
And when they add the watermark in the document, it said:
log4j:WARN No appenders could be found for logger (webLogger).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See <http://logging.apache.org/log4j/1.2/faq.html#noconfig> for more info.
com.huawei.it.edoc.decorate.DecorateException: process failed
at com.huawei.it.edoc.decorate.WordDecorator.process(WordDecorator.java:247)
at com.huawei.it.edoc.decorate.AbstractDecorator.decorate(AbstractDecorator.java:78)
at com.huawei.it.edoc.decorate.WordDecoratorTest.test(WordDecoratorTest.java:64)
at com.huawei.it.edoc.decorate.WordDecoratorTest.main(WordDecoratorTest.java:31)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalArgumentException: Width (0) and height (0) cannot be <= 0
at com.aspose.words.zzZQK.zzZ(Unknown Source)
at com.aspose.words.zzZQK.zzY(Unknown Source)
at com.aspose.words.zzZ4A.zzZiC(Unknown Source)
at com.aspose.words.zzZ49.getWidth(Unknown Source)
at com.aspose.words.zzZ4B.zzu0(Unknown Source)
at com.aspose.words.zzZ54.getWidth(Unknown Source)
at com.aspose.words.zzZPV.zzZLr(Unknown Source)
at com.aspose.words.zzZPV.zzT(Unknown Source)
at com.aspose.words.zzZQ2.zzS(Unknown Source)
at com.aspose.words.zzZQ1.zzQ(Unknown Source)
at com.aspose.words.zzZQ1.zzX(Unknown Source)
at com.aspose.words.zzWN.zzZ(Unknown Source)
at com.aspose.words.zzZ5I.zzZkN(Unknown Source)
at com.aspose.words.zzZ5I.zzZ(Unknown Source)
at com.aspose.words.zzXJ.zzvn(Unknown Source)
at com.aspose.words.zzXJ.zzX(Unknown Source)
at com.aspose.words.zzZE8.zzJ(Unknown Source)
at com.aspose.words.zzZE8.zzS(Unknown Source)
at com.aspose.words.zzZDQ.zzy(Unknown Source)
at com.aspose.words.zzZ3Q.zzSy(Unknown Source)
at com.aspose.words.zzDD.zzXY(Unknown Source)
at com.aspose.words.zzDE.zz9r(Unknown Source)
at com.aspose.words.zzZR3.zzZ(Unknown Source)
at com.aspose.words.Document.updatePageLayout(Unknown Source)
at com.huawei.it.edoc.decorate.WordDecorator.insertTextWatermark(WordDecorator.java:172)
at com.huawei.it.edoc.decorate.WordDecorator.process(WordDecorator.java:243)
… 3 more
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Width (0) and height (0) cannot be <= 0
at com.aspose.words.zzE6.zzZ(Unknown Source)
at com.aspose.words.zzG1.zzZ(Unknown Source)
at com.aspose.words.zzG1.zzZ(Unknown Source)
at com.aspose.words.zzG1.zzY(Unknown Source)
at com.aspose.words.zzZQK.zzX(Unknown Source)
at com.aspose.words.zzZQK.zzZ(Unknown Source)
… 28 more
Caused by: java.lang.IllegalArgumentException: Width (0) and height (0) cannot be <= 0
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
at java.awt.image.BufferedImage.(BufferedImage.java:340)
at asposewobfuscated.zzOY.(Unknown Source)
at asposewobfuscated.zzOY.(Unknown Source)
at asposewobfuscated.zzOY.(Unknown Source)
at com.aspose.words.zzF6.zzY(Unknown Source)
at com.aspose.words.zzF6.zzY(Unknown Source)
at com.aspose.words.zzF6.zzY(Unknown Source)
at com.aspose.words.zzF6.zzZ(Unknown Source)
at com.aspose.words.zzFK.zzZ(Unknown Source)
at com.aspose.words.zzFK.zzE(Unknown Source)
at com.aspose.words.zzFT.zzY(Unknown Source)
at com.aspose.words.zzFT.zzB(Unknown Source)
at com.aspose.words.zzFT.zzY(Unknown Source)
at com.aspose.words.zzFT.zzZ(Unknown Source)
at com.aspose.words.zzFT.zzZ(Unknown Source)
at com.aspose.words.zzH4.zzZ(Unknown Source)
at com.aspose.words.zzE6.zzZ(Unknown Source)
… 33 more
The version they used is aspose-words-14.7.0
And I also added the input document.
Any comments pls let me know.
Sara