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

C# 使用ITEXT7C解析/读取PDF文档#,c#,itext,itext7,pdf-reader,C#,Itext,Itext7,Pdf Reader,我正在尝试使用iText7库升级我的代码。 以前我使用过iTextSharp库 但看起来iText7是全新的 我尝试阅读pdf文档,但在“未找到pdf标题”之间遇到异常。 这是我的密码 byte[] bytes = System.Convert.FromBase64String(UploadedFileByes); MemoryStream memory = new MemoryStream(bytes); BinaryReader BRreader = new Bin

我正在尝试使用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);
            }
byte[]bytes=System.Convert.FromBase64String(上传的filebyes);
MemoryStream memory=新的MemoryStream(字节);
BinaryReader BRreader=新的BinaryReader(内存);
StringBuilder text=新的StringBuilder();
iText.Kernel.Pdf.PdfReader iTextReader=new iText.Kernel.Pdf.PdfReader(内存);
iText.Kernel.Pdf.PdfDocument pdfDoc=new iText.Kernel.Pdf.PdfDocument(new iText.Kernel.Pdf.PdfReader(memory));
int numberofpages=pdfDoc.GetNumberOfPages();

对于(int page=1;page我得到了解决方案。我使用了我定义的pdfreader,而不是创建新的。下面是代码。希望它能帮助别人

byte[]bytes=System.Convert.FromBase64String(上传的filebyes);
MemoryStream memory=新的MemoryStream(字节);
BinaryReader BRreader=新的BinaryReader(内存);
StringBuilder text=新的StringBuilder();
iText.Kernel.Pdf.PdfReader iTextReader=new iText.Kernel.Pdf.PdfReader(内存);
iText.Kernel.Pdf.PdfDocument pdfDoc=新的iText.Kernel.Pdf.PdfDocument(iTextReader);
int numberofpages=pdfDoc.GetNumberOfPages();

对于(int page=1;page)如果将这些字节写入文件并用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(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);
            }