我有一个问题是要阅读并将某些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'几次。
有人知道可能出现什么问题吗?
答案 0 :(得分:1)
您将页面内容与页面注释混淆。
网页内容是网页内容流的一部分。它在页面字典的/Contents
条目中引用,并且(可选地)在外部对象(又名XObjects
)中引用。使用您在问题中复制/粘贴的代码段,您将提取此内容。
富文本框是众多注释类型之一。注释不是页面内容流的一部分。它们是从页面字典的/Annots
条目中引用的。如果要获取注释的内容,则需要向页面询问其注释,而不是解析页面的内容。例如,请参阅Reading PDF Annotations with iText。
回答你的问题&#34;我做错了什么&#34;:你看错了地方。