• <menu id="w2i4a"></menu>
  • logo Aspose.PDF使用教程

    文檔首頁>>Aspose.PDF使用教程>>Aspose.PDF功能演示:使用Java查找和替換PDF中的文本

    Aspose.PDF功能演示:使用Java查找和替換PDF中的文本


    在各種情況下,可能需要查找并替換PDF文檔中的特定文本。但是,手動查找和更新每個事件可能會花費您額外的時間和精力。在這種情況下,“查找并替換”選項使工作更輕松。在本文中,將學習如何使用Java自動查找和替換PDF文檔中的文本。

    • 使用Java查找和替換PDF中的文本
    • 替換PDF中特定頁面上的文本
    • 使用正則表達式替換文本

    Aspose.PDF for Java旨在從Java應用程序內部生成和處理PDF文件。該API提供了廣泛的基本和高級PDF操作功能,包括查找和替換文本。感興趣的朋友可點擊下方按鈕下載最新版。

    點擊下載最新版Aspose.PDF for Java

    PDF處理控件Aspose.PDF功能演示:使用Java查找和替換PDF中的文本

    使用Java查找和替換PDF中的文本

    為了替換PDF中的特定文本,首先需要獲取與搜索字符串匹配的所有文本片段。有了它們后,只需將每個片段替換為更新的文本即可。以下是在PDF文件中查找和替換文本的步驟。

    • 使用Document類加載PDF文件。
    • 創(chuàng)建一個TextFragmentAbsorber類的對象,并使用您要查找和替換的文本對其進行初始化。
    • 使用Document.getPages()。accept(TextFragmentAbsorber)方法為PDF頁面接受吸收器。
    • 將由TextFragmentAbsorber.getTextFragments()返回的所有出現(xiàn)的文本獲取到TextFragmentCollection對象中。
    • 循環(huán)遍歷TextFragmentCollection對象中的每個TextFragment,并使用TextFragment.setText(String)方法替換文本。
    • 使用Document.save(String)方法保存更新的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");
    

    替換PDF中特定頁面上的文本

    除了在整個PDF中查找和替換文本外,您還可以指定一個頁面來替換出現(xiàn)的文本。在這種情況下,僅通過指定頁面索引即可接受特定頁面的TextFragmentAbsorber。以下是在PDF的特定頁面上查找和替換文本的步驟。

    • 使用Document類加載PDF文件。
    • 創(chuàng)建一個TextFragmentAbsorber類的對象,并使用您要查找和替換的文本對其進行初始化。
    • 使用Document.getPages()。get_Item(Int pageIndex).accept(TextFragmentAbsorber)方法接受PDF中特定頁面的吸收器。
    • 將由TextFragmentAbsorber.getTextFragments()返回的所有出現(xiàn)的文本獲取到TextFragmentCollection對象中。
    • 循環(huán)遍歷TextFragmentCollection對象中的每個TextFragment,并使用TextFragment.setText(String)方法替換文本。
    • 使用Document.save(String)方法保存更新的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 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");
    

    使用PDF中的正則表達式替換文本

    還可以指定正則表達式來查找與特定模式(例如電子郵件,SSN等)匹配的文本。以下是定義和使用正則表達式查找和替換PDF中文本的步驟。

    • 使用Document類加載PDF文件。
    • 創(chuàng)建TextFragmentAbsorber類的對象,并使用要使用的正則表達式對其進行初始化。
    • 創(chuàng)建TextSearchOptions類的對象,并將其初始化為true以啟用基于正則表達式的搜索。
    • 使用TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions)方法設置選項。
    • 使用Document.getPages()。accept(TextFragmentAbsorber)方法為PDF頁面接受吸收器。
    • 將所有找到的由TextFragmentAbsorber.getTextFragments()返回的文本的出現(xiàn)都獲取到TextFragmentCollection對象中。
    • 循環(huán)遍歷TextFragmentCollection對象中的每個TextFragment,并使用TextFragment.setText(String)方法替換文本。
    • 使用Document.save(String)方法保存更新的PDF文件。

    下面的代碼示例演示如何使用Java中的正則表達式查找和替換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技術交流群(761297826),我們很高興為您提供查詢和咨詢。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();