当前位置: 首页 > 知识库问答 >
问题:

使用iText7 C解析/读取PDF文档#

虞滨海
2023-03-14

我正在尝试使用iText7库升级我的代码。以前我使用过iTextSharp库,但看起来iText7是全新的。我尝试阅读pdf文档,但在“未找到pdf标题”之间遇到了一个异常。这是我的密码

byte[] bytes = System.Convert.FromBase64String(UploadedFileByes);

MemoryStream memory = new MemoryStream(bytes);
            BinaryReader BRreader = new BinaryReader(memory);
            StringBuilder text = new StringBuilder();


            iText.Kernel.Pdf.PdfReader iTextReader = new iText.Kernel.Pdf.PdfReader(memory);
            iText.Kernel.Pdf.PdfDocument pdfDoc = new iText.Kernel.Pdf.PdfDocument(new iText.Kernel.Pdf.PdfReader(memory));



            int numberofpages = pdfDoc.GetNumberOfPages();
            for (int page = 1; page <= numberofpages; page++) {
                iText.Kernel.Pdf.Canvas.Parser.Listener.ITextExtractionStrategy strategy = new iText.Kernel.Pdf.Canvas.Parser.Listener.SimpleTextExtractionStrategy();
                string currentText = iText.Kernel.Pdf.Canvas.Parser.PdfTextExtractor.GetTextFromPage(pdfDoc.GetPage(page),strategy);
                currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(
                    Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                text.Append(currentText);
            }

我做错了什么?

共有1个答案

何正德
2023-03-14

我找到了解决方案。我使用了我定义的pdfader,而不是创建新的。这是代码。希望它能帮助某人。

byte[] bytes = System.Convert.FromBase64String(UploadedFileByes);

MemoryStream memory = new MemoryStream(bytes);
            BinaryReader BRreader = new BinaryReader(memory);
            StringBuilder text = new StringBuilder();


            iText.Kernel.Pdf.PdfReader iTextReader = new iText.Kernel.Pdf.PdfReader(memory);
            iText.Kernel.Pdf.PdfDocument pdfDoc = new iText.Kernel.Pdf.PdfDocument(iTextReader);



            int numberofpages = pdfDoc.GetNumberOfPages();
            for (int page = 1; page <= numberofpages; page++) {
                iText.Kernel.Pdf.Canvas.Parser.Listener.ITextExtractionStrategy strategy = new iText.Kernel.Pdf.Canvas.Parser.Listener.SimpleTextExtractionStrategy();
                string currentText = iText.Kernel.Pdf.Canvas.Parser.PdfTextExtractor.GetTextFromPage(pdfDoc.GetPage(page),strategy);
                currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(
                    Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                text.Append(currentText);
            }
 类似资料:
  • 问题内容: 我有一个C-Header文件,定义了几个构造,包含多个char数组。 我想使用Java解析这些文件。是否存在用于将C-Header文件读入结构的库,或者是否存在可以理解C-Header文件的流解析器? 只是为了获得更多背景信息(我只是在寻找C-Header解析器,而不是针对此特定问题的解决方案):我有一个包含数据的文本文件和一个解释结构的C- Header文件。两者都有点动态,所以我不

  • 我试图使用PDFBox修改PDF文档的内容。我使用了这个例子,但观察到我的PDF文件的文本在字符级别(或更糟)被分割。例如,一个字符串,被分割成: (通过在上述代码中打印进行检查时)。据我所知,文件中只有拉丁字符,编码也是ISO-8859-1。有什么想法吗? 当做 萨利

  • 本文向大家介绍Python解析并读取PDF文件内容的方法,包括了Python解析并读取PDF文件内容的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python解析并读取PDF文件内容的方法。分享给大家供大家参考,具体如下: 一、问题描述 利用python,去读取pdf文本内容。 二、效果 三、运行环境 python2.7 四、需要安装的库 五、实现源代码 代码1(win64) 代码

  • 问题内容: 请问如何通过cucumber读取excel、word、pdf文件? 问题答案: 反对法的f

  • 我正在尝试使用JAVA填写PDF表单,但当我尝试使用下面的代码获取字段时,列表为空。 然后我尝试使用PDFStripper读取文件 输出如下 “请稍候。。。 如果此消息最终未被文档的正确内容替换,则PDF查看器可能无法显示此类文档。 您可以通过访问升级至最新版本的Adobe Reader for Windows®、Mac或Linux®http://www.adobe.com/go/reader_d

  • 我正在使用Mule 4.4,并尝试读取文件,然后使用Dataweave转换为JSON。这是文件(它没有标头),文件中的最后一行为空白 在读取文件时,将mime类型设置为application/csv(尽管其管道分隔),这会是一个问题吗? 我遇到的问题是,我想将文件内容转换为json,如下所示: 然而,它显示如下:(重复第一行) 我认为这种情况正在发生,因为骡子假设第一行包含标题.这是我的数据编织: