当我使用iTextSharp插件从.Net Framework上的PDF文件中读取包含汉字的文本时, 那么我读到的都是混乱的代码,我尝试使用
System.Text.Encoding.UTF8
、Unicode,BigEndianUnicode
和GB2312
、GBK
、GB18030
来获取正确的字符,但它不起作用。
我在网上查了一下,发现有人说读取汉字需要任何其他插件,但他没有说哪个插件,所以我需要帮助,非常感谢!
2024年,使用iText7从PDF中读取汉字:
要获取 PDF 内容流,您可以
var contentStream = page.GetContentStream(j);
var contentBytes = contentStream.GetBytes();
var content = Encoding.UTF8.GetString(contentBytes);
要获取页面属性,例如 OCG,您可以
var layer = pdfDoc.GetCatalog()
.GetOCProperties(true)
.GetLayers()
.Where(l =>
{
var name = Encoding.BigEndianUnicode.GetString(l.GetPdfObject().GetAsString(PdfName.Name).GetValueBytes());
Console.WriteLine(name);
return name.Equals("...");
})
.FirstOrDefault();
以上是在
.NET Framework 4.8
、iText 7.2.5
上测试的。