尝试使用 iText (c#) 将 HTML 转换为 PDF 时,主要内容与右边距重叠

Main content overlaps with right margin while trying to convert HTML to PDF with iText (c#)

我正在尝试使用 iText 库将 html 转换为 pdf,但是虽然 pdf 创建效果很好,但页边距不是。

我尝试手动设置边距,但程序似乎不仅不理我,而且更糟糕的是,主要内容与右侧重叠,如图所示

这里是我的一部分代码(cabecera是html所在的字符串)

主页

string file = string.Format("{0}LEGO_{1}_{2}_{3}_{4}_{5}.pdf",Constants.WebConfig.urlCopiaPdf, fecha.Day, fecha.Month, fecha.Year, fecha.Hour, fecha.Minute);
            string fileWeb = string.Format("{0}LEGO_{1}_{2}_{3}_{4}_{5}.pdf", Constants.WebConfig.urlCopiaPdfWeb, fecha.Day, fecha.Month, fecha.Year, fecha.Hour, fecha.Minute);
            string fileHTML = string.Format("{0}LEGO_{1}_{2}_{3}_{4}_{5}.html",Constants.WebConfig.urlCopiaPdf, fecha.Day, fecha.Month, fecha.Year, fecha.Hour, fecha.Minute);
            //string file = string.Format("c:\docs\LEGO{0}_{1}_{2}_{3}_{4}.pdf", fecha.Day, fecha.Month, fecha.Year, fecha.Hour, fecha.Minute);

            StringReader sr = new StringReader(cabecera);
            Document pdfDoc = new Document(PageSize.A4, 40f, 40f, 60f, 20f);
            pdfDoc.SetMarginMirroring(false);
            HeaderAndFooter PageEventHandler = new HeaderAndFooter();               

            PdfWriter writer = PdfWriter.GetInstance(pdfDoc, new FileStream(file, FileMode.Create));
            writer.PageEvent = PageEventHandler;
            writer.SetMargins(40f, 40f, 60f, 20f);
            writer.SetMarginMirroring(false);
            pdfDoc.Open();
            iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
            pdfDoc.Close();

是的,我复制了 setmargins 和 setmarginmirroring,我只是在尝试是否有任何效果......我什至尝试创建一个 PdfPageEventHelper 并编写以下代码作为测试

public class HeaderAndFooter : PdfPageEventHelper
{
    public HeaderAndFooter()
        : base()
    {
    }


    public override void OnEndPage(PdfWriter writer, Document document)
    {
        PdfContentByte cb = writer.DirectContent;
        ColumnText.ShowTextAligned(cb, Element.ALIGN_CENTER, new Phrase(String.Format("dsadsadsadsad", writer.PageNumber)), (document.Right - 40), (document.Bottom - document.Top) / 2, 0);
    }
}

但是没有任何效果...有人可以帮助我吗?

谢谢

最后我的问题是我用来创建 PDF 的 html 格式不正确(它没有 html、head 和 body 标签,模板是'我的但是......我应该在问任何事情之前检查它),所以在添加它需要的东西之后效果很好。