java 查找替換pdf中的指定文本
本文介紹通過(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)文章
java編程實(shí)現(xiàn)郵件定時(shí)發(fā)送的方法
這篇文章主要介紹了java編程實(shí)現(xiàn)郵件定時(shí)發(fā)送的方法,涉及Java基于定時(shí)器實(shí)現(xiàn)計(jì)劃任務(wù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Java中的logback標(biāo)記日志過(guò)濾器MarkerFilter詳解
這篇文章主要介紹了Java中的logback標(biāo)記日志過(guò)濾器MarkerFilter詳解,在logback-classic中存在一個(gè)全局過(guò)濾器TurboFilter,TurboFilter是與LoggerContext綁定,會(huì)在會(huì)在其它過(guò)濾器之前執(zhí)行,需要的朋友可以參考下2023-11-11Java的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