1. 程式人生 > 實用技巧 >Java 查詢並替換PDF中的指定文字

Java 查詢並替換PDF中的指定文字

本文介紹通過Java程式批量替換PDF中的指定文字內容。

1. 程式環境準備如下:

程式使用環境如圖,需要注意的是,本文使用了免費版的PDF jar工具;另外JDK版本建議使用高版本更佳。

jar檔案匯入後,可呼叫Spire.PDF提供的介面、方法等操作PDF,參考如下匯入結果:

注:可手動下載jar包。下載後,解壓檔案,將lib資料夾下的Spire.Pdf.jar檔案匯入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"); //遍歷文件每一頁 for (int i = 0; i < pdf.getPages().getCount(); i++) { //獲取所有頁面 PdfPageBase page = pdf.getPages().get(i); //查詢指定文字 PdfTextFindCollection textFindCollection; textFindCollection
= page.findText("咖啡",false); //建立畫刷、字型 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(); } }

文字替換前後效果: