首页 > 解决方案 > 在 UIDAI aadhaar pdf 中屏蔽 aadhaar 编号

问题描述

有谁知道如何在从 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();
}

也尝试了这篇文章的建议(即,使用 pdfbox) 使用 JAVA 搜索和替换 PDF 中的文本

即使这不适用于aadhaar PDF,但适用于普通pdf

(我知道我们可以从 UIDAI 网站本身下载蒙面的 aadhaar pdf,但我需要通过 JAVA 来完成)

标签: javapdfitextpdfbox

解决方案


推荐阅读