Как уже говорили другие, идея (по крайней мере, основная часть идеи) подписания заключается в том, чтобы убедиться, что документ не изменился.Слияние, с другой стороны, меняет документ.Таким образом, объединение приведет к повреждению подписей.
Однако другой подход заключается в том, чтобы сделать другой «нормальный» PDF переносимой коллекцией (особый вид PDF с вложениями) и прикрепить подписанный PDF к этой коллекции..
При открытии подписанного PDF из коллекции подпись будет не повреждена, как в оригинальном подписанном PDF.
Пример кода для создания переносной коллекции
Вы можетеНайдите пример создания портативной коллекции на сайте iText:
public static final String DEST = "results/collections/portable_collection.pdf";
public static final String DATA = "resources/data/united_states.csv";
public static final String HELLO = "resources/pdfs/hello.pdf";
public static final String IMG = "resources/images/berlin2013.jpg";
public void createPdf(String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
document.add(new Paragraph("Portable collection"));
PdfCollection collection = new PdfCollection(PdfCollection.TILE);
writer.setCollection(collection);
PdfFileSpecification fileSpec = PdfFileSpecification.fileEmbedded(
writer, DATA, "united_states.csv", null);
writer.addFileAttachment("united_states.csv", fileSpec);
fileSpec = PdfFileSpecification.fileEmbedded(
writer, HELLO, "hello.pdf", null);
writer.addFileAttachment("hello.pdf", fileSpec);
fileSpec = PdfFileSpecification.fileEmbedded(
writer, IMG, "berlin2013.jpg", null);
writer.addFileAttachment("berlin2013.jpg", fileSpec);
document.close();
}
( здесь на веб-сайте, здесь в их github)
Результат выполнения этого примера: здесь .
(Поскольку вы использовали тег itext, а не itext7, я предполагаю, что вы используете версию iText5.5.x.)