首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# - PdfDocument.GetTextWithFormatting()并不会占用所有页面

c# - PdfDocument.GetTextWithFormatting()并不会占用所有页面
EN

Stack Overflow用户
提问于 2017-07-02 22:24:30
回答 2查看 1.1K关注 0票数 1

我试图打开一个大PDF文件,但是用下面的代码

代码语言:javascript
复制
using BitMiracle.Docotic.Pdf;

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

字符串document获得第87页(174页)。为什么只需要文件的前半部分?

编辑:这是一个评估模式的库限制。还有其他选择吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-03 05:24:06

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

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

要在没有评估模式限制的情况下评估库,可以在我们的站点上使用获得一个有时间限制的免费许可证

票数 2
EN

Stack Overflow用户

发布于 2017-07-02 23:17:57

您可以尝试阅读每一页的文本:

代码语言:javascript
复制
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中的一个bug。

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

https://stackoverflow.com/questions/44875723

复制
相关文章

相似问题

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