Java實(shí)現(xiàn)將TXT文本文件轉(zhuǎn)換為PDF文件
與TXT文本文件,PDF文件更加專業(yè)也更適合傳輸,常用于正式報告、簡歷、合同等場合。項(xiàng)目中如果有使用Java將TXT文本文件轉(zhuǎn)為PDF文件的需求,可以查看本文中介紹的免費(fèi)實(shí)現(xiàn)方法。
免費(fèi)Java PDF庫
本文介紹的方法需要用到Free Spire.PDF for Java,該免費(fèi)庫支持多種操作、轉(zhuǎn)換PDF文檔的功能。其官方介紹如下:
下載安裝:從以下鏈接下載最新版本并添加引用到你的Java項(xiàng)目中?;蛘咄ㄟ^Mave倉庫安裝。
https://www.e-iceblue.cn/Downloads/Free-Spire-PDF-JAVA.html
TXT文本轉(zhuǎn)PDF示例代碼
Free Spire.PDF for Java 提供的TXT文本文件轉(zhuǎn)為PDF文件的方法實(shí)際上是先通過 readTextFromFile 方法讀取txt文件中的文本,然后再將讀取的文件使用 PdfTextWidget.draw() 方法繪制到 PDF 頁面上的指定位置。
該免費(fèi)Java庫還提供了接口,允許設(shè)置繪制文本的字體、字體顏色、對齊樣式等。下面是一個簡單的示例,展示了如何將一個TXT文件轉(zhuǎn)換為一個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");
//創(chuàng)建PdfDocument類的對象
PdfDocument pdf = new PdfDocument();
//添加一個頁面
PdfPageBase page = pdf.getPages().add();
//創(chuàng)建PdfFont類的對象
Font font = new Font("宋體", Font.PLAIN, 11);
PdfTrueTypeFont font1 = new PdfTrueTypeFont(font);
//創(chuàng)建PdfTextLayout類的對象
PdfTextLayout textLayout = new PdfTextLayout();
textLayout.setBreak(PdfLayoutBreakType.Fit_Page);
textLayout.setLayout(PdfLayoutType.Paginate);
//創(chuàng)建PdfStringFormat類的對象
PdfStringFormat format = new PdfStringFormat();
format.setLineSpacing(20f);
//用讀取的文本創(chuàng)建PdfTextWidget類的對象
PdfTextWidget textWidget = new PdfTextWidget(text, font1, PdfBrushes.getBlack());
//設(shè)置字符格式
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);
//保存結(jié)果文件
pdf.saveToFile("TXT轉(zhuǎn)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();
}
}輸入輸出文檔示例:

通過運(yùn)行以上代碼就可以讀取txt文件的內(nèi)容生成PDF文件。如果還需要在PDF文件中添加圖片、表格、形狀等各種元素,可以通過Free Spire.PDF提供的其他API接口來實(shí)現(xiàn)。
方法補(bǔ)充
除了上文的方法,小編還為大家整理了其他Java將TXT轉(zhuǎn)為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;
/**
* 將文本內(nèi)容轉(zhuǎn)成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);
// 設(shè)置標(biāo)題
Paragraph pHeader = new Paragraph("line",font);
// 設(shè)置標(biāo)題居中
pHeader.setAlignment(Element.ALIGN_CENTER);
// 設(shè)置正文
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();
}
}
}到此這篇關(guān)于Java實(shí)現(xiàn)將TXT文本文件轉(zhuǎn)換為PDF文件 的文章就介紹到這了,更多相關(guān)Java TXT轉(zhuǎn)PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java8中Stream流求最大值最小值的實(shí)現(xiàn)示例
本文主要介紹了Java8中Stream流求最大值最小值的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Spring Security使用單點(diǎn)登錄的權(quán)限功能
本文主要介紹了Spring Security使用單點(diǎn)登錄的權(quán)限功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Java中IdentityHashMap與HashMap區(qū)別詳解
這篇文章主要介紹了Java中IdentityHashMap與HashMap區(qū)別詳解,很多人不曉得IdentityHashMap的存在,其中不乏工作很多年的Java開發(fā)者,他們看到就說是第三方j(luò)ar包,實(shí)際上它是Jdk源碼自帶的集合類,需要的朋友可以參考下2023-11-11
Java高級之HashMap中的entrySet()方法使用
這篇文章主要介紹了Java高級之HashMap中的entrySet()方法使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
基于RecyclerChart的KLine的繪制Scale詳解
這篇文章主要為大家詳細(xì)介紹了基于RecyclerChart實(shí)現(xiàn)KLine繪制Scale的相關(guān)資料,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03
ProtoStuff不支持BigDecimal序列化及反序列化詳解
這篇文章主要為大家介紹了ProtoStuff不支持BigDecimal序列化/反序列化,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

