【问题标题】:Full Text Search in PDF - converted using VB .net CodePDF 中的全文搜索 - 使用 VB .net 代码转换
【发布时间】:2010-01-04 14:30:12
【问题描述】:

我有一个自动将 Word 文档转换为 PDF 的应用程序。问题是我无法在转换后的 PDF 中使用全文搜索。而如果它是通过 Microsoft Word 应用程序转换的,我可以在 pdf 中搜索。提前感谢您的支持。

【问题讨论】:

    标签: pdf full-text-search pdf-generation


    【解决方案1】:

    这取决于转换是如何完成的。

    PDF 是一种相当图形格式的中性页面描述语言。这意味着您在最终 PDF 中在屏幕上看到的像素可能来自多种不同类型的运算符。

    在最好的情况下,文本被表示为文本。您可以通过打开您的 pdf 并搜索文本“/Type /Page”(或“/Type/Page”)轻松解决这个问题。这将向您显示在文档中的页面上描述的页面字典。在该字典中(由 > 分隔,您将看到类似“/Resources 15 0 R”的内容。这会告诉您描述页面级资源的位置。“15 0 R”表示“对第 0 代对象 15 的引用. 所以现在搜索“15 0 obj”(或者更准确地说是你文件中的内容),它会带你到另一个字典。在资源字典中,你应该看到如下内容:

    15 0 obj << /Font <</F1 6 0 R /F2 8 0 R>>
       /XObject <</Im0 10 0 R>>
    >> endobj
    

    这意味着此页面使用了两种字体和 1 个外部对象。

    如果资源字典中没有 /Font 条目,则该页面没有使用任何字体,因此不可搜索。如果有一个显眼的单个 XObject 命名为 IM、Im 或 Image,那么您的文档很可能是构成页面的单个图像。

    总而言之,可以通过多种不同方式绘制 PDF 页面。可以用实际字体表示文本。可以使用路径运算符(即一系列贝塞尔曲线)绘制文本。可以用一个或多个图像绘制文本。只有第一个才会承载文字的全部内涵。

    很可能,您的转换程序只是将 Word 文档打印为图像并将图像编码为 PDF。

    为了让下一个搜索此文档的人更完整 - 可以在 PDF 文档中放置不可见的文本。我编写了获取原始图像的代码,通过 OCR 引擎运行它们,将图像放在 PDF 上,然后放置由 OCR 引擎返回的不可见文本。不可见的文本既可选择又可搜索。

    有关更多信息,请查看第 8 章(图形)和第 9 章(文本)中的 PDF 参考(我交叉检查了 Adob​​e 的当前规范)。

    【讨论】:

      猜你喜欢
      • 2013-11-29
      • 2014-02-11
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 2012-02-24
      相关资源
      最近更新 更多