Replaced text still shows on PDF. Example and code in attachment.
Hi Tony,
Thanks for your inquiry. I am afraid your shared document(Notes.pdf) is corrupt. We will appreciate it if you please share your sample code and input/output document here again. We will investigate the issue and provide you information accordingly.
We are sorry for the inconvenience caused.
Best Regards,
@Override<br> protected Boolean doInBackground() throws Exception {<br> boolean lbReturn = true;<br><br> try {<br> // Check extension.<br> if (FileUtility.isFileExtension(coSource, "PDF")) {<br> // Replace text in PDF.<br> doProcess(coSource);<br> }<br> } catch (Exception aoException) {<br> // Set return.<br> lbReturn = false;<br> }<br><br> return lbReturn;<br> }<br><br> /**<br> * Helper method to replace text in PDF.<br> * @param aoSource Source file.<br> */<br> private void doProcess(File aoSource) {<br> // Open document.<br> com.aspose.pdf.Document loDocument = new com.aspose.pdf.Document(aoSource.getPath());<br><br> // Process file using tag.<br> doProcess(loDocument);<br><br> // Save document.<br> loDocument.save(aoSource.getPath());<br><br> // Close document.<br> loDocument.close();<br> }<br><br> /**<br> * Helper method to replace text in file using tags.<br> * @param aoDocument Source document.<br> */<br> @SuppressWarnings("unchecked")<br> private void doProcess(com.aspose.pdf.Document aoDocument) {<br> // Set text search option to specify regular expression usage.<br> com.aspose.pdf.TextSearchOptions loTextSearchOptions = new com.aspose.pdf.TextSearchOptions(true);<br><br> // Create TextAbsorber object to find all instances of the input search phrase.<br> com.aspose.pdf.TextFragmentAbsorber loTextFragmentAbsorber = new com.aspose.pdf.TextFragmentAbsorber("<R=[a-zA-Z0-9]+?>", loTextSearchOptions);<br><br> // Accept the absorber for first page of document.<br> aoDocument.getPages().accept(loTextFragmentAbsorber);<br><br> // Get the extracted text fragments into collection.<br> com.aspose.pdf.TextFragmentCollection loTextFragmentCollection = loTextFragmentAbsorber.getTextFragments();<br><br> // Loop through the fragments.<br> for (com.aspose.pdf.TextFragment textFragment : (Iterable<com.aspose.pdf.TextFragment>)loTextFragmentCollection) {<br> // Get tag.<br> String lsTag = textFragment.getText();<br> // Replacement text.<br> String lsReplacement = lsTag.substring(lsTag.indexOf('=')+1, lsTag.length()-1);<br> // Replace text in document.<br> textFragment.setText(" " + lsReplacement);<br> }<br> }
Hi Tony,
Thanks for sharing the sample code and documents. I have tested the scenario using Aspose.Pdf for Java 10.6.1. However it is not keeping the replaced text but searching incorrect text so results in wrong replacement. I have logged a ticket PDFNEWJAVA-35089 in our issue tracking system for further investigation and resolution. We will keep you updated about the issue resolution progress.
We are sorry for the inconvenience caused.
Best Regards,