C# itextsharp.NumberOfPages返回错误的值

C# itextsharp.NumberOfPages返回错误的值,c#,pdf,itextsharp,C#,Pdf,Itextsharp,我正在开发一个C应用程序,我正在使用itextsharpv5.5.2阅读pdf文档。 我在读取一些pdf文件时遇到问题,因为PdfReader.NumberOfPages attibute有时返回错误的值。 i、 e:文档包含18页的Dobe reader,但属性PdfReader.NumberOfPages返回2。 当我尝试使用此代码进行测试以按页码从页面获取文本时 PdfReader reader = new PdfReader(fileInfo.FullName); PdfReaderCo

我正在开发一个C应用程序,我正在使用itextsharpv5.5.2阅读pdf文档。 我在读取一些pdf文件时遇到问题,因为PdfReader.NumberOfPages attibute有时返回错误的值。 i、 e:文档包含18页的Dobe reader,但属性PdfReader.NumberOfPages返回2。 当我尝试使用此代码进行测试以按页码从页面获取文本时

PdfReader reader = new PdfReader(fileInfo.FullName);
PdfReaderContentParser pdfReaderContentParser = new PdfReaderContentParser(reader);
ITextExtractionStrategy iTextExtractionStrategy = pdfReaderContentParser.ProcessContent(myPageNumber, new SimpleTextExtractionStrategy());
String pdfText = iTextExtractionStrategy.GetResultantText();
,我有以下结果:

if myPageNumber = 1  => return the text from the page 1 
if myPageNumber = 2  => return the text from the page 8!!! 
if myPageNumber = 3  => create an error as expected (the reader "see" only 2 pages)
我发现了这个问题的可能原因,但我不确定:字体类型。 当文档中有type1时,我没有问题。但是我有truetype字体的问题。 不幸的是,我无法共享有问题的pdf文件


感谢您的帮助。

我只在基于XML表单体系结构的PDF文档中见过这种行为,在这种情况下,这是完全正常的。我从未在传统的PDF文档中看到过这种情况。所以真正的问题是:你在说什么样的PDF文档?给我们看PDF!没错,请分享说明该问题的示例文档。感谢您提供的信息。不幸的是,我没有共享文件会计信息的权限。我将尝试用一个新的pdf文件重现这个问题。@BrunoLowagie你说得对。我甚至不知道不同类型的pdf文件。感谢您的解释:。这是使用itextsharp以编程方式检测C中XML表单体系结构的方法。现在,我正在寻找一个免费的转换器,如果有人知道。。。。谢谢你的帮助。