阿超
>
spire.doc渲染pdf时富文本处理
不以一眚掩大德。——《左传》
使用spire.doc
渲染富文本的话,可以使用Paragraph
中的appendHTML()
函数去渲染富文本,例如下面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 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;
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); } }
|
执行后我们打开生成的文件
但我们发现,这里的短横线一上一下的,并没有对齐以至于影响了美观
我们可以给它指定一个字体,例如加上<font face='宋体'>
标签
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 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;
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
1 2 3 4
| Document doc = new Document(); Paragraph para = doc.addSection().addParagraph(); para.appendText("阿超-0-{0-[0-(阿超-"); doc.saveToFile(TARGET_PATH, FileFormat.PDF);
|
我们同样可以给它加上字体,如下
1 2 3 4 5 6
| 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);
|
这样就不会出现这种情况了