У меня есть две html строки, я пытаюсь записать их обе в 2 memoryStreams, затем прочитать один pdfDocument и CopyPagesTo в другой pdfDocument, а затем, наконец, вернуть memoryStream с объединенными документами.
{
string Document = "<p>Hello to All</p>";
string newPage = "<p>Additional Page</p>";
var mainStream = new MemoryStream();
using (PdfWriter pdfWriter = new PdfWriter(mainStream))
{
pdfWriter.SetCloseStream(false);
using (var document = HtmlConverter.ConvertToDocument(Document, pdfWriter)) { }
}
mainStream.Position = 0;
var newPageStream = new MemoryStream();
using (PdfWriter pdfWriter1 = new PdfWriter(newPageStream))
{
pdfWriter1.SetCloseStream(false);
using (var document = HtmlConverter.ConvertToDocument(newPage, pdfWriter1)) { }
};
mainStream = addNewPage(mainStream, newPageStream);
return mainStream;
}
Код для добавления новой страницы:
public static MemoryStream addNewPage(MemoryStream mainStream, MemoryStream newPageStream)
{
PdfWriter writer = new PdfWriter(mainStream);
PdfDocument pdfDoc = new PdfDocument(writer);
pdfDoc.InitializeOutlines();
PdfDocument addedDoc = new PdfDocument(new PdfReader(newPageStream));
addedDoc.CopyPagesTo(1, addedDoc.GetNumberOfPages(), pdfDoc);
mainStream.Position = 0;
using (PdfReader reader = new PdfReader(mainStream))
{
writer.SetCloseStream(false);
using (pdfDoc = new PdfDocument(reader, writer))
{
int z = pdfDoc.GetNumberOfPages();
}
}
addedDoc.Close();
return mainStream;
}