您的位置:首页 > 编程语言 > Go语言

LEADTOOLS PDF应用实例:增强Google Drive搜索功能

2013-10-11 10:32 531 查看
由于Google Drive提供了一个安全、可靠、方便的方式来储存和备份文件、图像、音乐和其他文件,因此Google Drive云服务非常受欢迎。然而,对于那些在云中存储了大量数据的用户来说,搜索和查找文件相当头疼。多数搜索功能受到限制,只能充分利用文件名或者文本格式以及文本本身实现数据的搜索功能。因此,一定程度的定制或者增强对于充分利用 Google Drive云储存功能是非常有必要的。

搜索PDF文件比搜索MP3和JPEG 要容易一些,但是Google Drive对PDF文件的搜索有一定的局限性。例如,你可以扫描一张发票和银行对账单,并将其保存为PDF。即使是你用带有OCR功能的扫描仪或者软件提取文本,但你仍然无法以一种可靠的方式搜索该文件。文本中可能包含了公司名称和日期,但是可能缺少用于查找和归档的关键字,如, "bank", "insurance"以及"paid with PayPal" 等。这些正是你保存PDF文件时需要包含在关键字元数据中的信息,但是Google Drive在搜索索引中没有使用该元数据。因此,你可以使用LEADTOOLS
PDF SDK
读取和编辑元数据,然后更新Google Drive中文件的IndexableTextData属性。

接下来,我们将展示如何读取和编辑PDF文档中的元数据关键字,更新Google Drive中的文件,链接本地Google Drive数据库等。

创建上下文菜单(右键菜单)

Google Drive的服务配备了桌面应用程序,可将文件自动同步到带有在线云驱动的电脑上。另外方法就是添加上下文菜单。当右键点击PDF文件时,在所弹出的上下文菜单中,选择"Update File Keywords",将文件名作为参数传递到应用程序中。

using (RegistryKey pdfTypeRegKey =
Registry.ClassesRoot.OpenSubKey(".pdf"))
{
// Create path to registry location
string regPath = string.Format(@"{0}\shell\{1}",
(String)pdfTypeRegKey.GetValue(null), "UpdateFileKeywords");

// Add context menu to the registry
using (RegistryKey key = Registry.ClassesRoot.CreateSubKey(regPath))
{
key.SetValue(null, "Update File Keywords");
}

// Add command that is invoked to the registry
string menuCommand = string.Format("\"{0}\" \"%L\"",
Application.ExecutablePath);
using (RegistryKey key = Registry.ClassesRoot.CreateSubKey(
string.Format(@"{0}\command", regPath)))
{
key.SetValue(null, menuCommand);
}
}




利用LEADTOOLS更新PDF文档元数据关键字

LEADTOOLS拥有全面的PDF阅读,PDF编辑功能,允许直接修改PDF文件属性,搜索文本,书签等。当根据右键菜单的shell命令加载应用程序时,LEADTOOLS PDFFile对象将检索关键词,并将关键词显示在文本框进行编辑。

PDFFile _document = new PDFFile(fileName, password);
_document.Load();
_txtKeywords.Text = _document.DocumentProperties.Keywords;

保存就是这样简单,只需几行代码即可。正如所看到的,PDF文档属性已经更新。

_document.DocumentProperties.Keywords = _txtKeywords.Text;
_document.SetDocumentProperties(fileName);




更新Google Drive

在PDF文件中的关键字和其他元数据属性是非常有用而强大的功能,但是Google Drive在其搜索算法中并不它们。Google Drive中每个文件的IndexableTextData属性都可以在使用Google Drive API时进行修改。

当使用 Google Drive桌面应用程序同步应用程序时,它使用本地SQL数据库来跟踪本地文件和在线信息。要实现该操作,我们必需获取能匹配所更新的本地文件的字段。根据Google Drive文件夹的不同结构,你可能需要添加一些额外的查询以找到子文件夹中的文件。然而,一旦你获取了与PDF文件匹配的 inode_number, 你便可以从数据库中获取字段,并调用Google Drive的Web服务。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息