Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 如何在powershell中搜索PDF文档/PDX目录_Search_Pdf_Powershell_Catalog - Fatal编程技术网

Search 如何在powershell中搜索PDF文档/PDX目录

Search 如何在powershell中搜索PDF文档/PDX目录,search,pdf,powershell,catalog,Search,Pdf,Powershell,Catalog,我有一个供应商,提供他们的文档库作为一系列PDF文件(和一些CHM文件),并包括一个.PDX目录 我想编写一个powershell脚本来前端它(使用powershell表单或在asp.net中托管powershell) 我处于早期阶段,我已经研究出如何从PDF流(PDF文件末尾附近的xmpmeta XML元数据块-文件中为数不多的明文流之一)中获取文档信息,如下所示: <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Co

我有一个供应商,提供他们的文档库作为一系列PDF文件(和一些CHM文件),并包括一个.PDX目录

我想编写一个powershell脚本来前端它(使用powershell表单或在asp.net中托管powershell)

我处于早期阶段,我已经研究出如何从PDF流(PDF文件末尾附近的xmpmeta XML元数据块-文件中为数不多的明文流之一)中获取文档信息,如下所示:

    <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:08:04 
       "><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="
" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"><pdf:Producer>GPL Ghostscript 8.64</pdf:Producer><pdf:Keywo
rds>86000056-413</pdf:Keywords></rdf:Description><rdf:Description rdf:about="" xmlns:xmp="http://ns.ad
obe.com/xap/1.0/"><xmp:ModifyDate>2011-03-03T17:38:34-05:00</xmp:ModifyDate><xmp:CreateDate>2011-01-28
T23:12:07+05:30</xmp:CreateDate><xmp:CreatorTool>PScript5.dll Version 5.2</xmp:CreatorTool><xmp:Metada
taDate>2011-03-03T17:38:34-05:00</xmp:MetadataDate></rdf:Description><rdf:Description rdf:about="" xml
ns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"><xmpMM:DocumentID>6cb2263d-2d61-11e0-0000-1390d57dcfcb</xmp
MM:DocumentID><xmpMM:InstanceID>uuid:1a0e68ba-14ad-4a03-b7a1-0a0e127b8753</xmpMM:InstanceID></rdf:Desc
ription><rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:format>applicati
on/pdf</dc:format><dc:title><rdf:Alt><rdf:li xml:lang="x-default">I/O Subsystem Programming Guide</rdf
:li></rdf:Alt></dc:title><dc:creator><rdf:Seq><rdf:li>Unisys Information Development</rdf:li></rdf:Seq
></dc:creator><dc:description><rdf:Alt><rdf:li xml:lang="x-default">ClearPath MCP 13.1,Application Dev
elopment,Administration,ClearPath MCP</rdf:li></rdf:Alt></dc:description></rdf:Description></rdf:RDF><
/x:xmpmeta>
这是至关重要的,因为文件名的格式是12345678-123.pdf,实际的标题是元数据本身,以及文档类别等

因此,我可以生成一个文档列表(显示它们的正确标题,而不是真正的文件名)并允许启动它们,但我也希望能够使用PDX文件搜索所有文档,但它绝不是纯文本

我想我可以使用许多工具中的一种将每个PDF转换为文本,搜索它,对每个文档重复,然后返回每个文档的结果

但是,Adobe Reader已经做到了这一点,因此我可以使用将启动搜索的开关启动AcroRd32.exe,使用我已传递给AcroRd32程序的搜索词,或者从Powershell中使用Adobe search.API吗

在AdobeReader中自动加载.PDX并启动搜索,或者在powershell中使用AdobeAPI方面有什么特别的想法吗

编辑:
我现在可以从命令行启动acrobat并进行搜索(因此可以在powershell中进行模拟),但搜索仅在搜索PDF时有效,而不是在搜索PDX目录时有效。两者都会打开搜索窗格,但只有在PDF文档中才会填充搜索字段并执行搜索

C:\Program Files (x86)\Adobe\Reader 10.0\Reader>AcroRd32.exe /A "search=trim" "P:\Doc Library\PDF\00_home.pdx"  

问候,,
Graham

这是一篇老文章,但是请注意,您所做的搜索有潜在的危险,并且有更好的方法在PDF文件中查找XMP元数据。XMP是专门为通过文本搜索“可查找”而设计的。为此,它有一个定义良好的开始和结束代码,专门用于提取XMP数据,而无需解析PDF格式(或XMP元数据blob可能嵌入的任何其他格式)

您可以在此处下载XMP规范:。第1部分是关于XMP数据包的说明,其中说明了文本扫描程序如何更准确地查找XMP数据包

最后,PDF还有一个额外的怪癖,它允许增量更新。这可能会导致文件中出现多个XMP数据包(其中最后一个数据包通常是正确的)。但令人烦恼的是,当PDF从InDesign等应用程序导出时,PDF中的图像(和其他对象)也可能有自己的“对象”附加到它的XMP


<> P>考虑你的文件来自何处,你可能会遇到多少奇怪的东西,你想提供。但是阅读XMP规范并不是一个坏主意。

谢谢你的信息,以及XMP规范的链接,当我最初看这个时,我完全找不到一些东西。仅在一家供应商的PDF上使用,并且格式一致。阅读您的个人资料,您在Adobe arena中做了很多工作,您是否知道如何解决我在web浏览器中搜索PDX目录的问题?不幸的是,这样做似乎不太容易。我听到的最后一条消息(这是旧信息)该规范实际上是来自一家名为“Verity”的公司的专有信息,该公司现在指的是HP的网站。这可能意味着线索到此为止:-)
C:\Program Files (x86)\Adobe\Reader 10.0\Reader>AcroRd32.exe /A "search=trim" "P:\Doc Library\PDF\00_home.pdx"  
C:\Program Files (x86)\Adobe\Reader 10.0\Reader>AcroRd32.exe /A "search=trim" "P:\Doc Library\PDF\86000056-413.pdf"