使用ephtmltopdf进行html到pdf的转换

时间:2015-01-21 09:42:16

标签: c# html html-to-pdf

我一直试图将我的html页面保存为pdf格式。我正在使用ephtmltopdf。它存储我的Pdf文件,但表格正在丢失。现在我对如何解决这个问题没有太多想法。我的C#代码如下:

            string url = "http://localhost:50306/ColumnChart.aspx";
            string path = "d:\\";
            string downloadName = path + "/" + "Student" + "-Registration_Form.pdf";
            SizeF sf = new SizeF();
            sf.Height = (float)635;//635;900
            sf.Width = (float)816;//8161000

            PdfConverter pdfConverter = new PdfConverter();
            pdfConverter.PageWidth = 816; //8161000
            pdfConverter.PdfDocumentOptions.TopMargin = 50;
            pdfConverter.PdfDocumentOptions.BottomMargin = 105;
            pdfConverter.PdfDocumentOptions.GenerateSelectablePdf = true;
            pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.Letter;
            pdfConverter.PdfDocumentOptions.CustomPdfPageSize = sf;//new SizeF( 595, 842 );
            pdfConverter.PdfDocumentOptions.PdfCompressionLevel = PdfCompressionLevel.Normal;
            pdfConverter.PdfDocumentOptions.ShowHeader = false;
            pdfConverter.PdfDocumentOptions.ShowFooter = false;
            pdfConverter.PdfDocumentOptions.PdfPageOrientation = PDFPageOrientation.Portrait;
            pdfConverter.PdfDocumentOptions.FitWidth = false;
            pdfConverter.PdfDocumentOptions.EmbedFonts = true;
            pdfConverter.PdfDocumentOptions.ShowFooter = false;
            pdfConverter.PdfDocumentOptions.ShowHeader = false;


            pdfConverter.SavePdfFromUrlToFile(url, downloadName);

            Response.ContentType = "application/pdf";
            Response.AppendHeader("Content-Disposition", "attachment; filename=Student-Registration_Form.pdf");
            Response.TransmitFile("d:\\Student-Registration_Form.pdf");
            Response.End();

我的HTML代码如下:

<table >
        <tr>
            <td style="vertical-align: text-top;">

                <table border="1" id="CompleteTimeline">
                    <tr>
                        <th>
                            Complete<br />Timeline
                        </th>
                        <th>
                            Time
                        </th>
                    </tr>
                </table>
            </td>
            <td style="vertical-align: text-top;">
                <table border="1" id="PlayBackTable">
                    <tr>
                        <th>
                            Play<br />Back Id
                        </th>
                        <th>
                            Duration
                        </th>
                        <th>
                            Start Time
                        </th>
                        <th>
                            End Time
                        </th>
                    </tr>
                </table>
            </td>
            <asp:Button ID="button" Text="click" runat="server" OnClick="b1_click" />
            <td style="vertical-align: text-top;">
                <table border="1" id="MissingStartEnd">
                    <tr>
                        <th>
                            Missing<br />Start
                        </th>
                        <th>
                            Time
                        </th>
                        <th>
                            Missing<br />End
                        </th>
                        <th>
                            Time
                        </th>
                    </tr>
                </table>
            </td>
            <td style="vertical-align: text-top;">
                <table border="1" id="UnmatchedRegions">
                    <tr>
                        <th>
                            Unmatched<br />Time
                        </th>
                        <th>
                            Duration
                        </th>
                    </tr>
                </table>
            </td>
        </tr>
    </table>

PLz帮我解决这个问题。希望提出建议

1 个答案:

答案 0 :(得分:1)

请尝试使用此部分

 // set the header HTML area

pdfConverter.PdfHeaderOptions.HtmlToPdfArea = new HtmlToPdfArea("http://localhost:50306/ColumnChart.aspx");

许可证密钥是保密的,有人可能会滥用它。请从这篇文章中删除它。但请将其保存在您的代码中。