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

java 查找替換pdf中的指定文本

 更新時(shí)間:2020年12月30日 10:29:50   作者:E-iceblue  
這篇文章主要介紹了java 如何查找替換pdf中的指定文本,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下

本文介紹通過(guò)Java程序批量替換PDF中的指定文本內(nèi)容。

程序環(huán)境準(zhǔn)備如下:

程序使用環(huán)境如圖,需要注意的是,本文使用了免費(fèi)版的PDF jar工具;另外JDK版本建議使用高版本更佳。

  jar文件導(dǎo)入后,可調(diào)用Spire.PDF提供的接口、方法等操作PDF,參考如下導(dǎo)入結(jié)果:

 注:可手動(dòng)下載jar包。下載后,解壓文件,將lib文件夾下的Spire.Pdf.jar文件導(dǎo)入Java程序。

Java 代碼示例

import com.spire.pdf.*;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.general.find.PdfTextFindCollection;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfRGBColor;
import com.spire.pdf.graphics.PdfSolidBrush;
import com.spire.pdf.graphics.PdfTrueTypeFont;

import java.awt.*;
import java.awt.geom.Rectangle2D;

public class FindAndReplaceText {
  public static void main(String[] args) {
    //加載示例PDF文檔
    PdfDocument pdf = new PdfDocument();
    pdf.loadFromFile("咖啡豆.pdf");

    //遍歷文檔每一頁(yè)
    for (int i = 0; i < pdf.getPages().getCount(); i++)
    {
      //獲取所有頁(yè)面
      PdfPageBase page = pdf.getPages().get(i);

      //查找指定文本
      PdfTextFindCollection textFindCollection;
      textFindCollection = page.findText("咖啡",false);

      //創(chuàng)建畫刷、字體
      PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.red));
      PdfTrueTypeFont font1= new PdfTrueTypeFont(new Font("宋體",Font.PLAIN,9),true);

      //用新的文本字符替換原有文本
      Rectangle2D rec;
      for(PdfTextFind find: textFindCollection.getFinds())
      {
        rec = find.getBounds();
        page.getCanvas().drawRectangle(PdfBrushes.getWhite(), rec);
        page.getCanvas().drawString("Coffee", font1, brush1, rec);
      }

    }

    //保存文檔
    pdf.saveToFile("FindAndReplaceText.pdf");
    pdf.close();
  }
}

文本替換前后效果:

以上就是java 查找替換pdf中的指定文本的詳細(xì)內(nèi)容,更多關(guān)于java 查找替換文本的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • WebService的相關(guān)概念

    WebService的相關(guān)概念

    這篇文章主要介紹了WebService的相關(guān)概念的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • java基本教程之線程讓步 java多線程教程

    java基本教程之線程讓步 java多線程教程

    本文對(duì)Thread中的線程讓步方法yield()進(jìn)行介紹,yield()的作用是讓步。它能讓當(dāng)前線程由“運(yùn)行狀態(tài)”進(jìn)入到“就緒狀態(tài)”,從而讓其它具有相同優(yōu)先級(jí)的等待線程獲取執(zhí)行權(quán),大家參考使用吧
    2014-01-01
  • java編程實(shí)現(xiàn)郵件定時(shí)發(fā)送的方法

    java編程實(shí)現(xiàn)郵件定時(shí)發(fā)送的方法

    這篇文章主要介紹了java編程實(shí)現(xiàn)郵件定時(shí)發(fā)送的方法,涉及Java基于定時(shí)器實(shí)現(xiàn)計(jì)劃任務(wù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • Java中的logback標(biāo)記日志過(guò)濾器MarkerFilter詳解

    Java中的logback標(biāo)記日志過(guò)濾器MarkerFilter詳解

    這篇文章主要介紹了Java中的logback標(biāo)記日志過(guò)濾器MarkerFilter詳解,在logback-classic中存在一個(gè)全局過(guò)濾器TurboFilter,TurboFilter是與LoggerContext綁定,會(huì)在會(huì)在其它過(guò)濾器之前執(zhí)行,需要的朋友可以參考下
    2023-11-11
  • Java的Socket實(shí)現(xiàn)長(zhǎng)連接以及數(shù)據(jù)的發(fā)送和接收方式

    Java的Socket實(shí)現(xiàn)長(zhǎng)連接以及數(shù)據(jù)的發(fā)送和接收方式

    這篇文章主要介紹了Java的Socket實(shí)現(xiàn)長(zhǎng)連接以及數(shù)據(jù)的發(fā)送和接收方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java中Map.entry的具體使用

    Java中Map.entry的具體使用

    Map.Entry?是Map中的一個(gè)接口,Map.Entry里有相應(yīng)的getKey和getValue方法,讓我們能夠從一個(gè)項(xiàng)中取出Key和Value,本文就詳細(xì)的介紹一下Map.entry的具體使用,感興趣的可以了解一下
    2023-05-05
  • Java RandomAccessFile的用法詳解

    Java RandomAccessFile的用法詳解

    下面小編就為大家?guī)?lái)一篇Java RandomAccessFile的用法詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • 淺談java IO流——四大抽象類

    淺談java IO流——四大抽象類

    這篇文章主要介紹了java IO流——四大抽象類,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • IDEA 格式化SQL代碼技巧分享

    IDEA 格式化SQL代碼技巧分享

    這篇文章主要介紹了IDEA 格式化SQL代碼技巧分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • java彈幕小游戲1.0版本

    java彈幕小游戲1.0版本

    這篇文章主要為大家詳細(xì)介紹了java彈幕小游戲1.0版本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10

最新評(píng)論