using QuestPDF; using QuestPDF.Companion; using QuestPDF.Fluent; using QuestPDF.Helpers; using QuestPDF.Infrastructure; using QuestPDF.ReportSample; using QuestPDF.ReportSample.Layouts; Settings.License = LicenseType.Professional; Document .Create(container => { container.Page(page => { page.Content() .Padding(1, Unit.Centimetre) .SemanticDocument() .SemanticPart() .SemanticParagraph() // .DefaultTextStyle(x => x.DisableFontFeature(FontFeatures.StandardLigatures)) .Column(d => { d.Item().SemanticLanguage("en-US").SemanticSpan().Text(text => { text.Span("This is a simple document with a Polish translation - isn't it nice, huh?"); }); d.Item().SemanticLanguage("pl-PL").SemanticSpan().Text(text => { text.Span("To jest przykład dokumentu zawierającego tłumaczenie w języku polskim"); }); // d.Item().SemanticHeader("Top-Level Header").Text("Top-Level Header"); // // d.Item().SemanticPart().Column(p => // { // p.Item().SemanticHeader("Second-Level Header 1").Text("Second-Level Header 1"); // p.Item().SemanticParagraph().Text(Placeholders.LoremIpsum()); // }); // // d.Item().SemanticPart().Column(p => // { // p.Item().SemanticHeader("Second-Level Header 2").Text("Second-Level Header 2"); // p.Item().SemanticParagraph().Text(Placeholders.LoremIpsum()); // }); }); }); }) .WithMetadata(new DocumentMetadata() { Title = "Dupa!", Language = "en-US" }) .GeneratePdfAndShow(); return; //await RunGenericException(); //await RunLayoutError(); await RunSimpleDocument(); //await RunReportDocument(); //await RunDocumentWithMultiplePages(); Task RunGenericException() { return Document .Create(container => { container.Page(page => { page.Content() .PaddingVertical(1, Unit.Centimetre) .Column(x => { x.Spacing(20); x.Item().Text(Placeholders.LoremIpsum()); x.Item().Hyperlink("questpdf.com").Image(Placeholders.Image(300, 200)); throw new Exception("New exception"); }); }); }) .ShowInCompanionAsync(); } Task RunLayoutError() { return Document .Create(container => { container.Page(page => { page.Size(PageSizes.A4); page.Margin(2, Unit.Centimetre); page.PageColor(Colors.White); page.DefaultTextStyle(x => x.FontSize(20)); page.Content() .PaddingVertical(1, Unit.Centimetre) .Column(x => { x.Spacing(20); x.Item().Text(Placeholders.LoremIpsum()); foreach (var i in Enumerable.Range(0, 15)) { x.Item().Background(Colors.Grey.Lighten3).MaxWidth(200).Container().Width(100 + i * 10).Height(50).Text($"Item {i}"); } }); }); }) .ShowInCompanionAsync(); } Task RunSimpleDocument() { return Document .Create(container => { container.Page(page => { page.Size(PageSizes.A4); page.Margin(2, Unit.Centimetre); page.PageColor(Colors.White); page.DefaultTextStyle(x => x.FontSize(20)); page.Header() .Text("Hello PDF!") .SemiBold().FontSize(36).FontColor(Colors.Blue.Medium); page.Content() .PaddingVertical(1, Unit.Centimetre) .Column(x => { x.Spacing(20); x.Item().Text(Placeholders.LoremIpsum()); x.Item().Hyperlink("questpdf.com").Image(Placeholders.Image(200, 100)); }); page.Footer() .AlignCenter() .Text(x => { x.Span("Page "); x.CurrentPageNumber(); }); }); }) .ShowInCompanionAsync(); } Task RunReportDocument() { ImagePlaceholder.Solid = true; var model = DataSource.GetReport(); var report = new StandardReport(model); return report.ShowInCompanionAsync(); } Task RunDocumentWithMultiplePages() { return Document .Create(document => { foreach (var i in Enumerable.Range(10, 10)) { document.Page(page => { page.Size(new PageSize(i * 20, i * 30)); page.Margin(20); page.Content().Background(Placeholders.BackgroundColor()); }); } }) .ShowInCompanionAsync(); } Task RunMergedDocument() { var document1 = Document .Create(container => { container.Page(page => { page.Content() .Text("Page 1!") .SemiBold().FontSize(36).FontColor(Colors.Blue.Medium); }); }); var document2 = Document .Create(container => { container.Page(page => { page.Content() .Text("Page 2!") .SemiBold().FontSize(36).FontColor(Colors.Blue.Medium); }); }); var mergedDocument = Document.Merge(document1, document2); return mergedDocument.ShowInCompanionAsync(); }