我读了一些关于pdf格式的文章,我想从pdf文档中读取注释,并将其外观和数据保存到数据库中。
因此,我发现,一个注释完全由它的 "流 "来表示,我希望是一个二进制数组,每个pdf浏览器都会将其转换为正确的外观。但我如何能用像PDFTron这样的SDK来提取这些信息?
或者我应该为每个注释设计一个正确的模型来手动提取注释中最重要的值?
您好,感谢您的回答
好问题。
一个注释完全由它的 "流 "来表示,外观流是的,但注释有很多元数据,如创建和最后修改的日期,作者,位置+大小,标志和定义外观的属性。
幸运的是,PDF ISO格式描述了一种在PDF格式之外交换注释的方法。这是通过FDF格式完成的,它只是一个只有注释信息(或表格字段)的PDF。
FDF数据将包含所有注释信息,包括外观流。
在PDFNet中,您可以使用以下方式导出注释 FDFExtract.
ArrayList annotations = new ArrayList();
annotations.Add(annot);
FDFDoc fdfdoc = pdfdoc.FDFExtract(annotations);
fdfdoc.Save(tempFileLocation);
byte[] data = System.IO.File.ReadAllBytes(tempFileLocation);
注意,目前你必须先写到磁盘上,但为了方便,可以添加一个FDFDoc.Save()api,直接返回一个字节[]。
然后使用下面的代码导入即可。
FDFDoc fdfdoc = new FDFDoc(data, data.Length);
pdfdoc.FDFMerge(fdfdoc);
更多的FDF使用实例请看这个示例。https:/www.pdftron.comdocumentationsamplescsFDFTest
使用FDF来存储注释的一个好处是,你没有供应商锁定,格式是完全定义的。