Pdf 为什么iTextSharp阅读的是第1..N页而不是第N页?

Pdf 为什么iTextSharp阅读的是第1..N页而不是第N页?,pdf,itextsharp,pdf-reader,Pdf,Itextsharp,Pdf Reader,这是我的密码: var sb = new StringBuilder(); var st = new SimpleTextExtractionStrategy(); string raw; using(var r = new iTextSharp.text.pdf.PdfReader(path)) { for(int pn = 1; pn <= r.NumberOfPages; pn++) { raw = iTextSharp.text.pdf.parser.Pdf

这是我的密码:

var sb = new StringBuilder();
var st = new SimpleTextExtractionStrategy();
string raw;
using(var r = new iTextSharp.text.pdf.PdfReader(path)) {
    for(int pn = 1; pn <= r.NumberOfPages; pn++) {
        raw = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(r, pn, st);
        sb.Append(raw);
    }
}
var sb=new StringBuilder();
var st=新的SimpleTextractionStrategy();
生丝;
使用(var r=new iTextSharp.text.pdf.PdfReader(path)){

对于(int pn=1;pn将代码更改为以下内容:

var sb = new StringBuilder();
string raw;
using(var r = new iTextSharp.text.pdf.PdfReader(path)) {
    for(int pn = 1; pn <= r.NumberOfPages; pn++) {
        var st = new SimpleTextExtractionStrategy();
        raw = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(r, pn, st);
        sb.Append(raw);
    }
}
var sb=new StringBuilder();
生丝;
使用(var r=new iTextSharp.text.pdf.PdfReader(path)){

对于(int pn=1;pn@richardtallent),如果您想知道代码的主要问题是什么:一个策略会记住它遇到的所有页面内容。因此,如果您想要一个没有缓冲的提取,就必须使用一个新的策略。谢谢!我没想到被称为“策略”的对象会产生这种副作用我还记得现在我在重构时出于其他原因将策略实例化移到了循环之外,我把它移回到了循环内部,它又恢复了良好的工作状态。