c# как я могу прочитать текст из тегов в акробате pdf - PullRequest
0 голосов
/ 07 марта 2020

Как извлечь текст из тегов, используя c#?

enter image description here

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Вы можете использовать PdfPig для извлечения отмеченного содержимого страницы и того, что они содержат (текст, изображения, пути и дочерние элементы):

using System;
using UglyToad.PdfPig;

[...]

using (PdfDocument document = PdfDocument.Open("file.pdf"))
{
    for (int i = 0; i < document.NumberOfPages; i++)
    {
        var page = document.GetPage(i + 1);
        var mcs = page.GetMarkedContents();

        foreach (var mc in mcs)
        {
            var letters = mc.Letters;
            var paths = mc.Paths;
            var images = mc.Images;

            foreach (var letter in letters)
            {
                Console.Write(letter.Value);
            }
            Console.WriteLine();
        }
    }
}
0 голосов
/ 07 марта 2020

Хотя я не проверял это, что-то подобное пришло мне в голову. Если он не принят, я могу удалить его.

using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.Text;

namespace PDFExtractor
{
    public class PDFExtractor
    {
        public static string ExtractTextFromPDF(string pdfFileName)
        {
            StringBuilder result = new StringBuilder();
            // Create a reader for the given PDF file
            using (PdfReader reader = new PdfReader(pdfFileName))
            {
                // Read pages
                for (int page = 1; page <= reader.NumberOfPages; page++)
                {
                    SimpleTextExtractionStrategy strategy =
                        new SimpleTextExtractionStrategy();
                    string pageText =
                        PdfTextExtractor.GetTextFromPage(reader, page, strategy);
                    result.Append(pageText);
                }
            }
            return result.ToString();
        }
    }

    public static string GetStrBetweenTags(string value, string startTag, string endTag)
    {
        if (value.Contains(startTag) && value.Contains(endTag))
        {
            int index = value.IndexOf(startTag) + startTag.Length;
            return value.Substring(index, value.IndexOf(endTag) - index);
        }
        else
            return null;
    }

    // var str = GetStrBetweenTags(ExtractTextFromPDF("\path of PDf file\"), "<figure>", "</figure");
}
...