AWo*_*ter 2 c# itext pdf-reader
我正在使用 iTextSharp PDFReader 读取一个 18 页的 pdf 文件,但每次增加页码时,它都会从 pdf 的开头开始,而不是只读取该特定页面。如果我将“x”设置为 pdfReader.NumberOfPages 值,它只会读取最后一页。我想单独阅读每一页并将数据添加到我的字符串列表中。我也在浏览一个文件夹,阅读每个 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();
}
Run Code Online (Sandbox Code Playgroud)
以前的所有答案都非常接近,即您正确地将其归咎于某种状态问题。
唯一缺少的部分是它是strategy记住其状态的变量。调用后GetTextFromPage,您的策略对象不会刷新其现有内容。
所以诀窍是实例化你的strategy内部循环:
for (int x = 1; x <= pdfReader.NumberOfPages; x++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentText = "";
currentText = PdfTextExtractor.GetTextFromPage(pdfReader, x, strategy);
s.Add(currentText);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3188 次 |
| 最近记录: |