欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實(shí)現(xiàn)將TXT文本文件轉(zhuǎn)換為PDF文件

 更新時(shí)間:2024年02月27日 12:00:24   作者:E-iceblue  
與TXT文本文件,PDF文件更加專業(yè)也更適合傳輸,所以這篇文章小編主要為大家詳細(xì)介紹了如何使用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文檔的功能。其官方介紹如下:

免費(fèi)Java 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)文章

  • 舉例講解Java中的多線程編程

    舉例講解Java中的多線程編程

    這篇文章主要介紹了舉例講解Java中的多線程編程,線程是Java學(xué)習(xí)中的重要知識(shí),需要的朋友可以參考下
    2015-09-09
  • Java8中Stream流求最大值最小值的實(shí)現(xià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-04
  • Spring Security使用單點(diǎn)登錄的權(quán)限功能

    Spring 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-04
  • Java中IdentityHashMap與HashMap區(qū)別詳解

    Java中IdentityHashMap與HashMap區(qū)別詳解

    這篇文章主要介紹了Java中IdentityHashMap與HashMap區(qū)別詳解,很多人不曉得IdentityHashMap的存在,其中不乏工作很多年的Java開(kāi)發(fā)者,他們看到就說(shuō)是第三方j(luò)ar包,實(shí)際上它是Jdk源碼自帶的集合類,需要的朋友可以參考下
    2023-11-11
  • Java高級(jí)之HashMap中的entrySet()方法使用

    Java高級(jí)之HashMap中的entrySet()方法使用

    這篇文章主要介紹了Java高級(jí)之HashMap中的entrySet()方法使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Mybatis自定義typeHandle過(guò)程解析

    Mybatis自定義typeHandle過(guò)程解析

    這篇文章主要介紹了Mybatis自定義typeHandle過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 基于RecyclerChart的KLine的繪制Scale詳解

    基于RecyclerChart的KLine的繪制Scale詳解

    這篇文章主要為大家詳細(xì)介紹了基于RecyclerChart實(shí)現(xiàn)KLine繪制Scale的相關(guān)資料,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • ProtoStuff不支持BigDecimal序列化及反序列化詳解

    ProtoStuff不支持BigDecimal序列化及反序列化詳解

    這篇文章主要為大家介紹了ProtoStuff不支持BigDecimal序列化/反序列化,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • java自帶的四種線程池實(shí)例詳解

    java自帶的四種線程池實(shí)例詳解

    java線程的創(chuàng)建非常昂貴,需要JVM和OS(操作系統(tǒng))互相配合完成大量的工作,下面這篇文章主要給大家介紹了關(guān)于java自帶的四種線程池的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 在IDEA啟動(dòng)多個(gè)Spring Boot工程實(shí)例

    在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

最新評(píng)論