aspose.words for java操作文档doc,设置一级二级三级标题以及段落表格等详情

实现将aspose.words的相关组件jar包

以下是我自己编辑整理的工具类,欢迎交流

package com;

import java.io.InputStream;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.aspose.words.CellMerge;
import com.aspose.words.CellVerticalAlignment;
import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.FontSettings;
import com.aspose.words.HeightRule;
import com.aspose.words.License;
import com.aspose.words.LineStyle;
import com.aspose.words.ParagraphAlignment;
import com.aspose.words.SaveFormat;
import com.aspose.words.Table;

/**
 *
 * @ClassName:AsposeUtils
 * @Description: aspose.words操作文档工具类
 * @Date:2019年1月11日

 *
 */
public class AsposeUtils {
    private static final Logger LOGGER = LoggerFactory.getLogger(AsposeUtils.class);
    private static boolean AsposeLicense = false;
    static{
        try {
            //license.xml
            InputStream is = AsposeUtils.class.getClassLoader().getResourceAsStream("license.xml");
            new License().setLicense(is);
            AsposeLicense = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 验证License
     * @return boolean
     */
    private static void getLicense() {
        if (!AsposeLicense) { // 验证License 若不验证则转化出的pdf文档会有水印产生
            LOGGER.info("**********验证失败,会产生水印***********");
        }
        LOGGER.info("************验证成功,已去除默认水印***********");
    }
    /**
     * 保存pdf
     * @param path保存目录
     * @param doc原文档
     */
    public static void savePdf(String path,Document doc){
        String format = "pdf";
        save(path,doc,SaveFormat.PDF,format);
    }
    /**
     * 保存doc
     * @param path保存目录
     * @param doc原文档
     */
    public static void saveDoc(String path,Document doc){
        String format = "doc";
        save(path,doc,SaveFormat.DOC,format);
    }
    public static void saveDocx(String path,Document doc){
        String format = "docx";
        save(path,doc,SaveFormat.DOCX,format);
    }
    /**
     * 保存各种格式的文档
     * @param path保存地址
     * @param doc保存文件
     * @param saveFormat保存格式
     */
    private static void save(String path,Document doc,int saveFormat,String format){
        getLicense();
        try {
            String os = System.getProperty("os.name");
            if(os.toLowerCase().indexOf("linux") >= 0){
                LOGGER.info("************当前使用*****linux**"+ os +"*********");
                //设置一个字体目录
                FontSettings.getDefaultInstance().setFontsFolder("/usr/share/fonts/", false);
            }
            doc.save(path, saveFormat);
        } catch (Exception e) {
            LOGGER.info("************保存文档(格式为"+format+")出现异常***********");
            e.printStackTrace();
        }
    }
    /**
     * 制作报表总标题
     * @param builder
     * @param title
     */
    public static void setTitle(DocumentBuilder builder,String title){
        try {
            //设置字体格式
            builder.insertHtml("<p style=‘text-align:center‘><font face=‘宋体‘ size=‘30‘ color=‘black‘>"+ title +"</font></p>");
        } catch (Exception e) {
            LOGGER.info("************制作标题"+title+"出现异常***********");
            e.printStackTrace();
        }
    }
    /**
     * 制作一级标题
     * @param builder
     * @param title
     */
    private static void setTitle1(DocumentBuilder builder,String title1){
        try {
            builder.insertHtml("<h1 style=‘text-align:left;font-family:Simsun;‘>"+ title1 +"</h1>");
        } catch (Exception e) {
            LOGGER.info("************制作一级标题"+title1+"出现异常***********");
            e.printStackTrace();
        }
    }
    /**
     * 制作二级标题
     * @param builder
     * @param title
     */
    private static void setTitle2(DocumentBuilder builder,String title2){
        try {
            builder.insertHtml("<h2 style=‘text-align:left;font-family:Simsun;‘>"+ title2 +"</h2>");
        } catch (Exception e) {
            LOGGER.info("************制作二级标题"+title2+"出现异常***********");
            e.printStackTrace();
        }
    }
    /**
     * 制作三级标题
     * @param builder
     * @param title
     */
    private static void setTitle3(DocumentBuilder builder,String title3){
        try {
            builder.insertHtml("<h3 style=‘text-align:left;font-family:Simsun;‘>"+ title3 +"</h3>");
        } catch (Exception e) {
            LOGGER.info("************制作三级标题"+title3+"出现异常***********");
            e.printStackTrace();
        }
    }
    /**
     * 区别各级标题
     * @param builder
     * @param title
     * @param level
     */
    public static void setTitleS(DocumentBuilder builder,String title,String level){
        switch (level) {
        case "1":
            setTitle1(builder, title);
            break;
        case "2":
            setTitle2(builder, title);
            break;
        case "3":
            setTitle3(builder, title);
            break;
        default:
            break;
        }
    }
    /**
     * 制作报表段落
     * @param builder
     * @param pragraph
     */
    public static void setParagraph(DocumentBuilder builder,String pragraph){
        try {
            //设置字体格式
            builder.insertHtml("<p><font face=‘宋体‘>&nbsp;&nbsp; "+ pragraph +"</font></p>");
        } catch (Exception e) {
            LOGGER.info("************制作段落"+pragraph+"出现异常***********");
            e.printStackTrace();
        }
    }
    /**
     * 制作一个单元格并追加数据,单元格不合并
     * @param builder
     * @param width 设置单元格宽度
     * @param text
     */
    public static void setCell(DocumentBuilder builder,Double width,String text){
        builder.insertCell();
        if(width==null) width = 3d;
        builder.getCellFormat().setWidth(width);
        builder.getCellFormat().setVerticalMerge(CellMerge.NONE);
        builder.write(text);
    }
    /**
     * 插入单元格,不设置宽度,单元格不合并
     * @param builder
     * @param text
     */
    public static void setCell(DocumentBuilder builder,String text){
        builder.insertCell();
        builder.getCellFormat().setVerticalMerge(CellMerge.NONE);
        builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
        builder.write(text);
    }
    public static void setCell(DocumentBuilder builder,Long text){
        builder.insertCell();
        builder.getCellFormat().setVerticalMerge(CellMerge.NONE);
        builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
        if(text == null){
            builder.write("");
        }else{
            builder.write(text.toString());
        }
    }
    public static void setCell(DocumentBuilder builder,Double text){
        builder.insertCell();
        builder.getCellFormat().setVerticalMerge(CellMerge.NONE);
        builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
        if(text == null){
            builder.write("");
        }else{
            builder.write(text.toString());
        }
    }
    /**
     * 垂直合并单元格的第一格
     * @param builder
     * @param text
     */
    public static void setStartVerticalMerge(DocumentBuilder builder,String text){
        builder.insertCell();
        builder.getCellFormat().setVerticalMerge(CellMerge.FIRST);
        builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
        builder.write(text);
    }
    /**
     * 垂直合并单元格的后面格
     * @param builder
     * @param text
     */
    public static void setThenVerticalMerge(DocumentBuilder builder){
        builder.insertCell();
        // This cell is vertically merged to the cell above and should be empty.
        builder.getCellFormat().setVerticalMerge(CellMerge.PREVIOUS);
        builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
    }
    /**
     * 水平合并单元格的第一格
     * @param builder
     * @param text
     */
    public static void setStartHorizontalMerge(DocumentBuilder builder,String text){
        builder.insertCell();
        builder.getCellFormat().setHorizontalMerge(CellMerge.FIRST);
        builder.write(text);
    }
    /**
     * 水平合并单元格的后面格
     * @param builder
     * @param text
     */
    public static void setThenHorizontalMerge(DocumentBuilder builder){
        builder.insertCell();
        // This cell is vertically merged to the cell above and should be empty.
        builder.getCellFormat().setHorizontalMerge(CellMerge.PREVIOUS);
    }
    /**
     * 制作表格数据行
     * @param builder
     */
    public static void setRow(DocumentBuilder builder){
        try {
            builder.getRowFormat().setHeadingFormat(true);
            builder.getRowFormat().getBorders().setLineStyle(LineStyle.SINGLE);
            builder.getRowFormat().setHeightRule(HeightRule.AUTO);
            builder.getRowFormat().setAllowBreakAcrossPages(true);
        } catch (Exception e) {
            LOGGER.info("************制作表格数据行出现异常***********");
            e.printStackTrace();
        }
    }
    /**
     * 制作表格
     * @param builder
     * @throws Exception
     */
    public static Table setTable(DocumentBuilder builder){
        builder.moveToDocumentEnd();
        Table table = builder.startTable();
        builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
        return table;
    }
}

原文地址:https://www.cnblogs.com/zhhy/p/10278580.html

时间: 2024-10-10 02:21:05

aspose.words for java操作文档doc,设置一级二级三级标题以及段落表格等详情的相关文章

华为FusionCompute虚拟化平台升级操作文档

华为FusionCompute虚拟化平台升级操作文档 一.问题分析与解决思路   问题描述:在一段时间内,FC平台中的多台CNA主机偶发性自动重启,随即导致主机中部署的虚拟机自动重启,严重影响线上业务. 解决方案:经研究,基本上排除了是服务器硬件问题导致的可能性,怀疑是FC虚拟化平台的问题.于是,收集了自动重启主机中的日志,提供给华为工程师分析,得出以下结论. [日志收集方法] (1)使用putty工具登录虚拟机所在的主机(以"gandalf"用户,通过管理IP地址登录,默认密码为[e

Aruba快速操作文档

Aruba快速操作文档 一.控制器初始化配置 ....................................................................................................................... 2 二.AP的启劢过程 ...............................................................................................

EBS取Web字段SQL操作文档

1)  安全性—>责任-à定义 在这个路径下,输入责任名称,可以查询这个责任的请求组的名称 2)  organization_id 和 org_id的功能 3)  查找网页上的字段 Navigate: System Administrator > Profiles > System 2. Query Profile Name = FND: Diagnostics and set it to 'Yes' at the site level. Log out of the applicati

gitlab安装以及操作文档

gitlab安装以及操作文档 系统:centos6.9 x86_64ip:192.168.122.148Selinux 关闭 SELINUX=disabled设定源: 新建 /etc/yum.repos.d/gitlab-ce.repo,内容为 [gitlab-ce]name=Gitlab CE Repositorybaseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=

windows RAC 删除失败节点,添加节点实例操作文档

平台介绍: (OS:Windows server 2004, Oracle :10.2.0.4.0 ) 实施步骤: (1)重新安装rac2的操作系统 (2)删除节点 (3)添加新节点 (4)配置新的节点 一.安装RAC2操作系统(步骤略). 二.删除节点: 2.1 Onrac1, or on any node that you are not deleting, run the following   command from CRS_home\bin crssetup del –nnnode_

excel定义函数操作文档

以利润结算为例: 200元以内扣1元,200元以上按汇率0.5%扣除费用:求:扣完手续费后的金额. 操作一: 操作二: 操作三: 将表格中的某一行插入函数: 操作四: 点击第一格,鼠标移到当前单元格右下角,出现黑色十字符号,然后点击往下拖动: 操作五: 如果已经计算好的数值要单独复制出去使用的话,那么在右键粘贴的时候要选择"选择性粘贴"

SEO配置信息操作文档

一.title(网站标题) title,就是浏览器上显示的那些内容,不仅用户能看到,也能被搜索引擎检索到(搜索引擎在抓取网页时,最先读取的就是网页标题,所以title是否正确设置极其重要.)title一般不超过80个字符,而且词语间要用英文“-”隔开,因为计算机只对英语的敏感性较高,对汉语的敏感性不高. 用法:<title>网站标题</title> ?        首页title写法,一般是“网站名称-主关键词或一句含有主关键词的描述”.把网站名称放最前面,主关键词放后面,因为搜

HT系统部署操作文档

安装前注意,Tomcat和Mysql只设一级目录 1.安装jdk. 百度搜索"jdk下载"即可. jdk-8u51-windows-i586_V8.0.510.16.1436943767.exe 将jdk安装在d盘, 主要是设置环境变量: 用户变量: JAVA_HOME:D:\JDK 系统变量: CLASSPATH:%JAVA_HOME%\lib\tools.jar; JAVA_HOME:D:\JDK Path:D:\JDK\bin 2.安装绿色版tomcat8 apache-tomc

安装虚拟机和windows server 2012系统操作文档

一.创建虚拟主机 1.先安装vSphere Client 客户端软件,用于连接远程服务器并根据需求创建虚拟机: 2.根据需求填写虚拟机名称,然后点击"下一步": 3.选择安装存储位置,然后点击"下一步": 4.选择安装的系统版本,然后点击"下一步": 5.选择虚拟机安装的网卡,然后点击"下一步": 6.创建虚拟机磁盘信息,然后点击下一步: 7.即将创建完成,此处要勾选"完成前编辑虚拟机设置",然后点击&qu