Najít a nahradit text v PDF Java

V různých případech může být nutné najít a nahradit konkrétní část textu v dokumentech PDF. Ruční vyhledávání a aktualizace každého výskytu vás však může stát čas a úsilí navíc. V takových případech vám možnost najít a nahradit usnadňuje život. V tomto článku se dozvíte, jak najít a nahradit text v dokumentech PDF pomocí Java.

Knihovna Java pro vyhledání a nahrazení textu v PDF

K vyhledání a nahrazení textu v PDF použijeme Aspose.PDF for Java. Je určen pro generování a manipulaci se soubory PDF z aplikací Java. Knihovna poskytuje širokou škálu základních i pokročilých funkcí pro manipulaci s PDF, včetně hledání a nahrazování textu.

Knihovnu si můžete buď stáhnout, nebo ji nainstalovat pomocí následujících konfigurací Maven.

<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>

Najít a nahradit text v PDF pomocí Java

Chcete-li nahradit konkrétní text v PDF, měli byste nejprve získat všechny části textu odpovídající hledanému řetězci. Jakmile je budete mít, jednoduše nahraďte každý fragment aktualizovaným textem jeden po druhém.

Níže jsou uvedeny kroky k vyhledání a nahrazení textu v souboru PDF pomocí Java.

Následující ukázka kódu ukazuje, jak najít a nahradit text v PDF.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otevřete dokument
Document pdfDocument = new Document("source.pdf");

// Vytvořte objekt TextAbsorber, abyste našli všechny výskyty vstupní hledané fráze
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Přijměte absorbér pro všechny stránky dokumentu
pdfDocument.getPages().accept(textFragmentAbsorber);

// Získejte extrahované fragmenty textu do sbírky
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Projděte fragmenty
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Aktualizujte text a další vlastnosti
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Uložte aktualizovaný soubor PDF
pdfDocument.save("Updated_Text.pdf");

Vyhledejte a nahraďte text na konkrétní stránce v PDF

Místo hledání a nahrazování textu v celém PDF můžete určit jednu stránku, na které chcete nahradit výskyty textu. V tomto případě přijmete TextFragmentAbsorber pro konkrétní stránku pouze zadáním indexu stránky.

Následují kroky k vyhledání a nahrazení textu na konkrétní stránce v PDF v Javě.

Následující ukázka kódu ukazuje, jak najít a nahradit text na konkrétní stránce v PDF pomocí Java.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otevřete dokument
Document pdfDocument = new Document("source.pdf");

// Vytvořte objekt TextAbsorber, abyste našli všechny výskyty vstupní hledané fráze
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Přijměte absorbér pro první stránku dokumentu
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);

// Získejte extrahované fragmenty textu do sbírky
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Projděte fragmenty
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Aktualizujte text a další vlastnosti
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Uložte aktualizovaný soubor PDF
pdfDocument.save("Updated_Text.pdf");

Java Najít a nahradit text v PDF pomocí Regex

Můžete také zadat regulární výraz pro vyhledávání textu, který odpovídá určitému vzoru, jako jsou e-maily, SSN atd. Níže jsou uvedeny kroky k definování a použití regulárního výrazu k vyhledávání a nahrazování textu v PDF pomocí Java.

Následující ukázka kódu ukazuje, jak najít a nahradit text v PDF pomocí regulárního výrazu.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Otevřete dokument
Document pdfDocument = new Document("input.pdf");

// Vytvořte objekt TextAbsorber, abyste našli všechny výskyty vstupní hledané fráze
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000

// Chcete-li povolit použití regulárních výrazů, nastavte možnost textového vyhledávání
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);

// Přijměte absorbér pro všechny stránky dokumentu
pdfDocument.getPages().accept(textFragmentAbsorber);

// Získejte extrahované fragmenty textu do sbírky
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Projděte fragmenty
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Aktualizujte text a další vlastnosti
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}

// Uložte aktualizovaný soubor PDF
pdfDocument.save("Updated_Text.pdf");

Bezplatná Java knihovna pro nahrazení textu v PDF

Můžete získat bezplatnou dočasnou licenci a vyhledávat a nahrazovat text v PDF bez jakýchkoli omezení.

Prozkoumejte Java PDF Library

Více o knihovně Java PDF můžete prozkoumat pomocí dokumentace.

Závěr

V tomto článku jste se naučili najít a nahradit text v PDF pomocí Java. Dále jste viděli, jak používat regulární výraz k vyhledávání a nahrazování textu podle určitého vzoru.

Viz také