Извлечение текста SuperScripts и SubScripts из PDF

Извлечение текста SuperScripts и SubScripts

Извлечение текста из PDF документа — это обычное дело. Однако в таком тексте, при извлечении, SuperScripts и SubScripts, содержащиеся в них, которые типичны для технических документов и статей, могут не отображаться. SubScript или SuperScript — это символ, число или буква, расположенные ниже или выше обычной строки текста. Обычно они меньше остального текста.

SubScripts и SuperScripts чаще всего используются в формулах, математических выражениях и спецификациях химических соединений. Их трудно редактировать, когда их может быть много в одном отрывке текста. В одном из последних релизов библиотека Aspose.PDF for .NET добавила поддержку извлечения текста SuperScripts и SubScripts из PDF.

Используйте класс TextFragmentAbsorber, и вы уже можете делать все, что угодно с найденным текстом, т.е. вы можете просто использовать весь текст. Попробуйте следующий фрагмент кода:

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractSuperScriptsAndSubScripts()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "SuperScriptExample.pdf"))
    {
        // Create an absorber
        var absorber = new Aspose.Pdf.Text.TextFragmentAbsorber();
        document.Pages[1].Accept(absorber);
        using (StreamWriter writer = new StreamWriter(dataDir + "SuperScriptExample_out.txt"))
        {
            // Write the extracted text in text file
            writer.WriteLine(absorber.Text);
        }
    }
}

Или используйте TextFragments отдельно и выполняйте с ними всевозможные манипуляции, например, сортируйте по координатам или по размеру.

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractSuperScriptsAndSubScriptsWithTextFragments()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "SuperScriptExample.pdf"))
    {
        // Create an absorber
        var absorber = new Aspose.Pdf.Text.TextFragmentAbsorber();
        document.Pages[1].Accept(absorber);
        using (StreamWriter writer = new StreamWriter(dataDir + "SuperScriptExample_out.txt"))
        {
            foreach (var textFragment in absorber.TextFragments)
            {
                // Write the extracted text in text file
                writer.Write(textFragment.Text);
            }

        }
    }
}