做網(wǎng)站需要的素材資料手機(jī)一鍵優(yōu)化
與TXT文本文件,PDF文件更加專業(yè)也更適合傳輸,常用于正式報(bào)告、簡(jiǎn)歷、合同等場(chǎng)合。項(xiàng)目中如果有使用Java將TXT文本文件轉(zhuǎn)為PDF文件的需求,可以查看本文中介紹的免費(fèi)實(shí)現(xiàn)方法。
免費(fèi)Java PDF庫(kù)
本文介紹的方法需要用到Free Spire.PDF for Java,該免費(fèi)庫(kù)支持多種操作、轉(zhuǎn)換PDF文檔的功能。其官方介紹如下:
免費(fèi) Java PDF組件https://www.e-iceblue.cn/Introduce/Free-Spire-PDF-JAVA.html
下載安裝:從以下鏈接下載最新版本并添加引用到你的Java項(xiàng)目中。或者通過(guò)Mave倉(cāng)庫(kù)安裝。
Free Spire.PDF for JAVA | 下載下載Java PDF庫(kù)來(lái)閱讀、創(chuàng)建、操作、轉(zhuǎn)換以及打印PDF文檔。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í)際上是先通過(guò)readTextFromFile 方法讀取txt文件中的文本,然后再將讀取的文件使用 PdfTextWidget.draw() 方法繪制到 PDF 頁(yè)面上的指定位置。
該免費(fèi)Java庫(kù)還提供了接口,允許設(shè)置繪制文本的字體、字體顏色、對(duì)齊樣式等。下面是一個(gè)簡(jiǎn)單的示例,展示了如何將一個(gè)TXT文件轉(zhuǎn)換為一個(gè)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類(lèi)的對(duì)象PdfDocument pdf = new PdfDocument();//添加一個(gè)頁(yè)面PdfPageBase page = pdf.getPages().add();//創(chuàng)建PdfFont類(lèi)的對(duì)象Font font = new Font("宋體", Font.PLAIN, 11);PdfTrueTypeFont font1 = new PdfTrueTypeFont(font);//創(chuàng)建PdfTextLayout類(lèi)的對(duì)象PdfTextLayout textLayout = new PdfTextLayout();textLayout.setBreak(PdfLayoutBreakType.Fit_Page);textLayout.setLayout(PdfLayoutType.Paginate);//創(chuàng)建PdfStringFormat類(lèi)的對(duì)象PdfStringFormat format = new PdfStringFormat();format.setLineSpacing(20f);//用讀取的文本創(chuàng)建PdfTextWidget類(lèi)的對(duì)象PdfTextWidget textWidget = new PdfTextWidget(text, font1, PdfBrushes.getBlack());//設(shè)置字符格式textWidget.setStringFormat(format);//將文本添加到PDF頁(yè)面的指定位置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();}
}
輸入輸出文本示例:
通過(guò)運(yùn)行以上代碼就可以讀取txt文件的內(nèi)容生成PDF文件。如果還需要在PDF文件中添加圖片、表格、形狀等各種元素,可以通過(guò)Free Spire.PDF提供的其他API接口來(lái)實(shí)現(xiàn)。更多demo示例可查看:
Free Spire.PDF 中文教程https://www.e-iceblue.cn/spirepdfjava/spire-pdf-for-java-program-guide-content.html