iTextSharp 4.1.6 是根据 LGPL 许可的最新版本,可免费用于商业目的,无需支付许可费。
对于某些人和我来说,如何使用此版本提取文本可能很有趣。
有没有人有想法?
最佳答案
因为我和你在同一条船上,所以我不得不手动将它们组合在一起。希望这对您有所帮助。它可能并不完美,但我能够通过这种方式从文档中获取我需要的文本。 fileName
是 PDF 文件的字符串变量/参数。
var reader = new PdfReader(fileName);
StringBuilder sb = new StringBuilder();
try
{
for (int page = 1; page <= reader.NumberOfPages; page++)
{
var cpage = reader.GetPageN(page);
var content = cpage.Get(PdfName.CONTENTS);
var ir = (PRIndirectReference)content;
var value = reader.GetPdfObject(ir.Number);
if (value.IsStream())
{
PRStream stream = (PRStream)value;
var streamBytes = PdfReader.GetStreamBytes(stream);
var tokenizer = new PRTokeniser(new RandomAccessFileOrArray(streamBytes));
try
{
while (tokenizer.NextToken())
{
if (tokenizer.TokenType == PRTokeniser.TK_STRING)
{
string str = tokenizer.StringValue;
sb.Append(str);
}
}
}
finally
{
tokenizer.Close();
}
}
}
}
finally
{
reader.Close();
}
return sb.ToString();
关于c# - 如何使用 iTextSharp 4.1.6 提取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143098/