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;
}
谢谢 加文
答
我怀疑PDFBox的很容易转变成一个完全可序列化库。
简单地添加一些选项是不够的:虽然其中很多类都足够简单,但其他人引用临时文件(“临时文件”)来承载其实际内容。因此,自定义序列化代码在这些类中是必需的。
最自然的方式由PDDocument
实例和序列化表示的数据解序列再次这将是... 保存为PDF文件和阅读文档转换为PDDocument
实例!使用内存流这不需要实际的文件系统文件。
因此,您可能想要使用Custom Serialization技术创建PDDocument
的包装类,这些技术通过保存到/从PDF文档读取序列化(解除)序列化。
你真的需要序列化的文档对象吗?为什么不生成PDF并将其存储在数据库中? – 2015-04-28 08:28:39