iText7 как добавить другой pdf в качестве фона к существующему pdf

#itext7

#itext7

Вопрос:

У меня есть 2 файла PDF. under — это одностраничный PDF-файл, который должен быть фоном для каждой страницы оригинала… Это не работает

         public static byte[] overlay(byte[] original, byte[] under)
        {
            using (var resultStream = new MemoryStream())
            {
            
                var pdfWriter = new PdfWriter(resultStream);
                var pdfReader = new PdfReader(new MemoryStream(original));
                var pdfDoc = new PdfDocument(pdfReader, pdfWriter);

                for (var p = 1; p <= pdfDoc.GetNumberOfPages(); p  ) 
                {
                    var pdfUnder = new PdfDocument(new PdfReader(new MemoryStream(under)));
                    var pdfUnderPage = pdfUnder.GetFirstPage().CopyAsFormXObject(pdfDoc);
                    var page = pdfDoc.GetPage(p);
                    var canvas = new PdfCanvas(page.NewContentStreamBefore(),
                        page.GetResources(), pdfDoc);
                    canvas.AddXObjectAt(pdfUnderPage, 0, 0);
                    pdfUnder.Close();

                }
            
                pdfDoc.Close();
                return resultStream.ToArray();
            }
        }
 

Комментарии:

1. «Это не работает» — что вы имеете в виду под этим? Он не компилируется? Компилируется ли он, но выдает исключение? Разве он не выдает исключение, но результат получается не таким, как ожидалось? С некоторыми подробностями, пожалуйста.

2. Он компилируется, он работает без исключений, но выводит исходный документ без наложения

3. Пожалуйста, поделитесь файлами pdf. Этот код должен работать, если только не PDF-файлы. Не могут быть использованы.