最近甲方提的需求越来越多,从手写签名生成pdf,生成word和exec,到各种文档格式的转换;各种百度和看api,写成工具类,后面陆续会放到博客上,要是哪里错了,请指正,谢谢
大概是需要引入这些jar包的依赖:
poi-ooxml-4.1.2.jar
poi-ooxml-schemas-4.1.2.jar
ooxml-schemas-1.3.jar
jsoup-1.11.3.jar
xdocreport-1.0.6.jar
xmlworker-5.5.11.jar
aspose-words-15.8.0-jdk16.jar
aspose-cells-8.5.2.jar
pdfbox-2.0.8.jar
aspose.pdf-11.8.0.jar
import com.eic.apache.poi.xwpf.usermodel.*;
import org.apache.commons.lang.StringUtils;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlToken;
import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;
import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
import java.math.BigInteger;
import java.util.List;
/**
* word文档工具类
* @author zsl
* @version 2020-09-29 zsl
*/
public class WordUtils {
/**
* 空行、分页
* @param run 对象
* @param lineCount 行数
* @param isPage 分页
* @return run对象
*/
public XWPFRun addXWPFRunBreak(XWPFRun run,int lineCount,boolean isPage){
if(lineCount > 0){
for (int i = 0; i < lineCount; i++) {
//换行
run.addBreak();
}
}
if(isPage){
//分页
run.addBreak(BreakType.PAGE);
}
return run;
}
/**
* run字体基础设置
* @param run run对象
* @param isBold 是否粗体 (粗:true;不粗:false)
* @param size 字体大小
* @param fontFamily 字体样式 (黑体、宋体)
* @return run对象
*/
public XWPFRun setXWPFRunFont(XWPFRun run,Boolean isBold,Integer size,String fontFamily){
if(isBold != null){
run.setBold(isBold);
}
if(size != null){
run.setFontSize(size);
}
if(StringUtils.isNotBlank(fontFamily)){
run.setFontFamily(fontFamily);
}
return run;
}
/**
* run行基础设置
* @param run run对象
* @param underlinePatterns 下滑线样式 (下滑线 UnderlinePatterns.SINGLE)
* @param color 字体颜色(十六进制)
* @param isUnicode 复选框(空格框:0 \u2610;打钩框:1 \u2611,打叉框:2 \u2612)
* @return run对象
*/
public XWPFRun setXWPFRunLine(XWPFRun run,UnderlinePatterns underlinePatterns,String color,Integer isUnicode){
if(underlinePatt