如何使用PDFOne Java对PDF文件里的文本进行修订

作者:控件中国网   出处:控件中国网   2015-07-16 15:47:24   阅读:8

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();
    }
}

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat