Java实现将TXT文本文件转换为PDF文件
作者:E-iceblue
与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接口来实现。
方法补充
除了上文的方法,小编还为大家整理了其他Java将TXT转为pdf的方法,希望对大家有所帮助
方法一:
引用jar包:
<dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>flying-saucer-pdf</artifactId> <version>9.1.2</version> </dependency> <dependency> <groupId>cn.lesper</groupId> <artifactId>iTextAsian</artifactId> <version>2.0</version> </dependency>
Java代码
package yll2023; import java.io.FileOutputStream; import java.io.IOException; import com.lowagie.text.*; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfWriter; /** * 将文本内容转成pdf * @author y * */ public class ObjectToPdf { public void strToPdf() throws DocumentException, IOException { Document document = new Document(); PdfWriter.getInstance(document,new FileOutputStream("E:\\a\\test.pdf")); BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); Font font = new Font(bfChinese,12,Font.NORMAL); // 设置标题 Paragraph pHeader = new Paragraph("line",font); // 设置标题居中 pHeader.setAlignment(Element.ALIGN_CENTER); // 设置正文 Paragraph ph = new Paragraph("content",font); document.open(); document.add(pHeader); document.add(ph); document.close(); } }
方法二
import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.Document; import com.itextpdf.layout.element.Paragraph; import java.io.FileOutputStream; import java.io.IOException; public class TextToPdfConverter { public static void main(String[] args) { String text = "Hello, World! This is a sample text."; try { PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new FileOutputStream("output.pdf"))); Document document = new Document(pdfDocument); Paragraph paragraph = new Paragraph(text); document.add(paragraph); document.close(); System.out.println("PDF created successfully."); } catch (IOException e) { e.printStackTrace(); } } }
到此这篇关于Java实现将TXT文本文件转换为PDF文件 的文章就介绍到这了,更多相关Java TXT转PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!