During this period , Receive a demand , Yes, it will doc Document generation pdf file . because doc The documentation is quite complicated , Follow the example on the Internet java Code is generated one by one , That would be too complicated , So I thought of using html Template to generate pdf file . The article ends with a code link （ download pdf,pdf Add watermark text image ,poi export excel,freemarker export excel）.
1.wps open doc file , file save as html Format
2. The generated html Copy into project , If there are pictures , Copy the image from the file with the same name into the project
3. hold html Replace the image path in with the correct path
4. Check html Whether the labels in the are all correctly ended .
5. Download debugging , If there are forms, etc , It may cause some borders not to come out , So we need to debug table Of td Labeled border attribute .
The picture is that I use demo Code test export file ：
Generated watermark text , Support multi page generation ：
Possible pit ：
One 、 Error message : The document has no pages.
reason 1： It's generating PDF when , Need generation PDF The content of , Wrong label , In the use of itextpdf download pdf A fit for , Make sure the label has a start , There's an end to it .
For example, generated html In the document meta label ,img label ;
<meta http-equiv=Content-Type content="text/html; charset=UTF-8"/> <meta name=ProgId content=Word.Document/> <meta name=Generator content="Microsoft Word 14"/> <meta name=Originator content="Microsoft Word 14"/> <img src=""/>
reason 2： Use the new version of wps Generated html The document contains itextPdf Unrecognized content , This is what I've been doing for a few days . It turns out that it was in html Here's the picture below .
solve ： Just delete the contents
Two 、java.nio.charset.MalformedInputException: Input length = 1
reason ： Because html The character encoding problem of , Change the encoding of the document to utf-8 that will do .
solve ： The generated html In the label in the file
<meta http-equiv=Content-Type content="text/html; charset=gb2312" />
Change it to ：
<meta http-equiv=Content-Type content="text/html; charset=UTF-8" />
3、 ... and 、 In the use of ftl Generate excel When ,wps Generated xml file , There's a lot of content in it that can't be formatted , It may cause problems with the exported file , Cannot be opened , So just format Worksheet Just the content in the tag .
Four 、 Generated xls Closing document , Use office Open will prompt ：" File format and extension do not match ", But click Yes , Still open , There are solutions online , If there's a better plan , Please leave a message .
Use freemarker export doc Documents are the same , If there is a problem with merging images or tables , Please click the link ：