iTextSharp无法读取某些PDF文件

时间:2014-08-29 09:06:43

标签: c# pdf itextsharp

我有一个问题是要阅读并将某些PDF的内容显示到RichTextBox。 我使用以下代码:

string fileName = @"C:\Users\PC\Desktop\SomePdf.pdf";
string str = string.Empty;

PdfReader reader = new PdfReader(fileName);

for (int i = 1; i <= reader.NumberOfPages; i++)
{
    ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();
    String s = PdfTextExtractor.GetTextFromPage(reader, i, its);

    s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s)));
    str = str + s;
    rtbVsebina.Text = str;
}

reader.Close();

有些PDF可以阅读并显示在RichTextBox中,有些则不可以。对于那些无法读取的人,我只会空RichTextBox但有一些添加的行,因为我会按键盘上的'Enter'几次。

有人知道可能出现什么问题吗?

1 个答案:

答案 0 :(得分:1)

您将页面内容与页面注释混淆。

网页内容是网页内容流的一部分。它在页面字典的/Contents条目中引用,并且(可选地)在外部对象(又名XObjects)中引用。使用您在问题中复制/粘贴的代码段,您将提取此内容。

富文本框是众多注释类型之一。注释是页面内容流的一部分。它们是从页面字典的/Annots条目中引用的。如果要获取注释的内容,则需要向页面询问其注释,而不是解析页面的内容。例如,请参阅Reading PDF Annotations with iText

回答你的问题&#34;我做错了什么&#34;:你看错了地方。