PDFBOX.net将PDDocument对象转换为数据库/序列化

问题描述:

我希望有人能够对此有所了解。看起来我需要用[SERIALIZE]选项重新编译PDFBOX。但我不知道如何。PDFBOX.net将PDDocument对象转换为数据库/序列化

我想要做的是将PDDocument doc对象存储在数据库中。

错误:在程序集'PDFBox,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'中键入'org.apache.pdfbox.pdmodel.PDDocument'未标记为可序列化。

PDDocument doc = (PDDocument)documents.get(d); 

    string str = ConvertForWrite(doc); 

    /// Convert any object into a string which can be store in a database 
    public string ConvertForWrite(object obj) 
    { 
     MemoryStream memoryStream = new MemoryStream(); 
     BinaryFormatter binaryFormatter = new BinaryFormatter(); 
     binaryFormatter.Serialize(memoryStream, obj); 
     string str = System.Convert.ToBase64String(memoryStream.ToArray()); 
     return str; 
    } 

谢谢 加文

+0

你真的需要序列化的文档对象吗?为什么不生成PDF并将其存储在数据库中? – 2015-04-28 08:28:39

我怀疑PDFBox的很容易转变成一个完全可序列化库。

简单地添加一些选项是不够的:虽然其中很多类都足够简单,但其他人引用临时文件(“临时文件”)来承载其实际内容。因此,自定义序列化代码在这些类中是必需的。

最自然的方式由PDDocument实例和序列化表示的数据解序列再次这将是... 保存为PDF文件和阅读文档转换为PDDocument实例!使用内存流这不需要实际的文件系统文件。

因此,您可能想要使用Custom Serialization技术创建PDDocument的包装类,这些技术通过保存到/从PDF文档读取序列化(解除)序列化。