java实现txt转pdf

张鹏飞张鹏飞 · 2022-04-23 20:02
程序已经实现了txt转pdf,但过程中发现Unicode 编码扩展类的字符在pdf中不显示,例如txt中内容为:𢜐𢜑𢜒𢜓𢜔𢜕,这几个字在pdf中不显示,如果txt中内容为:𢜐𢜑𢜒𢜓𢜔𢜕1,pdf中只显示1,并且1前没有空格之类的。 以下为Unicode 编码扩展的字符地址:https://www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzb&ks=22710&js=230D3
2 个回答
张鹏飞
张鹏飞
package com.zhangpengfei;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.*;

public class Test22 {
    public static void text2pdf(String text, String pdf) throws IOException, DocumentException {
        Document document = new Document();
        OutputStream os = new FileOutputStream(new File(pdf));
        PdfWriter.getInstance(document, os);
        document.open();
        BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        Font font = new Font(baseFont);
        InputStreamReader isr = new InputStreamReader(new FileInputStream(new File(text)), "UTF-8");
        BufferedReader bufferedReader = new BufferedReader(isr);
        String str = "";
        while ((str = bufferedReader.readLine()) != null) {
            document.add(new Paragraph(str, font));
        }
        document.close();
    }
    public static void main(String[] args) throws Exception {
        String PDFTIMEDIR = "F:/pdf/";
        String text = PDFTIMEDIR + "1.txt";
        String pdf = PDFTIMEDIR + "1.txt.pdf";
        text2pdf(text, pdf);
    }
}


2
反对
评论
收藏
2022-04-23 20:10
张鹏飞
张鹏飞

已解决

赞同
反对
评论
收藏
2022-04-24 13:43