从PDF中提取上标和下标文本

提取上标和下标文本

从PDF文档中提取文本是一件常见的事情。然而,在提取的文本中,上标和下标可能不会显示,这在技术文档和文章中是典型的。下标或上标是放置在常规文本行下方或上方的字符、数字或字母。它通常比其余文本小。

下标和上标最常用于公式、数学表达式和化合物的规格。当同一段文本中可能有许多下标和上标时,编辑它们是非常困难的。 在最新的一个版本中,Aspose.PDF for .NET库增加了从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);
            }

        }
    }
}