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

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

免费Java PDF库

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

免费Java PDF组件

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

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文件:

复制代码
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 中文教程

相关推荐
身如柳絮随风扬31 分钟前
多数据源切换实战:从业务场景到3种实现方案全解析
java·分布式·微服务
Java小生不才1 小时前
Spring AI文生音
java·人工智能·spring
凯尔萨厮1 小时前
Springboot2.x+Thymeleaf项目创建
java
fish_xk1 小时前
map和set
java·开发语言
李崧正2 小时前
Java技术分享:Lambda表达式与函数式编程
java·开发语言·python
老了,不知天命2 小时前
鳶尾花項目JAVA
java·开发语言·机器学习
二哈赛车手2 小时前
新人笔记---实现简易版的rag的bm25检索(利用ES),以及RAG上传时的ES与向量数据库双写
java·数据库·笔记·spring·elasticsearch·ai
winner88812 小时前
从零吃透C++命名空间、std、#include、string、vector
java·开发语言·c++
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题】【Java基础篇】第26题:Java的抽象类和接口有哪些区别
java·开发语言·面试
bzmK1DTbd2 小时前
SOLID原则在Java中的实践:单一职责与开闭原则
java·开发语言·开闭原则