在UIDAI aadhaar中屏蔽aadhaar号码pdf

问题描述

有人知道如何从UIDAI网站下载的aadhaar pdf中掩盖aadhaar号码。

我已经尝试过下面的itext代码。它不适用于aadhaar PDF,但适用于其他普通pdf

public static void main(String[] args) throws IOException,DocumentException {
    File file = new File(DEST);
    file.getParentFile().mkdirs();
    new MainClassName().manipulatePdf(SRC,DEST);
}

public void manipulatePdf(String src,String dest) throws IOException,DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfDictionary dict = reader.getPageN(1);
    PdfObject object = dict.getDirectObject(PdfName.CONTENTS);
    PdfArray refs = null;
    if (dict.get(PdfName.CONTENTS).isArray()) {
        refs = dict.getAsArray(PdfName.CONTENTS);
    } else if (dict.get(PdfName.CONTENTS).isIndirect()) {
        refs = new PdfArray(dict.get(PdfName.CONTENTS));
    }
    for (int i = 0; i < refs.getArrayList().size(); i++) {
        PRStream stream = (PRStream) refs.getDirectObject(i);
        byte[] data = PdfReader.getStreamBytes(stream);
        stream.setData(new String(data).replace("8989 7890 4567","XXXX XXXX 4567").getBytes());
    }
    pdfstamper stamper = new pdfstamper(reader,new FileOutputStream(dest));
    stamper.close();
    reader.close();
}

也尝试了此帖子中的建议(即使用pdfBoxSearch and replace text in PDF using JAVA

即使对于aadhaar PDF不起作用,但对于普通pdf也起作用

(我知道我们可以从UIDAI网站本身下载带遮罩的aadhaar pdf,但是我需要通过JAVA来完成此操作

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)