如何在不创建(或保存)文件的情况下将PDF文档生成为内存中的字节数据(或二进制)?

时间:2015-03-19 19:43:03

标签: pdfclown

我是PDF Clown的新手,看看其发行版中包含的示例,我注意到他们使用file = new org.pdfclown.files.File(path)创建新的PDF文件,然后file.Save(anotherPath)将它们保存到文件中系统,但我找不到任何允许我生成PDF文档并将其保存到字节数组中以存储在RAM内存中的示例。

基本上我们正在做的是将客户的输入数据传递到PDF文档,在内存中生成,然后将其附加到电子邮件或将其保存到数据库,而无需中间磁盘存储。

1 个答案:

答案 0 :(得分:1)

这是将文件保存到内存流(C#)的正确方法:

org.pdfclown.files.file = . . .;
. . .
var targetStream = new System.IO.MemoryStream();
file.Save(new org.pdfclown.bytes.Stream(targetStream), SerializationModeEnum.Standard);

在接下来的几天里,我将对项目repository(版本0.1.2.1或更高版本)进行简化重载,因此您可以这样做:

var targetStream = new System.IO.MemoryStream();
file.Save(targetStream, SerializationModeEnum.Standard);

为什么我们在之前的org.pdfclown.bytes.Stream方法中使用了Save包装器?因为,当PDF Clown在多个平台(Java,.NET)中实现时,它需要一个抽象的通用接口来持续处理I / O并简化这些平台上的代码开发和维护。

PS:如果您对PDF小丑的最新消息感兴趣,请不要错过订阅its twitter stream