用文本删除PDF页面,每次都会引起新的输出哈希



ím与这样的代码一起工作以从PDF文件中删除某些页面。

PdfReader reader = new PdfReader(src);
reader.selectPages("1,2");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();

我的问题是,每次我运行此此操作(相同的输入文件,相同页面),输出文件具有独特的哈希(使用md = messageInstance(" sha1")需要这样的

inputFile.pdf (hash_A)
selectPages("1,2")
outputFile.pdf (hash_B)
inputFile.pdf (hash_A)
selectPages("1,2")
outputFile.pdf (hash_B)

但是我得到了这个

inputFile.pdf (hash_A)
selectPages("1,2")
outputFile.pdf (hash_B)
inputFile.pdf (hash_A)
selectPages("1,2")
outputFile.pdf (hash_C)
inputFile.pdf (hash_A)
selectPages("1,2")
outputFile.pdf (hash_D)

代码

public String quitarPagBlancasPDF(String origen, String destino, int blankPdfsize) {
        try {
            com.itextpdf.text.pdf.PdfReader r = new com.itextpdf.text.pdf.PdfReader(origen);
            String paginas = "";
            boolean editado = false;
            for (int i = 1; i <= r.getNumberOfPages(); i++) {
                byte bContent[] = r.getPageContent(i);
                if (bContent.length > blankPdfsize) {
                    paginas += String.valueOf(i) + ",";
                } else {
                    editado = true;
                }
            }
            if (editado) {
                r.selectPages(paginas);
                PdfStamper stamper = new PdfStamper(r, new FileOutputStream(destino));
                stamper.setFullCompression();
                stamper.close();
                stamper = null;
                r = null;
            } else {
                r = null;
                return "Sin Cambios";
            }
        } catch (Exception e) {
            return e.getMessage();
        }
        return "OK";
    }

最终销售的decidímíunun hash-con和contenids de cada del del pdf for to n to the te the the the the the pdf的儿子iguales

 public static String getPdfSha(String origen, String metodo) {
        try {
            com.itextpdf.text.pdf.PdfReader r = new com.itextpdf.text.pdf.PdfReader(origen);
            String Sha = "";
            for (int i = 1; i <= r.getNumberOfPages(); i++) {
                byte bContent[] = r.getPageContent(i);
                Sha = Sha + Arrays.toString(bContent);
            }
            Sha = encriptar(Sha, metodo);
            return Sha;
        } catch (Exception e) {
            return "";
        }
    }

p> pblicking静态字符串封闭(字符串文本,字符串algoritm){

String sha;
try {
    java.security.MessageDigest md = java.security.MessageDigest.getInstance(algoritmo);
    byte[] hash = md.digest(texto.getBytes());
    java.util.Formatter formatter = new java.util.Formatter();
    for (byte b : hash) {
        formatter.format("%02x", b);
    }
    sha = formatter.toString();
    formatter = null;
    hash = null;
    md = null;
} catch (java.security.NoSuchAlgorithmException e) {
    return "";
}
return sha;

}}

最新更新