Java實(shí)現(xiàn)將TXT文本文件轉(zhuǎn)換為PDF文件
與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文檔的功能。其官方介紹如下:
下載安裝:從以下鏈接下載最新版本并添加引用到你的Java項(xiàng)目中。或者通過(guò)Mave倉(cāng)庫(kù)安裝。
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類的對(duì)象 PdfDocument pdf = new PdfDocument(); //添加一個(gè)頁(yè)面 PdfPageBase page = pdf.getPages().add(); //創(chuàng)建PdfFont類的對(duì)象 Font font = new Font("宋體", Font.PLAIN, 11); PdfTrueTypeFont font1 = new PdfTrueTypeFont(font); //創(chuàng)建PdfTextLayout類的對(duì)象 PdfTextLayout textLayout = new PdfTextLayout(); textLayout.setBreak(PdfLayoutBreakType.Fit_Page); textLayout.setLayout(PdfLayoutType.Paginate); //創(chuàng)建PdfStringFormat類的對(duì)象 PdfStringFormat format = new PdfStringFormat(); format.setLineSpacing(20f); //用讀取的文本創(chuàng)建PdfTextWidget類的對(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)。
方法補(bǔ)充
除了上文的方法,小編還為大家整理了其他Java將TXT轉(zhuǎn)為pdf的方法,希望對(duì)大家有所幫助
方法一:
引用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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java8中Stream流求最大值最小值的實(shí)現(xiàn)示例
本文主要介紹了Java8中Stream流求最大值最小值的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Spring Security使用單點(diǎn)登錄的權(quán)限功能
本文主要介紹了Spring Security使用單點(diǎn)登錄的權(quán)限功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04Java中IdentityHashMap與HashMap區(qū)別詳解
這篇文章主要介紹了Java中IdentityHashMap與HashMap區(qū)別詳解,很多人不曉得IdentityHashMap的存在,其中不乏工作很多年的Java開(kāi)發(fā)者,他們看到就說(shuō)是第三方j(luò)ar包,實(shí)際上它是Jdk源碼自帶的集合類,需要的朋友可以參考下2023-11-11Java高級(jí)之HashMap中的entrySet()方法使用
這篇文章主要介紹了Java高級(jí)之HashMap中的entrySet()方法使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03基于RecyclerChart的KLine的繪制Scale詳解
這篇文章主要為大家詳細(xì)介紹了基于RecyclerChart實(shí)現(xiàn)KLine繪制Scale的相關(guān)資料,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03ProtoStuff不支持BigDecimal序列化及反序列化詳解
這篇文章主要為大家介紹了ProtoStuff不支持BigDecimal序列化/反序列化,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08在IDEA啟動(dòng)多個(gè)Spring Boot工程實(shí)例
這篇文章主要介紹了在IDEA啟動(dòng)多個(gè)Spring Boot工程實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01