如何使用iTextSharp阅读含有汉字的PDF文件

问题描述 投票:0回答:1

当我使用iTextSharp插件从.Net Framework上的PDF文件中读取包含汉字的文本时, 那么我读到的都是混乱的代码,我尝试使用

System.Text.Encoding.UTF8
Unicode,BigEndianUnicode
GB2312
GBK
GB18030
来获取正确的字符,但它不起作用。 我在网上查了一下,发现有人说读取汉字需要任何其他插件,但他没有说哪个插件,所以我需要帮助,非常感谢!

.net pdf itext
1个回答
0
投票

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
上测试的。

© www.soinside.com 2019 - 2024. All rights reserved.