c#itextsharp,使用它们的位置在页面中定位单词而不是块以添加便签

用户1797147

我已经阅读了所有相关的 StackOverflow 并且还没有找到一个像样的解决方案。我想打开一个 PDF,获取文本(单词)及其坐标,然后进一步为其中一些添加便利贴。

似乎是不可能完成的任务,我被困住了。

这段代码怎么会正确地找到页面中的所有单词(而不是它们的坐标)?

    using (PdfReader reader = new PdfReader(path))
    {
        StringBuilder sb = new StringBuilder();

        ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
        for (int page = 5; page <= 5; page++)
        {
            string text = PdfTextExtractor.GetTextFromPage(reader, page, strategy);

            Console.WriteLine(text);

        }

        //txt = sb.ToString();

    }

但是这个得到了坐标,但是对于不能依赖的“块”,它们是按正确顺序排列的。

    PdfReader reader = new PdfReader(path);
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);

    LocationTextExtractionStrategyEx strategy;

    for (int i = 5; i <= 5; i++) // reader.NumberOfPages
    {
        //strategy = parser.ProcessContent(i, new SimpleTextExtractionStrategy());
        // new MyLocationTextExtractionStrategy("sample", System.Globalization.CompareOptions.None)
        strategy = parser.ProcessContent(i, new LocationTextExtractionStrategyEx("MCU_MOSI", 0));

        foreach (LocationTextExtractionStrategyEx.ExtendedTextChunk chunk in strategy.m_DocChunks)
        {
            if (chunk.m_text.Trim() == "MCU_MOSI")
                Console.WriteLine("Bingo");  // <-- NEVER HIT
        }


        //Console.WriteLine(strategy.m_SearchResultsList.ToString()); // strategy.GetResultantText() + 



    }   

这使用了这篇文章中的一个类(我几乎没有修改)在 Itextsharp 中使用 ITextExtractionStrategy 和 LocationTextExtractionStrategy 获取字符串的坐标

但只能找到无用的“块”。

所以问题是 iTextSharp 真的可以在页面中找到单词,以便我可以在附近添加一些便签吗?谢谢你。

克泰森

看起来 chunk.m_text 一次只包含一个字母,这就是为什么这永远不会是真的:

if (chunk.m_text.Trim() == "MCU_MOSI")

您可以做的是将每个块文本添加到一个字符串中,看看它是否包含您的文本。

    PdfReader reader = new PdfReader(path);
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);

    LocationTextExtractionStrategyEx strategy;
    string str = string.Empty;

    for (int i = 5; i <= 5; i++) // reader.NumberOfPages
    {
        strategy = parser.ProcessContent(i, new LocationTextExtractionStrategyEx("MCU_MOSI", 0));
        var x = strategy.m_SearchResultsList;
        foreach (LocationTextExtractionStrategyEx.ExtendedTextChunk chunk in strategy.m_DocChunks)
        {
            str += chunk.m_text;
            if (str.Contains("MCU_MOSI"))
            {
                str = string.Empty;
                Vector location = chunk.m_endLocation;
                Console.WriteLine("Bingo"); 
            }                        
        }
    }

请注意位置示例,我公开了 m_endLocation。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PyTorch中特定位置的张量中添加值块

来自分类Dev

添加便签使用PDF PDFBOX

来自分类Dev

如何使用JS在特定位置的数组中添加值

来自分类Dev

需要以设计形式添加两个添加字段,并使用它们保存在不同的表(邀请表)中

来自分类Dev

将单词插入列表中的特定位置

来自分类Dev

在特定位置替换字符串中的单词

来自分类Dev

是否要在控制器的“指令”数组中添加CORE_DIRECTIVES,以及如何正确使用它们?

来自分类Dev

将参数添加到SQL select并在Cognos Report Studio版本10.2.1中使用它们

来自分类Dev

如何将我的python插件的符号图标添加到hicolor目录中并使用它们?

来自分类Dev

将数据集参数添加到列中,以便稍后通过 DataPrep 在 BigQuery 中使用它们

来自分类Dev

替换特定位置的单词

来自分类Dev

类中的unique_ptr如何使用它们

来自分类Dev

什么是Assembly中的偏移量,如何使用它们?

来自分类Dev

转义Javascript中的特殊字符以在MySql中使用它们

来自分类Dev

ios swift parse:从解析中获取数据并使用它们

来自分类Dev

在脚本中获取进程的多个实例的pid并使用它们

来自分类Dev

Revit中的布尔族变量以及如何使用它们

来自分类Dev

正则表达式替换多个单词,使用它们来构建列表

来自分类Dev

正则表达式替换多个单词,使用它们来构建列表

来自分类Dev

如何使用JavaScript在特定位置的嵌套对象中添加子节点

来自分类Dev

如何在Android中使用itext在特定位置的pdf中添加签名图像

来自分类Dev

在iOS中的特定位置使用javascript函数将文本添加到uiwebview

来自分类Dev

使用Javascript在字符串中的特定位置添加元素“/”

来自分类Dev

使用Shell脚本从文本文件中的每一行读取给定位置的单词

来自分类Dev

PdfBox 2.0.0在页面中的给定位置写入文本

来自分类Dev

重定向到OnPost中特定位置的Razor页面

来自分类Dev

如何通过单词在特定位置而不是列中提取行?

来自分类Dev

如何使用knitr和RMarkdown在块中的多个页面上添加多个图形?

来自分类Dev

如何将方法调用存储到Ruby中的数组中,而不是调用它们

Related 相关文章

  1. 1

    在PyTorch中特定位置的张量中添加值块

  2. 2

    添加便签使用PDF PDFBOX

  3. 3

    如何使用JS在特定位置的数组中添加值

  4. 4

    需要以设计形式添加两个添加字段,并使用它们保存在不同的表(邀请表)中

  5. 5

    将单词插入列表中的特定位置

  6. 6

    在特定位置替换字符串中的单词

  7. 7

    是否要在控制器的“指令”数组中添加CORE_DIRECTIVES,以及如何正确使用它们?

  8. 8

    将参数添加到SQL select并在Cognos Report Studio版本10.2.1中使用它们

  9. 9

    如何将我的python插件的符号图标添加到hicolor目录中并使用它们?

  10. 10

    将数据集参数添加到列中,以便稍后通过 DataPrep 在 BigQuery 中使用它们

  11. 11

    替换特定位置的单词

  12. 12

    类中的unique_ptr如何使用它们

  13. 13

    什么是Assembly中的偏移量,如何使用它们?

  14. 14

    转义Javascript中的特殊字符以在MySql中使用它们

  15. 15

    ios swift parse:从解析中获取数据并使用它们

  16. 16

    在脚本中获取进程的多个实例的pid并使用它们

  17. 17

    Revit中的布尔族变量以及如何使用它们

  18. 18

    正则表达式替换多个单词,使用它们来构建列表

  19. 19

    正则表达式替换多个单词,使用它们来构建列表

  20. 20

    如何使用JavaScript在特定位置的嵌套对象中添加子节点

  21. 21

    如何在Android中使用itext在特定位置的pdf中添加签名图像

  22. 22

    在iOS中的特定位置使用javascript函数将文本添加到uiwebview

  23. 23

    使用Javascript在字符串中的特定位置添加元素“/”

  24. 24

    使用Shell脚本从文本文件中的每一行读取给定位置的单词

  25. 25

    PdfBox 2.0.0在页面中的给定位置写入文本

  26. 26

    重定向到OnPost中特定位置的Razor页面

  27. 27

    如何通过单词在特定位置而不是列中提取行?

  28. 28

    如何使用knitr和RMarkdown在块中的多个页面上添加多个图形?

  29. 29

    如何将方法调用存储到Ruby中的数组中,而不是调用它们

热门标签

归档