Java - 将TXT文本文件转换为PDF文件
与TXT文本文件,PDF文件更加专业也更适合传输,常用于正式报告、简历、合同等场合。项目中如果有使用Java将TXT文本文件转为PDF文件的需求,可以查看本文中介绍的免费实现方法。
免费Java PDF库
本文介绍的方法需要用到Free Spire.PDF for 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 中文教程