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

打印 上一主题 下一主题

主题 854|帖子 854|积分 2562

与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文件:
  1. import com.spire.pdf.FileFormat;
  2. import com.spire.pdf.PdfDocument;
  3. import com.spire.pdf.PdfPageBase;
  4. import com.spire.pdf.graphics.*;
  5. import java.awt.*;
  6. import java.awt.geom.Rectangle2D;
  7. import java.io.BufferedReader;
  8. import java.io.FileReader;
  9. import java.io.IOException;
  10. public class ConvertTextToPdf {
  11.     public static void main(String[] args) throws Exception {
  12.         //从TXT文件读取文本
  13.         String text = readTextFromFile("C:\\Users\\Administrator\\Desktop\\文本.txt");
  14.         //创建PdfDocument类的对象
  15.         PdfDocument pdf = new PdfDocument();
  16.         //添加一个页面
  17.         PdfPageBase page = pdf.getPages().add();
  18.         //创建PdfFont类的对象
  19.         Font font = new Font("宋体", Font.PLAIN, 11);
  20.         PdfTrueTypeFont font1 = new PdfTrueTypeFont(font);
  21.         //创建PdfTextLayout类的对象
  22.         PdfTextLayout textLayout = new PdfTextLayout();
  23.         textLayout.setBreak(PdfLayoutBreakType.Fit_Page);
  24.         textLayout.setLayout(PdfLayoutType.Paginate);
  25.         //创建PdfStringFormat类的对象
  26.         PdfStringFormat format = new PdfStringFormat();
  27.         format.setLineSpacing(20f);
  28.         //用读取的文本创建PdfTextWidget类的对象
  29.         PdfTextWidget textWidget = new PdfTextWidget(text, font1, PdfBrushes.getBlack());
  30.         //设置字符格式
  31.         textWidget.setStringFormat(format);
  32.         //将文本添加到PDF页面的指定位置
  33.         Rectangle2D.Float bounds = new Rectangle2D.Float();
  34.         bounds.setRect(0,25,page.getCanvas().getClientSize().getWidth(),page.getCanvas().getClientSize().getHeight());
  35.         textWidget.draw(page, bounds, textLayout);
  36.         //保存结果文件
  37.         pdf.saveToFile("TXT转PDF.pdf", FileFormat.PDF);
  38.     }
  39.     public static String readTextFromFile(String fileName) throws IOException {
  40.         StringBuffer sb = new StringBuffer();
  41.         BufferedReader br = new BufferedReader(new FileReader(fileName));
  42.         String content = null;
  43.         while ((content = br.readLine()) != null) {
  44.             sb.append(content);
  45.             sb.append("\n");
  46.         }
  47.         return sb.toString();
  48.     }
  49. }
复制代码
 
输入输出文档示例:

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小小小幸运

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表