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
- Najít a nahradit text v PDF pomocí Java
- Nahradit text na konkrétní stránce v PDF
- Nahraďte text regulárním výrazem
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.
- Načtěte soubor PDF pomocí třídy Document.
- Vytvořte objekt třídy TextFragmentAbsorber a inicializujte jej textem, který chcete najít a nahradit.
- Přijměte absorbér pro stránky v PDF pomocí metody Document.getPages().accept(TextFragmentAbsorber).
- Získejte všechny výskyty textu vráceného TextFragmentAbsorber.getTextFragments() do objektu TextFragmentCollection.
- Projděte každý TextFragment v objektu TextFragmentCollection a nahraďte text pomocí metody TextFragment.setText(String).
- Uložte aktualizovaný soubor PDF pomocí metody Document.save(String).
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ě.
- Načtěte soubor PDF pomocí třídy Document.
- Vytvořte objekt třídy TextFragmentAbsorber a inicializujte jej textem, který chcete najít a nahradit.
- Přijměte absorbér pro konkrétní stránku v PDF pomocí metody Document.getPages().getItem(Int pageIndex).accept(TextFragmentAbsorber).
- Získejte všechny výskyty textu vráceného funkcí TextFragmentAbsorber.getTextFragments() do objektu TextFragmentCollection.
- Projděte každý TextFragment v objektu TextFragmentCollection a nahraďte text pomocí metody TextFragment.setText(String).
- Uložte aktualizovaný soubor PDF pomocí metody Document.save(String).
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.
- Načtěte soubor PDF pomocí třídy Document.
- Vytvořte objekt třídy TextFragmentAbsorber a inicializujte jej regulárním výrazem, který chcete použít.
- Vytvořte objekt třídy TextSearchOptions a inicializujte jej hodnotou true, abyste povolili vyhledávání založené na regulárních výrazech.
- Nastavte možnosti pomocí metody TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions).
- Přijměte absorbér pro stránky v PDF pomocí metody Document.getPages().accept(TextFragmentAbsorber).
- Získejte všechny nalezené výskyty textu vráceného TextFragmentAbsorber.getTextFragments() do objektu TextFragmentCollection.
- Projděte každý TextFragment v objektu TextFragmentCollection a nahraďte text pomocí metody TextFragment.setText(String).
- Uložte aktualizovaný soubor PDF pomocí metody Document.save(String).
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.