PDF에서 SuperScripts 및 SubScripts 텍스트 추출

SuperScripts 및 SubScripts 텍스트 추출

PDF 문서에서 텍스트를 추출하는 것은 일반적인 일입니다. 그러나 추출된 텍스트에서 기술 문서 및 기사에 일반적인 SuperScripts 및 SubScripts가 표시되지 않을 수 있습니다. SubScript 또는 SuperScript는 일반 텍스트 줄 아래 또는 위에 배치된 문자, 숫자 또는 글자입니다. 일반적으로 나머지 텍스트보다 작습니다.

SubScripts 및 SuperScripts는 주로 수식, 수학적 표현 및 화학 화합물의 사양에 사용됩니다. 같은 텍스트 구절에 여러 개가 있을 때 이를 편집하는 것은 어렵습니다. 최신 릴리스 중 하나에서 Aspose.PDF for .NET 라이브러리는 PDF에서 SuperScripts 및 SubScripts 텍스트를 추출하는 기능을 추가했습니다.

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);
            }

        }
    }
}