gpt4 book ai didi

.net - 使用 iTextSharp 将 HTML 转换为 PDF 时的绝对位置

转载 作者:行者123 更新时间:2023-12-01 06:31:28 25 4
gpt4 key购买 nike

我正在使用 iTextSharp 将 HTML 转换为 PDF,它似乎不适用于绝对定位的元素。例如我有这个 HTML 文件:

<html>
<body>
<p style="position: absolute; left: 10px; top: 100px; width: 50px;">Hello World</p>
</body>
</html>

文本在生成的 PDF 文件中的位置不正确。你知道在将 HTML 转换为 PDF 时是否可以有绝对定位的元素?任何允许这样做的免费解决方案(iTextSharp 或其他)将不胜感激。

这是我用来使用 iTextSharp 执行转换的代码:
class Program
{
static void Main(string[] args)
{
Document document = new Document(PageSize.A4);
using (Stream output = new FileStream("out.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
using (Stream htmlStream = new FileStream("input.htm", FileMode.Open, FileAccess.Read, FileShare.Read))
using (XmlTextReader reader = new XmlTextReader(htmlStream))
{
PdfWriter.GetInstance(document, output);
HtmlParser.Parse(document, reader);
}
Process.Start(@"C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe", "out.pdf");
}
}

编辑:

经过进一步调查,似乎 iTextSharp 的 HTML 到 PDF 转换功能仅限于一些非常简单的 HTML 文档。有一个不错的 Java 项目,名为 Flying Saucer它处理复杂的 HTML 文档。所以我尝试将它与 IKVM 一起使用它工作得很好。唯一的问题是它在某种程度上感觉是一个肮脏的解决方案。为 HTML 到 PDF 的转换添加 31MB 的汇编代码似乎相当多。是否有更好的“免费”替代方案来处理这种情况。

最佳答案

我终于决定使用 xhtmlrenderer .它完全符合我的需求,它具有许多功能,并且能够正确呈现我的任何 HTML 文件。

由于目前它只有一个 JAVA 版本,我必须使用 IKVM 将 jar 转换为 .NET 程序集。 .

关于.net - 使用 iTextSharp 将 HTML 转换为 PDF 时的绝对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/713961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com