翻譯|使用教程|編輯:李顯亮|2021-02-22 09:42:57.130|閱讀 366 次
概述:在各種情況下,可能需要查找并替換PDF文檔中的特定文本。但是,手動(dòng)查找和更新每個(gè)事件可能會(huì)花費(fèi)您額外的時(shí)間和精力。在本文中,您將學(xué)習(xí)如何使用Java自動(dòng)查找和替換PDF文檔中的文本。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
在各種情況下,可能需要查找并替換PDF文檔中的特定文本。但是,手動(dòng)查找和更新每個(gè)事件可能會(huì)花費(fèi)您額外的時(shí)間和精力。在這種情況下,“查找并替換”選項(xiàng)使工作更輕松。在本文中,將學(xué)習(xí)如何使用Java自動(dòng)查找和替換PDF文檔中的文本。
Aspose.PDF for Java旨在從Java應(yīng)用程序內(nèi)部生成和處理PDF文件。該API提供了廣泛的基本和高級(jí)PDF操作功能,包括查找和替換文本。感興趣的朋友可點(diǎn)擊下方按鈕下載最新版。
點(diǎn)擊下載最新版Aspose.PDF for Java
為了替換PDF中的特定文本,首先需要獲取與搜索字符串匹配的所有文本片段。有了它們后,只需將每個(gè)片段替換為更新的文本即可。以下是在PDF文件中查找和替換文本的步驟。
下面的代碼示例演示如何使用Java查找和替換PDF中的文本。
// Open document Document pdfDocument = new Document("source.pdf"); // Create TextAbsorber object to find all instances of the input search phrase TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample"); // Accept the absorber for all pages of document pdfDocument.getPages().accept(textFragmentAbsorber); // Get the extracted text fragments into collection TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments(); // Loop through the fragments for (TextFragment textFragment : (Iterable) textFragmentCollection) { // Update text and other properties textFragment.setText("New Pharase"); textFragment.getTextState().setFont(FontRepository.findFont("Verdana")); textFragment.getTextState().setFontSize(22); textFragment.getTextState().setForegroundColor(Color.getBlue()); textFragment.getTextState().setBackgroundColor(Color.getGray()); } // Save the updated PDF file pdfDocument.save("Updated_Text.pdf");
除了在整個(gè)PDF中查找和替換文本外,您還可以指定一個(gè)頁(yè)面來(lái)替換出現(xiàn)的文本。在這種情況下,僅通過(guò)指定頁(yè)面索引即可接受特定頁(yè)面的TextFragmentAbsorber。以下是在PDF的特定頁(yè)面上查找和替換文本的步驟。
下面的代碼示例演示如何使用Java在PDF的特定頁(yè)面上查找和替換文本。
// Open document Document pdfDocument = new Document("source.pdf"); // Create TextAbsorber object to find all instances of the input search phrase TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample"); // Accept the absorber for first page of document pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber); // Get the extracted text fragments into collection TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments(); // Loop through the fragments for (TextFragment textFragment : (Iterable) textFragmentCollection) { // Update text and other properties textFragment.setText("New Pharase"); textFragment.getTextState().setFont(FontRepository.findFont("Verdana")); textFragment.getTextState().setFontSize(22); textFragment.getTextState().setForegroundColor(Color.getBlue()); textFragment.getTextState().setBackgroundColor(Color.getGray()); } // Save the updated PDF file pdfDocument.save("Updated_Text.pdf");
還可以指定正則表達(dá)式來(lái)查找與特定模式(例如電子郵件,SSN等)匹配的文本。以下是定義和使用正則表達(dá)式查找和替換PDF中文本的步驟。
下面的代碼示例演示如何使用Java中的正則表達(dá)式查找和替換PDF中的文本。
// Open document Document pdfDocument = new Document("input.pdf"); // Create TextAbsorber object to find all instances of the input search phrase TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000 // Set text search option to enable regular expression usage TextSearchOptions textSearchOptions = new TextSearchOptions(true); textFragmentAbsorber.setTextSearchOptions(textSearchOptions); // Accept the absorber for all pages of document pdfDocument.getPages().accept(textFragmentAbsorber); // Get the extracted text fragments into collection TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments(); // Loop through the fragments for (TextFragment textFragment : (Iterable) textFragmentCollection) { // Update text and other properties textFragment.setText("New Pharase"); textFragment.getTextState().setFont(FontRepository.findFont("Verdana")); textFragment.getTextState().setFontSize(22); textFragment.getTextState().setForegroundColor(Color.getBlue()); textFragment.getTextState().setBackgroundColor(Color.getGray()); } // Save the updated PDF file pdfDocument.save("Updated_Text.pdf");
如果你想試用Aspose的全部完整功能,可聯(lián)系在線(xiàn)客服獲取30天臨時(shí)授權(quán)體驗(yàn)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn