相关疑难解决方法(0)

iTextSharp - 如何在页面上获取单词的位置

我正在使用iTextSharp和reader.GetPageContent方法从PDF中提取文本.我需要找到文档中找到的每个单词的矩形/位置.有没有办法使用iTextSharp获取PDF中单词的矩形/位置?

c# pdf itextsharp

15
推荐指数
1
解决办法
3万
查看次数

从PDF中获取所选区域的X,Y坐标

我正在尝试从PDF的特定部分提取文本.如果我知道该区域的X,Y坐标,我就能够提取文本.但我无法从PDF中获取所选区域的坐标.请帮助我如果有人尝试过这个.

pdf pdf-extraction pdf.js

6
推荐指数
0
解决办法
2741
查看次数

在C#中使用iTextSharp阅读pdf内容

我使用此代码使用iTextSharp读取pdf内容.当内容是英语时它工作正常,但是当内容是波斯语或阿拉伯语时它不起作用
结果是这样的:
这里是非英语PDF样本用于测试.

ÙŽÙ>ناÙÙ"بÙÙØ·Ø«ÛŒØ¿ÛŒÙ>Ù~Ø²ØØØ§ÙÙ>ÙØÙ"Ù,Ù>Ù...ØÛÛÙ"بٕس©Karl Seguin foppersian.codeplex. com www.codebetter.com 1 1ÙÙ"ب~طثَÙ>نایؿیÙ>Ù〜

همانرب لوصا یسیون  مرن دیلوت رتهب Ø±Ø§Ø²ÙØ§
Run Code Online (Sandbox Code Playgroud)

解决办法是什么 ?

  public string ReadPdfFile(string fileName)
        {
            StringBuilder text = new StringBuilder();

            if (File.Exists(fileName))
            {
                PdfReader pdfReader = new PdfReader(fileName);

                for (int page = 1; page <= pdfReader.NumberOfPages; page++)
                {
                    ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
                    string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);

                    currentText = Encoding.UTF8.GetString(Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.UTF8.GetBytes(currentText)));
                    text.Append(currentText);
                    pdfReader.Close();
                }
            }
            return text.ToString();
        }
Run Code Online (Sandbox Code Playgroud)

c# pdf itextsharp

5
推荐指数
1
解决办法
2万
查看次数

如何在C#中使用iTextSharp获取pdf文件中的特定段落?

我在我的C#winform应用程序中使用iTextSharp.我想获得PDF文件中的特定段落.这可能在iTextSharp中吗?

c# itextsharp c#-4.0

4
推荐指数
1
解决办法
8402
查看次数

使用ITextSharp在两个分隔线之间从PDF中提取文本

我有一个1500多页的pdf,带有一些"随机"文本,我必须从中提取一些文本...我可以识别出那样的块:

bla bla bla bla bla 
...
...
...
-------------------------- (separator blue image)
XXX: TEXT TEXT TEXT
TEXT TEXT TEXT TEXT
...
-------------------------- (separator blue image)
bla bla bla bla
...
...
-------------------------- (separator blue image)
XXX: TEXT2 TEXT2 TEXT2
TEXT2 TEXT2 TEXT TEXT2
...
-------------------------- (separator blue image)
Run Code Online (Sandbox Code Playgroud)

我需要提取所有文本beetween分隔符(所有块)'XXX'出现在所有块的开头,但我没有办法检测块的结尾.是否可以在解析器中使用图像分隔符?怎么样?

还有其他可能的方法吗

编辑更多信息没有背景和文本是复制和可管理的

样本pdf:1

查看示例第320页

谢谢

c# pdf itextsharp

4
推荐指数
1
解决办法
1523
查看次数

使用itextsharp检索页面上所有单词的相应坐标

我的目的是检索页面上所有单词的相应坐标,我所做的是

PdfReader reader = new PdfReader("cde.pdf");
TextWithPositionExtractionStategy S = new TextWithPositionExtractionStategy();
PdfTextExtractor.GetTextFromPage(reader,1,S);

Vector curBaseline = renderInfo.GetDescentLine().GetStartPoint();
Vector topRight = renderInfo.GetAscentLine().GetEndPoint();

iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(curBaseline[Vector.I1], curBaseline[Vector.I2], topRight[Vector.I1], topRight[Vector.I2]);
string x1 = curBaseline[Vector.I1].ToString();
string x2 = curBaseline[Vector.I2].ToString();
string x3 = topRight[Vector.I1].ToString();
string x4 = topRight[Vector.I2].ToString();
Run Code Online (Sandbox Code Playgroud)

但是,我得到的是一个字符串的坐标,它包含一行的所有单词,而不是一个单词.例如,pdf的内容是"我是一个女孩",我得到的是"我是一个"的坐标女孩",但不是"我""是""""女孩"的坐标.如何修改代码,以便我可以得到单词坐标.谢谢.

c# itextsharp

3
推荐指数
1
解决办法
5648
查看次数

iTextSharp将包装的单元格内容提取到新行中 - 您如何识别给定的包装数据片段所属的列?

我正在使用iTextSharp从pdfs中提取数据.我偶然发现了以下问题所描述的问题:

我创建了一个示例excel文件来说明.这是它的样子: 在此输入图像描述

我将其转换为pdf,使用其中一个免费的在线转换器,生成一个类似的pdf(当我生成pdf时,我没有将样式应用于excel): 在此输入图像描述

现在,使用iTextSharp从pdf中提取数据,返回以下字符串作为提取的数据:

在此输入图像描述

如您所见,包裹的单元格数据会生成新行,其中每个包裹的数据由一个空格分隔.

问题:现在,如何确定给定的包装数据所属的列?如果只iTextSharp保留与列一样多的空格......

在我的示例中 - 如何识别111属于哪个列?


更新1:

只要字段有多个单词(即包含空格),就会出现类似的问题.例如,考虑上面示例的第1行:

说它看起来像

---A---  ---B---  ---C---  ---D---
aaaaaaa    bb b     cccc      
Run Code Online (Sandbox Code Playgroud)

iText将再次生成这个提取,如下所示:

aaaaaaa bb b cccc
Run Code Online (Sandbox Code Playgroud)

这里的问题相同,必须确定每列的边界.


更新2: 我正在使用的真实pdf文件的示例: 在此输入图像描述 这就是pdf数据的样子.

itextsharp pdf-extraction

1
推荐指数
2
解决办法
1846
查看次数

标签 统计

itextsharp ×6

c# ×5

pdf ×4

pdf-extraction ×2

c#-4.0 ×1

pdf.js ×1