c# - PdfDocument.GetTextWithFormatting() 不占用所有页面
c# - PdfDocument.GetTextWithFormatting() does not take all pages
我正在尝试打开一个大的 PDF 文件,但使用此代码
using BitMiracle.Docotic.Pdf;
PdfDocument pdf = new PdfDocument("document.pdf")
string document = pdf.GetTextWithFormatting();
字符串 document
占据前 87 页(共 174 页)。为什么只需要文档的前半部分?
编辑:这是库的评估模式限制。还有其他选择吗?
您可以尝试阅读每一页的文字:
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 之后的页面上没有文字。例如,它们可以是扫描页面的图像。
您可以通过尝试 select 并从第 87 页之后复制和粘贴 PDF 中的文本来对此进行测试。如果可以,则很可能是 BitMiracle DLL 中的错误。
您观察到的行为是因为评估模式限制。在试用模式下使用时,库有以下限制:
- 库生成的文档包含打印在每一页上的评估通知。
- 对于所有现有文档,图书馆只阅读了一半的页面。
要在没有评估模式限制的情况下评估库,您可以 get a free time-limited license 在我们的网站上。
我正在尝试打开一个大的 PDF 文件,但使用此代码
using BitMiracle.Docotic.Pdf;
PdfDocument pdf = new PdfDocument("document.pdf")
string document = pdf.GetTextWithFormatting();
字符串 document
占据前 87 页(共 174 页)。为什么只需要文档的前半部分?
编辑:这是库的评估模式限制。还有其他选择吗?
您可以尝试阅读每一页的文字:
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 之后的页面上没有文字。例如,它们可以是扫描页面的图像。
您可以通过尝试 select 并从第 87 页之后复制和粘贴 PDF 中的文本来对此进行测试。如果可以,则很可能是 BitMiracle DLL 中的错误。
您观察到的行为是因为评估模式限制。在试用模式下使用时,库有以下限制:
- 库生成的文档包含打印在每一页上的评估通知。
- 对于所有现有文档,图书馆只阅读了一半的页面。
要在没有评估模式限制的情况下评估库,您可以 get a free time-limited license 在我们的网站上。