我有一個在 MemoryStream 中創建的 PDF 檔案(使用 iText 7/C# 4.01),最后,我想將它寫到一個檔案中。我在記憶體流中創建它的部分原因是我想在最后標記一個標題表和頁腳,并希望避免將它寫入檔案然后讀回檔案,標記,然后寫出一個新檔案(就像我在 iText 網站上不斷找到的例子一樣)。但是,我似乎在下面的代碼中遇到了某種雞/蛋場景。似乎您必須 Close() 檔案才能使 iText 完全形成它。但是,如果我關閉()它,那么在嘗試撰寫它時我會得到一個 ObjectDisposedException(下面的簡化示例)。我必須在這里遺漏一些簡單的東西,對吧?謝謝
MemoryStream baos = new MemoryStream();
PdfWriter writer = new PdfWriter(baos);
PdfDocument pdfDocument = new PdfDocument(writer.SetSmartMode(true));
//writer.SetCloseStream(true);
//pdfDocument.SetCloseWriter(true);
//pdfDocument.SetCloseReader(true);
//pdfDocument.SetFlushUnusedObjects(true);
Document d = new Document(pdfDocument, iText.Kernel.Geom.PageSize.LETTER);
d.Add(new Paragraph("Hello world!"));
//d.Close();
FileStream file = new FileStream("C:\test.pdf",
FileMode.Create, FileAccess.Write);
baos. WriteTo(file);
file.Close();
//baos.Close();
//d.Close();
uj5u.com熱心網友回復:
試試這個
我沒有用于測驗的 IDE,但我認為這行得通
MemoryStream baos = new MemoryStream();
PdfWriter writer = new PdfWriter(baos);
PdfDocument pdfDocument = new PdfDocument(writer.SetSmartMode(true));
Document d = new Document(pdfDocument, iText.Kernel.Geom.PageSize.LETTER);
d.Add(new Paragraph("Hello world!"));
d.Close();
byte[] byte1 = baos.ToArray();
File(byte1, "application/pdf", "C:\\iTextTester\\test.pdf");
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/384566.html
