J'ai ce C # dans mon Program.cs:
var page = "plain"; var slnpath = $@"{Directory.GetCurrentDirectory()}\..\..\..\.."; var htmlpath = $@"{slnpath}\HtmlTemplates\{page}.html"; var pdfpath = $@"{slnpath}\PdfFiles\{page}.pdf"; var dllpath = $@"{slnpath}\DinkNative64bit\libwkhtmltox.dll"; var html = new StringBuilder(File.ReadAllText(htmlpath)); var _converter = new SynchronizedConverter(new PdfTools()); var context = new CustomAssemblyLoadContext().LoadUnmanagedLibrary(dllpath); var globalSettings = new GlobalSettings { ColorMode = ColorMode.Color, Orientation = Orientation.Portrait, PaperSize = PaperKind.A4, Margins = new MarginSettings { Top = 10 }, DocumentTitle = "PDF Report", //Out = @"D:\PDFCreator\Employee_Report.pdf" USE THIS PROPERTY TO SAVE PDF TO A PROVIDED LOCATION }; var objectSettings = new ObjectSettings { PagesCount = true, HtmlContent = html.ToString(), //Page = "https://code-maze.com/", USE THIS PROPERTY TO GENERATE PDF CONTENT FROM AN HTML PAGE WebSettings = { DefaultEncoding = "utf-8" }, //, UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "styles.css") }, HeaderSettings = { FontName = "Arial", FontSize = 9, Right = "Page [page] of [toPage]", Line = true }, FooterSettings = { FontName = "Arial", FontSize = 9, Line = true, Center = "Report Footer" }, }; var pdf = new HtmlToPdfDocument() { GlobalSettings = globalSettings, Objects = { objectSettings } }; //_converter.Convert(pdf); IF WE USE Out PROPERTY IN THE GlobalSettings CLASS, THIS IS ENOUGH FOR CONVERSION var file = _converter.Convert(pdf); File.WriteAllBytes(pdfpath, file);
Et j'ai ce fichier HTML que j'ai (trop gros pour être collé ici).
Le PDF généré est généralement correct, mais à la page 3, le saut de page n'est pas correct. Le contenu plus large se compare au contenu précédent - je suppose qu'il ne rentrera pas dans la page suivante.
Comment chaque DIV avec la classe de page
peut-il commencer sur une nouvelle page?
3 Réponses :
Si vous souhaitez ajouter un saut de page après chaque page, ajoutez ceci dans votre classe de page:
page-break-after: always;
Merci - mais ce n'est pas parfait, comme indiqué dans l'autre post. D'où ce post.
Essayez-vous de réaliser un saut de page défini après chaque cours de "page"? Si c'est le cas, essayez peut-être le saut de page après: toujours;
Incroyable! Cela fonctionne parfaitement! Merci :) Postez cela comme une réponse.
J'ai utilisé "page-break-after: always;" à l'intérieur de div et a parfaitement fonctionné pour moi en utilisant DinkToPdf
var sb = new StringBuilder(); sb.AppendFormat("<div style='page-break-after: always;'></div>");