ItextSharp HTML 到 PDF 转换 如何将带有上标和下标的文本按原样转换

ItextSharp HTML to PDF conversion how to convert text with superscript and subscript as it is

你好,这是我将 HTML 转换为 PDF 的实现,因为 i

            private static PdfContent PdfContentA()
                    {
                        var cssText = System.IO.File.ReadAllText(@"C:\Users\kalanamithm\Desktop\Ground Operations\MvcApplication1\MvcApplication1\Resources\CSS\FTL.css");
                        //var htmlText = System.IO.File.ReadAllText(@"C:\Users\kalanamithm\Desktop\Ground Operations\MvcApplication1\MvcApplication1\Resources\HTML\grace.html");

                        var htmlText = System.IO.File.ReadAllText(@"C:\Users\kalanamithm\Desktop\Ground Operations\MvcApplication1\MvcApplication1\Resources\HTML\FLT.html");

                        var memoryStream = new MemoryStream();
                        var document = new Document();
                        var writer = PdfWriter.GetInstance(document, memoryStream);
                        document.Open();

                        var xmlWorkerFontProvider = new XMLWorkerFontProvider();
                        xmlWorkerFontProvider.Register("http://localhost:58045/Resources/Fonts/TequilaSunset-Regular.ttf");
                        xmlWorkerFontProvider.Register("http://localhost:58045/Resources/Fonts/Mf Sippin On Sunshine.ttf");
                        using (var cssMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(cssText)))
                        {
                            using (var htmlMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(htmlText)))
                            {
                                XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, htmlMemoryStream, cssMemoryStream);
                            }
                        }


                        document.Close();
                        var pdfContent = new PdfContent
                        {
                            MemoryStream = memoryStream,
                            FileName = "SomeName"
                        };
                        return pdfContent;
                    }

um 在这里遇到一个问题,当 um 转换 SuperScript pr 下标时,它不会在 Pdf 中显示。

ITextSharp 中是否有针对此问题的解决方案?

我想出了一个解决办法 在 html 中,我手动创建了一个上标,如下所示,它可以工作 (基于我的场景)

 "<span style=\"width:500px;\">" +
                            "<span>500 m</span>" +
                            "<span style=\"vertical-align:super;font-size:8px;\">2</span>" +
                        "</span>" +

既然您的问题提到了 'as it is',那么您可以在 css 文件中为 sub 和 sup 标签添加 css。然后所有下标和上标标签将在 pdf 中呈现良好。无需更改初始 html.

<style>
sup {
vertical-align: super;
font-size: 9px;
}

sub {
vertical-align: sub;
font-size: 9px;
}
</style>