HtmlRenderer.PdfSharp мой HTML плохо отображается в PDF - PullRequest
0 голосов
/ 10 июля 2019

Я не знаю точно, в чем проблема. У меня есть HTML с встроенным CSS, я хочу преобразовать этот HTML в PDF-файл, но не могу заставить его работать должным образом. Это мой код:

Private Function PdfSharpConvert(html As String)
        Dim res() As Byte = New Byte() {}
        Using ms As New MemoryStream()
            Dim pdf = PdfGenerator.GeneratePdf(html, PdfSharp.PageSize.A4)
            pdf.Save(ms)
            res = ms.ToArray()
        End Using
        Return res
    End Function
    Public Sub DownloadPdf()
        Dim p = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Html", "AsginacionesSemanalesPdf.html")
        Dim s = File.ReadAllText(p)
        Dim a = PdfSharpConvert(s)

        File.WriteAllBytes("C:\Prueba\whatever.pdf", a)
    End Sub

Это мой HTML-файл:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
<table style="width:100%;border-collapse:collapse" border="1">

  <tr style="border-collapse:collapse">
    <th colspan="3">Smart Academy</th>
    <th>11 AH</th> 
  </tr>
  <tr>
    <td style="width:5%;background-color:#003366;color:white">
        lunes
    </td>
    <td style="width:2%">
      <table style="width:100%;border-collapse:collapse" border="1">
         <tr><th>n</th></tr>
         <tr><th>1</th></tr>
         <tr><th>2</th></tr>
         <tr><th>3</th></tr>
         <tr><th>4</th></tr>
       </table>
    </td>
    <td style="width:43%">
        <table style="width:100%;border-collapse:collapse" border="1">
            <tr class="tabla"><th>Asignatura</th></tr>
            <tr><td>a</td></tr>
            <tr><td>a</td></tr>
            <tr><td>a</td></tr>
            <tr><td>a</td></tr>
        </table>
    </td>
    <td style="width:50%">
        <table style="width:100%;border-collapse:collapse" border="1">
            <tr style="background-color:#005c00;color:white"><th>Tipo de Evaluacion</th></tr>
            <tr><td>a</td></tr>
            <tr><td>a</td></tr>
            <tr><td>a</td></tr>
            <tr><td>a</td></tr>
        </table>
    </td>
  </tr>
</table>
</body>
</html>

Я не нашел много документации в Интернете, только несколько примеров в стеке и на странице автора, если у кого-то из вас есть лучший способ сделать это, дайте мне знать, я не против перейти на другой конвертер PDF.

вот так это должно выглядеть: enter image description here

Вот как это выглядит, когда я конвертирую HTML в PDF: enter image description here

...