pdfファイルから特定のページを削除するために、このようなコードを使用しています。ITextでPDFページを削除するたびに新しい出力ハッシュが発生する
PdfReader reader = new PdfReader(src);
reader.selectPages("1,2");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
は私の問題は、私が何かを必要とする、私はこれを実行するたび(同じ入力ファイル、同じページ)、出力ファイルは(MD = MessageDigest.getInstance(「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";
}
Pdfsには、ドキュメントが最後に変更された日時と一意のIDに関する情報が含まれています。両方の要素が常に異なるハッシュ値になります。 – mkl