I olika fall kan du behöva hitta och ersätta en viss textbit i PDF-dokumenten. Att söka och uppdatera varje händelse manuellt kan dock kosta dig extra tid och ansträngning. I sådana fall gör alternativet hitta och ersätt ditt liv enklare. I den här artikeln kommer du att lära dig hur du hittar och ersätter text i PDF-dokument med Java.
- Java-bibliotek för att hitta och ersätta text i PDF
- Hitta och ersätt text i PDF med Java
- Ersätt text på en viss sida i PDF
- Ersätt text med reguljära uttryck
Java-bibliotek för att hitta och ersätta text i PDF
För att hitta och ersätta text i PDF kommer vi att använda Aspose.PDF för Java. Den är utformad för att generera och manipulera PDF-filer från Java-applikationer. Biblioteket tillhandahåller ett brett utbud av grundläggande såväl som avancerade PDF-manipuleringsfunktioner, inklusive att hitta och ersätta text.
Du kan antingen ladda ner biblioteket eller installera det med följande Maven-konfigurationer.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>22.12</version>
</dependency>
Hitta och ersätt text i PDF med Java
För att ersätta en viss text i PDF får du först alla textfragment som matchar söksträngen. När du har dem, ersätt helt enkelt varje fragment med uppdaterad text en efter en.
Följande är stegen för att hitta och ersätta text i en PDF-fil med Java.
- Ladda PDF-filen med klassen Document.
- Skapa ett objekt av klassen TextFragmentAbsorber och initiera det med texten du vill hitta och ersätta.
- Acceptera absorberaren för sidorna i PDF med metoden Document.getPages().accept(TextFragmentAbsorber).
- Hämta alla förekomster av texten som returneras av TextFragmentAbsorber.getTextFragments() till ett TextFragmentCollection objekt.
- Gå igenom varje TextFragment i objektet TextFragmentCollection och ersätt texten med metoden TextFragment.setText(String).
- Spara den uppdaterade PDF-filen med metoden Document.save(String).
Följande kodexempel visar hur du hittar och ersätter text i PDF.
// För fullständiga exempel och datafiler, gå till https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Öppna dokumentet
Document pdfDocument = new Document("source.pdf");
// Skapa TextAbsorber-objekt för att hitta alla instanser av den inmatade sökfrasen
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// Acceptera absorbenten för alla sidor i dokumentet
pdfDocument.getPages().accept(textFragmentAbsorber);
// Hämta de extraherade textfragmenten i samlingen
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// Gå igenom fragmenten
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// Uppdatera text och andra egenskaper
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Spara den uppdaterade PDF-filen
pdfDocument.save("Updated_Text.pdf");
Sök och ersätt text på en viss sida i PDF
Istället för att hitta och ersätta text i hela PDF-filen kan du ange en enda sida där du vill ersätta textförekomsterna. I det här fallet accepterar du TextFragmentAbsorber för en viss sida endast genom att ange sidindex.
Följande är stegen för att söka och ersätta text på en viss sida i PDF i Java.
- Ladda PDF-filen med klassen Document.
- Skapa ett objekt av klassen TextFragmentAbsorber och initiera det med texten du vill hitta och ersätta.
- Acceptera absorberaren för en viss sida i PDF med metoden Document.getPages().getItem(Int pageIndex).accept(TextFragmentAbsorber).
- Hämta alla förekomster av texten som returneras av TextFragmentAbsorber.getTextFragments() till objektet TextFragmentCollection.
- Gå igenom varje TextFragment i objektet TextFragmentCollection och ersätt texten med metoden TextFragment.setText(String).
- Spara den uppdaterade PDF-filen med metoden Document.save(String).
Följande kodexempel visar hur du hittar och ersätter text på en viss sida i PDF med Java.
// För fullständiga exempel och datafiler, gå till https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Öppna dokumentet
Document pdfDocument = new Document("source.pdf");
// Skapa TextAbsorber-objekt för att hitta alla instanser av den inmatade sökfrasen
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// Acceptera absorbenten för första sidan av dokumentet
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);
// Hämta de extraherade textfragmenten i samlingen
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// Gå igenom fragmenten
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// Uppdatera text och andra egenskaper
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Spara den uppdaterade PDF-filen
pdfDocument.save("Updated_Text.pdf");
Java Hitta och ersätt text i PDF med Regex
Du kan också ange ett reguljärt uttryck för att söka i texten som matchar ett visst mönster såsom e-postmeddelanden, SSN:er etc. Följande är stegen för att definiera och använda ett reguljärt uttryck för att söka och ersätta text i PDF med Java.
- Ladda PDF-filen med klassen Document.
- Skapa ett objekt av klassen TextFragmentAbsorber och initiera det med det reguljära uttryck du vill använda.
- Skapa ett objekt av klassen TextSearchOptions och initiera det med true för att aktivera den reguljära uttrycksbaserade sökningen.
- Ställ in alternativ med metoden TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions).
- Acceptera absorberaren för sidorna i PDF med metoden Document.getPages().accept(TextFragmentAbsorber).
- Hämta alla hittade förekomster av texten som returneras av TextFragmentAbsorber.getTextFragments() till objektet TextFragmentCollection.
- Gå igenom varje TextFragment i objektet TextFragmentCollection och ersätt texten med metoden TextFragment.setText(String).
- Spara den uppdaterade PDF-filen med metoden Document.save(String).
Följande kodexempel visar hur du hittar och ersätter text i PDF med hjälp av reguljära uttryck.
// För fullständiga exempel och datafiler, gå till https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Öppna dokumentet
Document pdfDocument = new Document("input.pdf");
// Skapa TextAbsorber-objekt för att hitta alla instanser av den inmatade sökfrasen
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000
// Ställ in textsökningsalternativ för att aktivera användning av reguljära uttryck
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);
// Acceptera absorbenten för alla sidor i dokumentet
pdfDocument.getPages().accept(textFragmentAbsorber);
// Hämta de extraherade textfragmenten i samlingen
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// Gå igenom fragmenten
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// Uppdatera text och andra egenskaper
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Spara den uppdaterade PDF-filen
pdfDocument.save("Updated_Text.pdf");
Gratis Java-bibliotek för att ersätta text i PDF
Du kan få en gratis tillfällig licens och hitta och ersätta text i PDF utan några begränsningar.
Utforska Java PDF-bibliotek
Du kan utforska mer om Java PDF-biblioteket med hjälp av dokumentation.
Slutsats
I den här artikeln har du lärt dig hur du hittar och ersätter text i PDF med Java. Dessutom har du sett hur man använder ett reguljärt uttryck för att söka och ersätta text efter ett visst mönster.