当前位置:   article > 正文

C# 获取图片,Pdf中的文字_c# 通过pdf文件路径获取pdf文件内图片中的文字,并输出

c# 通过pdf文件路径获取pdf文件内图片中的文字,并输出

识别图片中的文字

首先把下载好的tessdata放在自己项目的bin\Debug\tessdata文件夹中。

附一个tessdata的下载地址:https://github.com/tesseract-ocr/tessdata

命名空间:

  1. using System.Drawing;
  2. using Tesseract;
  3. using System.IO;

需要NuGet的包:Tesseract

初始化tesseractEngine(注释的是白名单(能识别到的)和黑名单(不识别的))

  1. private TesseractEngine tesseractEngine;
  2. baseDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
  3. datapath = Path.Combine(baseDirectory, "tessdata");
  4. tesseractEngine = new TesseractEngine(datapath, "eng", EngineMode.Default);
  5. //tesseractEngine.SetVariable("tessedit_char_whitelist", "0123456789");
  6. //tesseractEngine.SetVariable("tessedit_char_blacklist", "!?@#$%&*()<>_-+=/:;'\"");

获取文字

confidence是识别率

//Bitmap bitmap = new Bitmap(fileName);

  1. public string GetText(Bitmap bitmap, out float confidence)
  2. {
  3. var page = tesseractEngine.Process(bitmap);
  4. var text = page.GetText();
  5. confidence = page.GetMeanConfidence();
  6. page.Dispose();
  7. return text;
  8. }

从Pdf中获取文字

命名空间:

  1. using iTextSharp.text.pdf;
  2. using iTextSharp.text.pdf.parser;

需要NeGet的包:iTextSharp

  1. public string ReadPdfContent(string filePath)
  2. {
  3. PdfReader pdfReader = new PdfReader(filePath);
  4. string text = string.Empty;
  5. for (int i = 1; i <= pdfReader.NumberOfPages; i++)
  6. {
  7. ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
  8. var temp = PdfTextExtractor.GetTextFromPage(pdfReader, i, strategy);
  9. text += temp;
  10. }
  11. pdfReader.Close();
  12. return text;
  13. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/319273
推荐阅读
相关标签
  

闽ICP备14008679号