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

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

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

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

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);
    }
}

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

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

我们可以给它指定一个字体,例如加上标签

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);
    }
}

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

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

Document doc = new Document();
Paragraph para = doc.addSection().addParagraph();
para.appendText("阿超-0-{0-[0-(阿超-");
doc.saveToFile(TARGET_PATH, FileFormat.PDF);

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

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);

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

相关文章
|
前端开发 JavaScript API
技术笔记:vue+pdfh5实现将pdf渲染到页面上
技术笔记:vue+pdfh5实现将pdf渲染到页面上
|
XML Java Android开发
Android App开发手机阅读中PDF文件渲染器的讲解及使用(附源码 简单易懂)
Android App开发手机阅读中PDF文件渲染器的讲解及使用(附源码 简单易懂)
485 0
|
前端开发
Freemarker动态模板渲染&flyingsaucer将html转PDF(多页固定头尾)
Freemarker动态模板渲染&flyingsaucer将html转PDF(多页固定头尾)
|
数据安全/隐私保护 iOS开发 开发者
iOS开发CoreGraphics核心图形框架之九——PDF文件的渲染与创建(二)
iOS开发CoreGraphics核心图形框架之九——PDF文件的渲染与创建
474 0
iOS开发CoreGraphics核心图形框架之九——PDF文件的渲染与创建(二)
|
数据安全/隐私保护 iOS开发 开发者
iOS开发CoreGraphics核心图形框架之九——PDF文件的渲染与创建(一)
iOS开发CoreGraphics核心图形框架之九——PDF文件的渲染与创建
640 0
iOS开发CoreGraphics核心图形框架之九——PDF文件的渲染与创建(一)
|
7月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
4月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
668 40
|
4月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
6月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
285 10
|
5月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件

热门文章

最新文章