Замена текста в PDF файле
Замена текста в существующем PDF файле (facades)
Чтобы заменить текст в существующем PDF файле, вам нужно создать объект класса pdfContentEditor и связать входной PDF файл с помощью метода bindPdf. После этого вам нужно вызвать метод replaceText. Вам нужно сохранить обновленный PDF файл, используя метод save класса pdfContentEditor. Следующий фрагмент кода показывает, как заменить текст в существующем PDF файле.
package com.aspose.pdf.examples;
import com.aspose.pdf.TextState;
import com.aspose.pdf.facades.PdfContentEditor;
import com.aspose.pdf.facades.ReplaceTextStrategy;
public class PdfContentEditorText {
private static String _dataDir = "/home/aspose/pdf-examples/Samples/";
public static void ReplaceText01(){
PdfContentEditor editor = new PdfContentEditor();
editor.bindPdf(_dataDir+"sample.pdf");
editor.replaceText("Value", "Label");
// сохранить выходной файл
editor.save(_dataDir+"replaced_text_demo.pdf");
}
Проверьте, как это выглядит в оригинальном документе:
И проверьте результат после замены текста:
Во втором примере вы увидите, как, помимо замены текста, вы также можете увеличить или уменьшить размер шрифта:
public static void ReplaceText02(){
PdfContentEditor editor = new PdfContentEditor();
editor.bindPdf(_dataDir+"sample.pdf");
editor.replaceText("Value", "Label", 12);
// сохранить выходной файл
editor.save(_dataDir+"replaced_text_demo.pdf");
}
Для более продвинутых возможностей работы с нашим текстом мы будем использовать метод TextState. С помощью этого метода мы можем сделать текст жирным, курсивным, цветным и так далее.
public static void ReplaceText03(){
PdfContentEditor editor = new PdfContentEditor();
editor.bindPdf(_dataDir+"sample.pdf");
TextState textState = new TextState();
textState.setFontSize(12);
editor.replaceText("Value", "Label", textState);
// сохранить выходной файл
editor.save(_dataDir+"replaced_text_demo.pdf");
}
В случае, если вам нужно заменить весь указанный текст в документе, используйте следующий фрагмент кода. То есть замена текста произойдет везде, где будет встречаться текст, указанный для замены, и также будет подсчитано количество таких замен.
public static void ReplaceText04()
{
PdfContentEditor editor = new PdfContentEditor();
editor.bindPdf(_dataDir + "sample.pdf");
int count = 0;
while (editor.replaceText("Value", "Label")) count++;
System.out.println(count+" occurrences have been replaced.");
// сохранить выходной файл
editor.save(_dataDir + "PdfContentEditorDemo04.pdf");
}
Следующий фрагмент кода показывает, как сделать все замены текста, но на определенной странице вашего документа.
public static void ReplaceText05()
{
PdfContentEditor editor = new PdfContentEditor();
editor.bindPdf(_dataDir + "sample.pdf");
int count = 0;
while (editor.replaceText("9999", 2, "ABCDE")) count++;
System.out.println(count+" occurrences have been replaced.");
// сохранить выходной файл
editor.save(_dataDir + "PdfContentEditorDemo05.pdf");
}
In the next code snippet, we will show how to replace, for example, a given number with the letters we need.
В следующем фрагменте кода мы покажем, как заменить, например, заданное число на нужные нам буквы.
public static void ReplaceText06()
{
PdfContentEditor editor = new PdfContentEditor();
ReplaceTextStrategy replaceTextStrategy = new ReplaceTextStrategy();
replaceTextStrategy.setRegularExpressionUsed(true);
replaceTextStrategy.setReplaceScope(ReplaceTextStrategy.Scope.ReplaceAll);
editor.setReplaceTextStrategy(replaceTextStrategy);
editor.bindPdf(_dataDir + "sample.pdf");
editor.replaceText("\\d{4}", "ABCDE");
// save the output file
// сохранить выходной файл
editor.save(_dataDir + "PdfContentEditorDemo06.pdf");
}
}