Tengo cuatro MemoryStreams de datos que deseo fusionar y luego abro el pdfDocument, sin crear un solo archivo.Fusionar flujos de memoria a un documento de iText
Es posible escribirlos en archivos y luego fusionarlos, pero eso sería una mala práctica y eso también puede causar algunos problemas, así que quiero evitar eso.
Sin embargo, no encuentro una manera de combinar MemoryStreams con iText5 para .NET.
En este momento, así es como lo hago con los archivos:
private static void ConcatenateDocuments()
{
var stream = new MemoryStream();
var readerFrontPage = new PdfReader(Folder + FrontPageName);
var readerDocA = new PdfReader(Folder + docA);
var readerDocB = new PdfReader(Folder + DocB);
var readerAppendix = new PdfReader(Folder + Appendix);
var pdfCopyFields = new PdfCopyFields(stream);
pdfCopyFields.AddDocument(readerFrontPage);
pdfCopyFields.AddDocument(readerDocA);
pdfCopyFields.AddDocument(readerDocB);
pdfCopyFields.AddDocument(readerAppendix);
pdfCopyFields.Close();
SavePdf(stream, FilenameReport);
}
Desde que necesita para eliminar el uso de archivos, guardo la década de MemoryStream como las diferentes piezas se construyen a partir de diferentes recursos. Así que tengo referencias a estos flujos de memoria.
¿Cómo se puede hacer esto?
No se puede usar var readerFrontPage = new PdfReader (yourMemoryStream); – user629926
Esa es la cosa, no puedo hacer que funcione. Uno de los errores que encuentro es "No se encontró la firma del encabezado PDF". Sin embargo, la mayoría de las personas que se topan con este problema usan archivos, y esa no es una opción aquí. – Johan
Mientras que las costuras del PdfReader no pueden tomar la corriente, la matriz de la secuencia funciona. var readerFrontPage = new PdfReader (streamFrontPage.ToArray()); Tú no puedo responder mi propia pregunta aún ... – Johan