首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ItextSharp读取C#中的PDF列

使用ItextSharp读取C#中的PDF列
EN

Stack Overflow用户
提问于 2014-08-26 13:24:27
回答 1查看 4.1K关注 0票数 0

在我的程序中,我从PDF文件中提取了文本,并且运行良好。ItextSharp从PDF中逐行提取文本。但是,当PDF文件包含2列时,提取的文本就不正常了,因为每行连接两列。

我的问题是:如何逐列提取文本?

下面是我的代码。PDF文件是阿拉伯语的。对不起,我的英语不太好。

代码语言:javascript
复制
PdfReader reader = new PdfReader(@"D:\test pdf\Blood Journal.pdf");
int intPageNum = reader.NumberOfPages;
string[] words;
string line;

for (int i = 1; i <= intPageNum; i++)
{
    text = PdfTextExtractor.GetTextFromPage(reader, i, 
               new LocationTextExtractionStrategy());

    words = text.Split('\n');
    for (int j = 0, len = words.Length; j < len; j++)
    {
        line = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(words[j]));
        // other things here
    }

    // other things here
}
EN

回答 1

Stack Overflow用户

发布于 2014-08-26 13:32:00

您可能希望使用RegionTextRenderFilter限制列区域,然后使用LocationTextExtractionStrategy提取文本。然而,这需要您正在解析的PDF文件的先验知识,即您需要有关列的位置和大小的信息。

更详细地说,您需要传入列的坐标来定义一个矩形,然后从该矩形中提取文本。示例将如下所示:

代码语言:javascript
复制
PdfReader reader = new PdfReader(@"D:\test pdf\Blood Journal.pdf");
int intPageNum = reader.NumberOfPages;    

private string GetColumnText(float llx, float lly, float urx, float ury)
{
    // reminder, parameters are in points, and 1 in = 2.54 cm = 72 points
    var rect = new iTextSharp.text.Rectangle(llx, lly, urx, ury);

    var renderFilter = new RenderFilter[1];
    renderFilter[0] = new RegionTextRenderFilter(rect);

    var textExtractionStrategy =
            new FilteredTextRenderListener(new LocationTextExtractionStrategy(),
                                           renderFilter);

    var text = PdfTextExtractor.GetTextFromPage(reader, intPageNum,
                                                textExtractionStrategy);

    return text;
}

这是另一个讨论你想要什么的帖子,你可能也想检查一下:iTextSharp - Reading PDF with 2 columns。但他们也没有找到解决方案:(

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25498598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档