Mam cztery strumienie danych, które chcę scalić, a następnie otwórz dokument pdfDocument, bez tworzenia pojedynczego pliku.Scalanie notatek do jednego dokumentu iText
Możliwe jest zapisanie ich w plikach, a następnie ich scalenie, ale to byłaby zła praktyka i może to również spowodować kilka problemów, więc chcę tego uniknąć.
Jednak nie mogę znaleźć sposobu na połączenie obiektów MemoryStream z iText5 dla .NET.
Teraz, to jak to zrobić z plikami:
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);
}
Ponieważ muszę usunąć wykorzystanie plików, trzymam MemoryStream jako różne części są zbudowane z różnych zasobów. Mam więc odniesienia do tych memorystów.
Jak można tego dokonać?
Nie możesz użyć var readerFrontPage = new PdfReader (yourMemoryStream); – user629926
To jest coś, nie mogę tego zrobić działa. Jednym z błędów, które napotkam, jest "nie znaleziono podpisu nagłówka PDF". Większość osób, które napotykają ten problem, używa jednak plików, a to nie jest opcja tutaj. – Johan
Podczas gdy szwy PdfReader nie może wziąć strumienia, tablica strumienia działa. var readerFrontPage = new PdfReader (streamFrontPage.ToArray()); Nie mogę odpowiedzieć na moje własne pytanie ... – Johan