在PDFOne Java版本4发布以后,新增了redactText()方法,该方法可以对PDF文档里的文本进行相应的修订,该方法有4种重载的方法,该方法可以为单页或者一定范围页内修订所有指定的文本,对文本进行搜索时可以是简单的文本字符串也可以是使用正则表表达式。这篇文章主要介绍如何进行PDF文档文本的修订,具体如下:
1.简单字符串文本修订
import java.awt.Color;
import java.io.IOException;
import com.Gnostice.pdfone.PDFOne;
import com.Gnostice.pdfone.PdfDocument;
import com.Gnostice.pdfone.PdfException;
import com.Gnostice.pdfone.PdfSearchMode;
import com.Gnostice.pdfone.PdfSearchOptions;
import com.Gnostice.pdfone.graphics.PdfBrush;
import com.Gnostice.pdfone.graphics.PdfPen;
public class Text_Redaction_Demo
{
public static void main(String[] args) throws IOException, PdfException, Exception {
// Create brush for fill the redacted regions
PdfBrush pbRedactBrush = new PdfBrush();
pbRedactBrush.fillColor = Color.YELLOW;
// Create pen to stroke the redacted regions
PdfPen pnRedactPen = new PdfPen();
pnRedactPen.strokeColor = Color.MAGENTA;
// Load a PDF document
PdfDocument doc = new PdfDocument();
doc.load("sample.pdf");
// Redact all instance of the text "Gnostice" in pages 1 and 2
doc.redactText("1-2",
"Gnostice",
PdfSearchMode.LITERAL,
PdfSearchOptions.NONE,
pnRedactPen,
pbRedactBrush,
true,
true);
// Save the redacted document to specified file
doc.setOpenAfterSave(true);
doc.save("redacted_doc.pdf");
doc.close();
}
}
2.使用正则表达式进行文本的修订
import java.awt.Color;
import java.io.IOException;
import com.Gnostice.pdfone.PDFOne;
import com.Gnostice.pdfone.PdfDocument;
import com.Gnostice.pdfone.PdfException;
import com.Gnostice.pdfone.PdfSearchMode;
import com.Gnostice.pdfone.PdfSearchOptions;
import com.Gnostice.pdfone.graphics.PdfBrush;
import com.Gnostice.pdfone.graphics.PdfPen;
public class Advanced_Text_Redaction_Demo
{
public static void main(String[] args) throws IOException, PdfException, Exception {
// Create brush for fill the redacted regions
PdfBrush pbRedactBrush = new PdfBrush();
pbRedactBrush.fillColor = Color.BLACK;
// Create pen to stroke the redacted regions
PdfPen pnRedactPen = new PdfPen();
pnRedactPen.strokeColor = Color.WHITE;
// Load a PDF document
PdfDocument doc = new PdfDocument();
doc.load("sample_doc2.pdf");
// Redact all URLs page 2
doc.redactText(2,
"http://{1}\\S+",
PdfSearchMode.REGEX,
PdfSearchOptions.NONE,
pnRedactPen,
pbRedactBrush,
true,
true);
// Save the redacted document to specified file
doc.setOpenAfterSave(true);
doc.save("redacted_doc.pdf");
doc.close();
}
}