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

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

免费Java PDF库

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

免费 Java PDF组件icon-default.png?t=N7T8https://www.e-iceblue.cn/Introduce/Free-Spire-PDF-JAVA.html

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

Free Spire.PDF for JAVA | 下载下载Java PDF库来阅读、创建、操作、转换以及打印PDF文档。icon-default.png?t=N7T8https://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 中文教程icon-default.png?t=N7T8https://www.e-iceblue.cn/spirepdfjava/spire-pdf-for-java-program-guide-content.html

Java中将富文本转换PDF文档,可以通过使用一些第三方库来实现,例如iText或Apache PDFBox等。这些库提供了丰富的API,可以用来创建和操作PDF文档。下面是使用iText库进行转换的一个简单示例: ```java import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import com.itextpdf.text.BaseColor; public class RichTextToPDF { public static void main(String[] args) { // 创建一个Document对象,指定输出的PDF文件名 Document document = new Document(); try { PdfWriter.getInstance(document, new java.io.FileOutputStream("output.pdf")); // 打开文档准备写入 document.open(); // 添加标题 document.add(new Paragraph("这是一个标题", new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 18, com.itextpdf.text.Font.BOLD, BaseColor.BLUE))); // 添加段落 document.add(new Paragraph("这是一个段落,包含一些富文本样式,例如加粗、斜体、下划线等。")); // 添加一个下划线的文本 document.add(new Paragraph("这是一段下划线文本", new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 12, com.itextpdf.text.Font.UNDERLINE))); // 其他样式处理... // 关闭文档 document.close(); } catch (Exception de) { de.printStackTrace(); } } } ``` 在上述代码中,首先创建了一个`Document`对象,然后通过`PdfWriter`将其与输出文件关联起来。之后打开文档,并添加了富文本内容,包括标题、段落以及带下划线的文本。最后关闭文档以完成PDF的创建。 注意:上述代码仅是一个简单的例子,实际使用时,可能需要处理更复杂的富文本格式,包括图片、表格、不同字体和大小等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值