gpt4 book ai didi

C# iTextSharp PDFReader 始终从 PDF 开头读取

转载 作者:行者123 更新时间:2023-12-02 17:14:49 25 4
gpt4 key购买 nike

我正在使用 iTextSharp PDFReader 读取一个有 18 页的 pdf 文件,但每次我增加页码时,它都会从 pdf 的开头开始,而不是只读取该特定页面。如果我将“x”设置为 pdfReader.NumberOfPages 值,它只会读取最后一页。我想单独阅读每一页并将数据添加到我的 string 列表中。我还在浏览一个文件夹,阅读每个 pdf 文件,但我一开始只使用一个进行测试。

List<string> s = new List<string>();
while (z < filePaths.Count())
{
PdfReader pdfReader = new PdfReader(filePaths[z]);
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
for (int x = 1; x <= pdfReader.NumberOfPages; x++)
{
string currentText = "";
currentText = PdfTextExtractor.GetTextFromPage(pdfReader, x, strategy);
s.Add(currentText);
}
z++;
pdfReader.Close();
}

最佳答案

之前的所有答案都非常接近,即您正确地将其归咎于某种状态问题。

唯一缺少的部分是 strategy 变量会记住其状态。调用 GetTextFromPage 后,您的策略对象不会刷新其现有内容。

所以技巧是在循环内实例化您的策略:

for (int x = 1; x <= pdfReader.NumberOfPages; x++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentText = "";
currentText = PdfTextExtractor.GetTextFromPage(pdfReader, x, strategy);
s.Add(currentText);
}

关于C# iTextSharp PDFReader 始终从 PDF 开头读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41026810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com