HakanL / WkHtmlToPdf-DotNet

C# .NET Core wrapper for wkhtmltopdf library that uses Webkit engine to convert HTML pages to PDF.
GNU Lesser General Public License v3.0
366 stars 66 forks source link

HTML tags removed #111

Closed dupuisdavid closed 10 months ago

dupuisdavid commented 1 year ago

Hi,

I notice that after several generations of pdf from a file picker, the generated PDF loses all HTML formatting. The table layout is completely skipped... Here is my C# code :

`try {

StorageFile htmlFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/index.html"));

            var converter = new BasicConverter(new PdfTools());
            var htmlContent = File.ReadAllText(htmlFile.Path);

            var doc = new HtmlToPdfDocument()
            {
                GlobalSettings = {
                    ColorMode = ColorMode.Color,
                    Orientation = Orientation.Portrait,
                    PaperSize = PaperKind.A4
                },
                Objects = {
                    new ObjectSettings() {
                        PagesCount = true,
                        HtmlContent = htmlContent,
                        WebSettings = { DefaultEncoding = "utf-8"}
                    }
                }
            };

            var savePicker = new Windows.Storage.Pickers.FileSavePicker();
            savePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.ComputerFolder;
            savePicker.FileTypeChoices.Add("PDF Files", new List<string> { ".pdf", ".PDF" });
            savePicker.SuggestedFileName = "Devis.pdf";

            StorageFile newFile = await savePicker.PickSaveFileAsync();

            byte[] bytes = converter.Convert(doc);
            await FileManager.WriteFileAsync(newFile.Path, bytes);

            doc = null;
        }
        catch (Exception e)
        {
            Debug.WriteLine(e);
        }`

Here is my HTML file :

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>CodePen - Zigzag Table</title><style type="text/css">h1{color:#c00;font-family:sans-serif;font-size:2em;margin-bottom:0}table{width: 100%; font-family:sans-serif}table td,table th{padding:.25em .5em;text-align:left}table td:nth-child(2),table th:nth-child(2){text-align:right}table td{background-color:#eee}table th{background-color:#009;color:#fff}.zigzag{border-collapse:separate;border-spacing:.25em 1em}.zigzag tbody tr:nth-child(odd){transform:rotate(2deg)}.zigzag tbody tr:nth-child(even),.zigzag thead tr{transform:rotate(-2deg)}</style></head><body><h1>Top England Goal Scorers AAA</h1><table class="zigzag"><thead><tr><th class="header">Player</th><th class="header">Goals</th><th class="header">First</th><th class="header">Latest</th></tr></thead><tbody><tr><td>Wayne Rooney</td><td>53</td><td>06 Sep 2003</td><td>27 Jun 2016</td></tr><tr><td>Bobby Charlton</td><td>49</td><td>19 Apr 1958</td><td>20 May 1970</td></tr><tr><td>Gary Lineker</td><td>48</td><td>26 Mar 1985</td><td>29 Apr 1992</td></tr><tr><td>Jimmy Greaves</td><td>44</td><td>17 May 1959</td><td>24 May 1967</td></tr><tr><td>Michael Owen</td><td>40</td><td>27 May 1998</td><td>12 Sep 2007</td></tr><tr><td>Alan Shearer</td><td>30</td><td>19 Feb 1992</td><td>20 Jun 2000</td></tr><tr><td>Tom Finney</td><td>30</td><td>28 Sep 1946</td><td>04 Oct 1958</td></tr><tr><td>Nat Lofthouse</td><td>30</td><td>22 Nov 1950</td><td>22 Oct 1958</td></tr><tr><td>Vivian Woodward</td><td>29</td><td>14 Feb 1903</td><td>13 Mar 1911</td></tr><tr><td>Frank Lampard</td><td>29</td><td>20 Aug 2003</td><td>29 May 2013</td></tr></tbody></table></body></html>

Please note that I used the lib in a UWP app.

Thanks

HakanL commented 1 year ago

If the issue is with the generation of the PDF, ie incorrect layout, then this is something you need to report to the wkhtmltopdf project, as this is just a .NET wrapper around their native library. This library doesn't do anything with the actual generation of the PDF.

dupuisdavid commented 1 year ago

ok. Which version of wkhtmltopdf is used pls?

HakanL commented 1 year ago

0.12.6