í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;
}}