Самое простое решение здесь - использовать MemoryStream для сохранения временного файла PDF во время добавления в него. После некоторых исследований я обнаружил, что, как показывает mkl, класс PdfStamper не подходит для этой операции. В iTextSharp вы можете добавлять 2 PDF-файла другим способом:
MemoryStream stream = new MemoryStream();
PdfCopyFields copy = new PdfCopyFields(stream);
var ms1 = new MemoryStream(File.ReadAllBytes(file1Path));
ms1.Position = 0;
copy.AddDocument(new PdfReader(ms1));
ms1.Dispose();
var ms2 = new MemoryStream(File.ReadAllBytes(file2Path));
ms2.Position = 0;
copy.AddDocument(new PdfReader(ms2));
ms2.Dispose();
copy.Close();
Полученная переменная «stream» содержит объединенные PDF-файлы и может быть записана в файл с помощью PdfStamper.
При переключении наiText 7 для .net является опцией, PdfStamper может быть опущен, а взамен может использоваться метод PdfDocument.copyPagesTo ().
простой пример (с iText 7 для .net):
MemoryStream stream = new MemoryStream();
PdfDocument outputDocument = new PdfDocument(new PdfWriter(stream));
PdfDocument pdfSource = new PdfDocument(new PdfReader("c:\\firstInput.pdf"));
pdfSource.CopyPagesTo(1, pdfSource.GetNumberOfPages(), outputDocument);
pdfSource = new PdfDocument(new PdfReader("c:\\secondInput.pdf"));
pdfSource.CopyPagesTo(1, pdfSource.GetNumberOfPages(), outputDocument);
pdfSource.Close();
outputDocument.Close();
MemoryStream outputStream = new MemoryStream(stream.ToArray());
outputDocument = new PdfDocument(new PdfReader(outputStream), new PdfWriter("c:\\result.pdf"));
Отредактировано во второй раз с решением для конкретного варианта использования.