itextsharp - 读取包含1列(第1页)和第2列(第2页)的PDF的问题

时间:2014-02-26 16:01:59

标签: itextsharp

打开PDF文件时,下面的代码丢失,首页只有一列,其他页面只有1列。

有人可以告诉我我做错了什么吗? 在我的代码下面:

PdfReader pdfreader = new PdfReader(pathNmArq);
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();

    for (int page=1; page <= lastPage; page++) 
    {
         extractText = PdfTextExtractor.GetTextFromPage(pdfreader, page, strategy);
         extractText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(extractText)));
        / / ... 
    }

1 个答案:

答案 0 :(得分:1)

您使用SimpleTextExtractionStrategy。此策略假定PDF中的文本绘图说明按阅读顺序排序。在你的情况下似乎并非如此。

如果您不能指望包含阅读顺序的绘图操作的PDF,但仅使用分发中的iText文本提取策略,则必须知道构成单个列的区域。如果网页包含多个列,则必须使用RegionTextRenderFilter限制列,然后使用LocationTextExtractionStrategy

PS:你的目的究竟是什么

extractText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(extractText)));

线?