Java 将TXT文本文件转换为PDF文件

与TXT文本文件,PDF文件更加专业也更适合传输,常用于正式报告、简历、合同等场合。项目中如果有使用Java将TXT文本文件转为PDF文件的需求,可以查看本文中介绍的免费实现方法。

免费Java PDF库

本文介绍的方法需要用到Free Spire.PDF for Java,该免费库支持多种操作、转换PDF文档的功能。其官方介绍如下:

免费 Java PDF组件https://www.e-iceblue.cn/Introduce/Free-Spire-PDF-JAVA.html

**下载安装:**从以下链接下载最新版本并添加引用到你的Java项目中。或者通过Mave仓库安装。

Free Spire.PDF for JAVA | 下载下载Java PDF库来阅读、创建、操作、转换以及打印PDF文档。https://www.e-iceblue.cn/Downloads/Free-Spire-PDF-JAVA.html

TXT文本转PDF示例代码

Free Spire.PDF for Java 提供的TXT文本文件转为PDF文件的方法实际上是先通过readTextFromFile 方法读取txt文件中的文本,然后再将读取的文件使用 PdfTextWidget.draw() 方法绘制到 PDF 页面上的指定位置。

该免费Java库还提供了接口,允许设置绘制文本的字体、字体颜色、对齐样式等。下面是一个简单的示例,展示了如何将一个TXT文件转换为一个PDF文件:

java 复制代码
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;

import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ConvertTextToPdf {
    public static void main(String[] args) throws Exception {
        //从TXT文件读取文本
        String text = readTextFromFile("C:\\Users\\Administrator\\Desktop\\文本.txt");

        //创建PdfDocument类的对象
        PdfDocument pdf = new PdfDocument();
        //添加一个页面
        PdfPageBase page = pdf.getPages().add();

        //创建PdfFont类的对象
        Font font = new Font("宋体", Font.PLAIN, 11);
        PdfTrueTypeFont font1 = new PdfTrueTypeFont(font);

        //创建PdfTextLayout类的对象
        PdfTextLayout textLayout = new PdfTextLayout();
        textLayout.setBreak(PdfLayoutBreakType.Fit_Page);
        textLayout.setLayout(PdfLayoutType.Paginate);

        //创建PdfStringFormat类的对象
        PdfStringFormat format = new PdfStringFormat();
        format.setLineSpacing(20f);

        //用读取的文本创建PdfTextWidget类的对象
        PdfTextWidget textWidget = new PdfTextWidget(text, font1, PdfBrushes.getBlack());
        //设置字符格式
        textWidget.setStringFormat(format);

        //将文本添加到PDF页面的指定位置
        Rectangle2D.Float bounds = new Rectangle2D.Float();
        bounds.setRect(0,25,page.getCanvas().getClientSize().getWidth(),page.getCanvas().getClientSize().getHeight());
        textWidget.draw(page, bounds, textLayout);

        //保存结果文件
        pdf.saveToFile("TXT转PDF.pdf", FileFormat.PDF);
    }
    public static String readTextFromFile(String fileName) throws IOException {
        StringBuffer sb = new StringBuffer();
        BufferedReader br = new BufferedReader(new FileReader(fileName));
        String content = null;
        while ((content = br.readLine()) != null) {
            sb.append(content);
            sb.append("\n");
        }
        return sb.toString();
    }
}

输入输出文本示例:

通过运行以上代码就可以读取txt文件的内容生成PDF文件。如果还需要在PDF文件中添加图片、表格、形状等各种元素,可以通过Free Spire.PDF提供的其他API接口来实现。更多demo示例可查看:

Free Spire.PDF 中文教程https://www.e-iceblue.cn/spirepdfjava/spire-pdf-for-java-program-guide-content.html

相关推荐
zhangfeng113328 分钟前
openclaw skills 小龙虾技能 通讯仿真 matlab skill Simulink Agentic Toolkit,通过kimi找到,mcp通讯
开发语言·matlab·openclaw·通讯仿真
Javatutouhouduan7 小时前
2026Java面试的正确打开方式!
java·高并发·java面试·java面试题·后端开发·java编程·java八股文
chao1898447 小时前
基于 SPEA2 的多目标优化算法 MATLAB 实现
开发语言·算法·matlab
JAVA面经实录9177 小时前
Java初级最终完整版学习路线图
java·spring·eclipse·maven
赏金术士7 小时前
Kotlin 习题集 · 高级篇
android·开发语言·kotlin
Cat_Rocky8 小时前
k8s-持久化存储,粗浅学习
java·学习·kubernetes
楼兰公子8 小时前
buildroot 在编译rust时裁剪平台类型数量的方法
开发语言·后端·rust
知识领航员8 小时前
蘑兔AI音乐深度实测:功能拆解、实测表现与适用场景
java·c语言·c++·人工智能·python·算法·github
吴声子夜歌9 小时前
Go——并发编程
开发语言·后端·golang
释怀°Believe9 小时前
Spring解析
java·后端·spring