C# - PdfDocument.GetTextWithFormatting()不采取

问题描述:

所有网页我试图打开一个大的PDF文件,但与此代码C# - PdfDocument.GetTextWithFormatting()不采取

using BitMiracle.Docotic.Pdf; 

PdfDocument pdf = new PdfDocument("document.pdf") 
string document = pdf.GetTextWithFormatting(); 

字符串document采取首创87页(174)。为什么只需要文档的前半部分?

编辑:这是库的评估模式限制。有一些替代方案?

+0

什么是'PdfDocument'?它在哪里定义? –

+0

'BitMiracle.Docotic.Pdf' – Gicminos

+0

您是否尝试过循环遍历页面并从每个页面获取文本? 'pdf.Pages(i).GetText(options)' –

您观察到的行为是由于评估模式的限制。在试用模式下使用时,库会施加以下限制:

  • 使用库生成的文档包含打印在每个页面上的评估通知。
  • 对于所有现有文档,库中只有一半的页面被读取。

要评估没有评估模式限制的图书馆,您可以在我们的网站get a free time-limited license

你可以尝试从阅读每个网页中的文字:

StringBuilder sb = new StringBuilder(); 
var options = new PdfTextExtractionOptions 
       { 
        WithFormatting = false, 
        SkipInvisibleText = true 
       }; 
using (PdfDocument pdf = new PdfDocument("document.pdf")) 
{ 
    int pageIndex = 1; 
    foreach(var page in pdf.Pages) 
    { 
     Console.WriteLine("Page {0}", pageIndex++); 
     sb.AppendLine(page.GetText(options)); 
    } 
} 
string allText = sb.ToString(); 

这样做了以后,你应该看到在您的控制台线PDF中的每一页。

我可能是87页之后没有文字的页面。例如,它们可能是扫描页面的图像。

您可以尝试选择和87页之后,从PDF复制和粘贴文本如果你能那么赔率是它在BitMiracle DLL中的错误进行测试。

+0

Tryied it停止在第87页 – Gicminos

+0

您只有文本到第87页或循环停止运行在87?如果您运行修改后的代码,最后打印的pageIndex是什么? –

+0

循环检查全部147页,但在页87之后只增加页面的“2”长度。 – Gicminos