使用Select.PDF或HiQPDF

时间:2019-03-15 18:01:29

标签: html css pdf

我正在尝试使用HTML / CSS生成一个表单,然后将其转换为PDF。

我遇到的问题是我希望输出正好是8英寸宽。我得到的结果大约是5.125英寸宽。

我首先使用Select.PDF进行了尝试。当我无法正常工作时,我寻找了另一个选择,并找到了HiQPDF。两者都产生相同的按比例缩小的输出。

由于两种产品都给我相同的结果,所以让我认为我做错了什么。但是,如果我在Chrome中打开HTML并将其打印为PDF,则可以得到预期的结果。

这是HTML / CSS。尺寸以磅为单位,假设标准为每英寸72点。我也尝试过以英寸为单位进行测量。

<html>
    <head>
        <style>
            body {
                background-color: white;
                width: 576pt;
            }

            div {
                background-color: transparent;
                padding: 0;
                margin: 0;
                border: 0;
                border-style: solid;
                border-color: #231f20;
                color: #231f20;
            }



            #buyer {
                border-width: 1.5pt .5pt .5pt 1.5pt;
                width: 332pt;
                min-height: 18pt;
                clear: left;
                float: left;
            }

            #buyerLabel {
                color: #231f20;
                font-family: Verdana, Geneva, sans-serif;
                font-size: 6pt;
                position: relative;
                left: 4pt;
                top: 2pt;
            }

            #buyerData {
                color: black;
                font-family: "Times New Roman", Times, serif;
                font-size: 14pt;
                position: relative;
                left: 37pt;
                top: 0;
            }


            #phone {
                border-width: 1.5pt .5pt .5pt .5pt;
                width: 143pt;
                min-height: 18pt;
                float: left;
            }


            #phoneLabel {
                font-family: Verdana, Geneva, sans-serif;
                font-size: 6pt;
                position: relative;
                left: 4pt;
                top: 2pt;
            }

            #phoneData {
                color: black;
                font-family: "Times New Roman", Times, serif;
                font-size: 14pt;
                position: relative;
                left: 37pt;
                top: 0;
            }



            #date {
                border-width: 1.5pt 1.5pt .5pt .5pt;
                width: 96pt;
                min-height: 18pt;
                float: left;
                clear: right;
            }


            #dateLabel {
                font-family: Verdana, Geneva, sans-serif;
                font-size: 6pt;
                position: relative;
                left: 4pt;
                top: 2pt;
            }

            #dateData {
                color: black;
                font-family: "Times New Roman", Times, serif;
                font-size: 14pt;
                position: relative;
                left: 37pt;
                top: 0;
            }
        </style>
    </head>
    <body>
        <div id=buyer>
            <div id=buyerLabel>BUYER(S)</div>
            <div id=buyerData>Roger Rabbit</div>
        </div>
        <div id=phone>
            <div id=phoneLabel>PHONE</div>
            <div id=phoneData>(606) 555-5555</div>
        </div>
        <div id=date>
            <div id=dateLabel>DATE</div>
            <div id=dateData>2/28/2019</div>
        </div>
    </body>
</html>

这是我正在处理的示例C#代码。在此示例中,我使用的是Select.PDF。最初,除了页面大小外,我没有设置任何其他选项。后来我添加了其他功能,希望它们可以解决问题。

    HtmlToPdf converter = new HtmlToPdf();
    converter.Options.PdfPageSize = PdfPageSize.Letter;
    converter.Options.MarginLeft = 0;
    converter.Options.MarginRight = 0;
    converter.Options.AutoFitWidth = HtmlToPdfPageFitMode.AutoFit;
    converter.Options.CssMediaType = HtmlToPdfCssMediaType.Print;

    var html = Encoding.UTF8.GetString(File.ReadAllBytes("Sample.html"));

    PdfDocument doc = converter.ConvertHtmlString(html);
    doc.Save("Sample.pdf");

0 个答案:

没有答案