评估 iText7 并尝试在内存中创建 PDF,然后将该流的内容写回客户端或将流保存到物理文件中。我正在使用此链接作为指南。
我的代码片段
1 pdfMemoryStream = new ByteArrayOutputStream();
2 pdfMemoryStream = new ByteArrayOutputStream();
3 pdfWriter = new PdfWriter(pdfMemoryStream);
4 pdfDocument = new PdfDocument(pdfWriter);
5 document = new Document(pdfDocument, PageSize.LETTER, true);
6 document.Add(new Paragraph("Testing"));
7 document.Close();
8 var fstream = new FileStream(@"C:\publish\iTextQuoteM.pdf", FileMode.Create);
9 pdfMemoryStream.WriteTo(fstream);
10 pdfMemoryStream.Flush();
11 pdfMemoryStream.Close();
Run Code Online (Sandbox Code Playgroud)
第 9 行将抛出一个Cannot access a closed Stream有意义的异常,但如果我删除第 7 行,则创建的 pdf 无效且不可见。我试图刷新pdfWriter和文档,但这没有帮助。
显然我有问题或误解,任何帮助表示赞赏。
该PdfWriter构造函数接受System.IO.MemoryStream,所以你可以做以下的PDF写入MemoryStream,并返回一个字节数组:
byte[] result;
using (var memoryStream = new MemoryStream())
{
var pdfWriter = new PdfWriter(memoryStream);
var pdfDocument = new PdfDocument(pdfWriter);
var document = new Document(pdfDocument, PageSize.LETTER, true);
document.Add(new Paragraph("Testing"));
document.Close();
result = memoryStream.ToArray();
}
File.WriteAllBytes(@"C:\publish\iTextQuoteM.pdf", result);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4697 次 |
| 最近记录: |