Я пытаюсь сгенерировать счет из моего кода. В нижней части страницы счет-фактура должна содержать квитанцию об оплате.
Я нашел какую-то стороннюю библиотеку (не связанную с PDFsharp), которая генерирует PDF с бланком платежа в нижней части страницы в виде байта. массив. Теперь я пытаюсь загрузить этот PDF-файл с помощью PDFsharp и использовать MigraDo c для визуализации остальной части счета на той же странице.
Это мой код:
byte[] paymentSlipPdfBytes = GeneratePaymentSlipPdf(); // payment slip generated by some other library
using (MemoryStream ms = new MemoryStream(paymentSlipPdfBytes))
using (PdfDocument pdfDoc = PdfReader.Open(ms, PdfDocumentOpenMode.Modify))
using (XGraphics graphics = XGraphics.FromPdfPage(pdfDoc.Pages[0]))
{
Document invoiceDoc = GenerateInvoiceDocument(); // other content of the invoice generated using MigraDoc
DocumentRenderer docRenderer = new DocumentRenderer(invoiceDoc);
docRenderer.PrepareDocument();
docRenderer.RenderPage(graphics, 1, PageRenderOptions.All); // trying to render MigraDoc content on the page imported from other library
pdfDoc.Save("Invoice.pdf");
}
Полученный PDF-файл содержит только квитанцию об оплате, но я не вижу ничего отрисованного из документа MigraDo c.
Интересно, когда я добавляю вторую страницу к pdfDoc
и отображаю MigraDo c документ на эту вторую страницу, он отлично работает. Только когда я выполняю рендеринг на страницу, которая уже содержит платежную квитанцию, я не вижу контент MigraDo c.
Может ли быть так, что контент MigraDo c визуализируется «позади» существующего контента (квитанция об оплате) на этой странице, так что это будет закрыто? Как решить эту проблему?