Я использую ". net core". Я хочу найти любое ключевое слово в файле PDF, но этот код не работает - PullRequest
0 голосов
/ 05 февраля 2020
static void Main(string[] args) {
    var file = File.Open(Directory.GetCurrentDirectory() + "/Net.pdf", FileMode.Open);
    var pattern = new Regex("kullan", RegexOptions.IgnoreCase);

    //this line is not working
    TextExtractor textExtractor = new TextExtractor();

    var dddd = ReadToEnd(file);
    var textStrings = textExtractor.Extract(dddd);
    var matches = pattern.Matches(textStrings.Text);

    foreach (var item in matches)
    {
        Console.WriteLine(item);
    }
}

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Я так и сделал, спасибо за ответ

namespace pro
{
    class Program
    {
        static void Main(string[] args)
        {

            string b = pdfText(Directory.GetCurrentDirectory()+ "/Net.pdf");

            string a= "kullan";
            int sonuc;
            sonuc = b.IndexOf(a,0, b.Length);
            if(sonuc==-1)
            {
                Console.WriteLine("not found");
            }
            else
            {
                Console.WriteLine("found from " + sonuc.ToString() + ". character");
            } 

        }

        public static string pdfText(string path)
        {
            PdfReader reader = new PdfReader(path);
            var dd = reader.GetPageContent(1);
            string text = string.Empty;
            for (int page = 1; page <= reader.NumberOfPages; page++)
            {
                System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
                text += PdfTextExtractor.GetTextFromPage(reader, page);

            }
            reader.Close();
            return text;
        }
    }
}
0 голосов
/ 05 февраля 2020

Вы можете попробовать что-то вроде этого:

File file = new File(myPDF);

//pattern
var pattern = new Regex("kullan", RegexOptions.IgnoreCase);
var textExtractor = new TextExtractor();

foreach (var page in file.Document.Pages)
{
    var strings = textExtractor.Extract(page);
    var matchingText = pattern.Matches(TextExtractor.ToString(strings));
}

Тика:

try
{

    var result = new TextExtractor().Extract(yourPDF.pdf).Text;

    Console.WriteLine(result.Text.Length);

    foreach(var line in result)
    {
        if(line.contains("kullen"))
            /** Do Something **/
    }
}
catch(Exception e)
{
    Console.WriteLine("Error occurred: " + e);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...