前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spire.doc渲染pdf时富文本处理

spire.doc渲染pdf时富文本处理

作者头像
阿超
发布2022-08-16 18:51:11
5670
发布2022-08-16 18:51:11
举报
文章被收录于专栏:快乐阿超

不以一眚掩大德。——《左传》

使用spire.doc渲染富文本的话,可以使用Paragraph中的appendHTML()函数去渲染富文本,例如下面

代码语言:javascript
复制
package com.ruben;

import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.documents.Paragraph;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

/**
 * @ClassName: WordDemo
 * @Description: 我还没有写描述
 * @Date: 2021/1/15 0015 20:31
 * *
 * @author: <achao1441470436@gmail.com>
 * @version: 1.0
 * @since: JDK 1.8
 */
public class WordDemo {
    private static final String TARGET_PATH = "D:/file/testReport/pdf/" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss", Locale.CHINA)) + ".pdf";

    public static void main(String[] args) {
        Document doc = new Document();
        Paragraph para = doc.addSection().addParagraph();
        para.appendHTML("阿超-0-{0-[0-(阿超-");
        doc.saveToFile(TARGET_PATH, FileFormat.PDF);
    }
}

执行后我们打开生成的文件

image-20210116174558091
image-20210116174558091

但我们发现,这里的短横线一上一下的,并没有对齐以至于影响了美观

image-20210116174643560
image-20210116174643560

我们可以给它指定一个字体,例如加上<font face='宋体'>标签

代码语言:javascript
复制
package com.ruben;

import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.documents.Paragraph;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

/**
 * @ClassName: WordDemo
 * @Description: 我还没有写描述
 * @Date: 2021/1/15 0015 20:31
 * *
 * @author: <achao1441470436@gmail.com>
 * @version: 1.0
 * @since: JDK 1.8
 */
public class WordDemo {
    private static final String TARGET_PATH = "D:/file/testReport/pdf/" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss", Locale.CHINA)) + ".pdf";

    public static void main(String[] args) {
        Document doc = new Document();
        Paragraph para = doc.addSection().addParagraph();
        para.appendHTML("<font face='宋体'>阿超-0-{0-[0-(阿超-</font>");
        doc.saveToFile(TARGET_PATH, FileFormat.PDF);
    }
}

然后我们再执行发现刚才的横线整齐了

image-20210116174942286
image-20210116174942286

当然如果是非富文本,例如appendText

代码语言:javascript
复制
Document doc = new Document();
Paragraph para = doc.addSection().addParagraph();
para.appendText("阿超-0-{0-[0-(阿超-");
doc.saveToFile(TARGET_PATH, FileFormat.PDF);

我们同样可以给它加上字体,如下

代码语言:javascript
复制
Document doc = new Document();
Paragraph para = doc.addSection().addParagraph();
TextRange text = para.appendText("阿超-0-{0-[0-(阿超-");
CharacterFormat format = text.getCharacterFormat();
format.setFontName("宋体");
doc.saveToFile(TARGET_PATH, FileFormat.PDF);

这样就不会出现这种情况了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档