c# - 如何在 PDF 文件的文件属性的详细信息选项卡中添加关键字

标签 c# c#-4.0 pdf windows-server-2012 acrobat

如何在此选项卡上添加关键字:

enter image description here

我想实现一个类似 Windows Word 的功能,我们可以在其中添加关键字,它会显示在这里,然后我们可以在资源管理器中搜索。

如何将该功能添加到我的 PDF 工具中?

理想情况下,我希望在用户更新 Acrobat PDF 中的标签时更新关键字。

这可能吗?如果是,请建议如何。我正在寻找方向,但无法在 Google 中找到它。

最佳答案

我。手动完成

您可以通过编辑 PDF 源代码来添加这些关键字。

  1. 首先通过解压其压缩内容为编辑器准备 PDF:

    qpdf --qdf --object-streams=disable input.pdf uncompressed.pdf
    

    这需要安装命令行工具 QPDF

    可以实现类似结果的其他命令行工具是:podofouncompressmutool clean -d .

  2. 现在打开uncompressed.pdf在能够处理可能仍包含一些二进制字节部分的文件的文本编辑器中。

  3. 找到 /Info字典。 (提示:在您的文件的最后会有一个 trailer,其中包含类似 /Info 34 0 R 的条目。这意味着 /Info 词典位于 PDF 对象编号 34 中)。。 p>

    搜索 34 0 obj .您现在已经找到了 /Info词典。

  4. /Info字典将包含如下条目:

     /Author (Kurt Pfeifle)
     /Creator (MS Word 2010)
     /CreationDate (D:20150304000000+01'00')
    
  5. 通过在字典中添加额外的一行来添加您想要的关键字:

     /Keywords (keyword1, keyword2, blah blubb, foo, bar)
    

    保存您的编辑。

  6. 现在重新压缩您编辑的 PDF:

    qpdf uncompressed.pdf input-modified.pdf
    

    您可能会注意到显示了一些关于正在修复外部参照的警告。它们是无害的。

二。用 Ghostscript 做

您还可以通过 Ghostscript运行原始PDF来添加关键字。 ,这将从输入中创建一个全新的 PDF。

  1. 首先准备一个特殊的文本文件keywords.txt内容如下:

    [ /Keywords (keyword1, keyword2, blah blubb, foo, bar)
      /DOCINFO pdfmark
    
  2. 然后运行 ​​Ghostscript 命令:

    gs -o with-keywords.pdf -sDEVICE=pdfwrite input.pdf keywords.txt
    
  3. 您可以完全跳过文本文件的创建(上述第 1 步),并在 Ghostscript 命令行中提供所有关键字:

    gs -o with-keywords.pdf -sDEVICE=pdfwrite \
       -c "[/Keywords (keyword1, keyword2, blah blubb, foo, bar)" \
       -c "/DOCINFO pdfmark" \
       -f input.pdf
    

    甚至

    gs -o with-keywords.pdf -sDEVICE=pdfwrite \
       -c "[/Keywords(keyword1, keyword2, blah blubb, foo, bar)/DOCINFO pdfmark" \
       -f input.pdf
    

三。用 Adob​​e Acrobat (Pro) 做

Adobe Acrobat (Pro) 提供了一个 GUI 来简单地编辑关键字。

  1. 转到菜单"file"->“属性...”
  2. 打开标题为“描述”的标签
  3. 将您的关键字添加到名为“关键字:”的字段中。

四。使 Windows 支持 PDF

您没有命名您所使用的 Windows 版本。

据我所知,在过去的 Windows XP/2000 时代,您需要安装第三方 Windows Shell ExtensionWindows iFilter 才能访问PDF 文件的元数据。

此启用的加载项随后允许在 Windows 资源管理器窗口中以详细信息查看模式显示“关键字”和“页面”列。

Debenu 也提供了这样一个 Windows shell 扩展(免费,就像“免费”)。

我好像还记得Adobe Acrobat等PDF软件默认安装了这样一个扩展。

当然,虽然其中一个可能已安装在您的 Windows 上,但它也可能已被管理员禁用

所以最好也检查一下。

关于c# - 如何在 PDF 文件的文件属性的详细信息选项卡中添加关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28857107/

相关文章:

c# - 在 C# 中,在何处使用字符串 [] 与列表 <string>

iOS 无法选择/突出显示 PDF 中的文本

java - 使用 iText7 识别特定 PDF 字段类型

c# - 未找到 System.Net.SecurityProtocolType.Tls12 定义

sql-server - 在 C# 中创建数据库实例

c# - 使用 Using 和 Yield Return 从文件中读取文本行

c#-4.0 - 需要一种方法在 C# 中运行时获取 msi 安装程序使用的版本号,而不知道用于安装的 msi 文件的位置

php - FPDF 和欧元符号的问题

java - 如何从代码中获取 Keystore 指纹

c# - 在构建和报告 DB i .NET 4.5 和 SQL Server 2012 之间自动切换