| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using QuestPDF.Drawing;
- using QuestPDF.Fluent;
- using QuestPDF.Helpers;
- using QuestPDF.Infrastructure;
- namespace QuestPDF.Previewer;
- public class ExceptionDocument : IDocument
- {
- private Exception Exception { get; }
-
- public ExceptionDocument(Exception exception)
- {
- Exception = exception;
- }
-
- public DocumentMetadata GetMetadata()
- {
- return DocumentMetadata.Default;
- }
- public void Compose(IDocumentContainer document)
- {
- document.Page(page =>
- {
- page.Size(PageSizes.A4);
- page.Margin(1, Unit.Inch);
- page.PageColor(Colors.Red.Lighten4);
- page.DefaultTextStyle(x => x.FontSize(16));
- page.Header()
- .BorderBottom(2)
- .BorderColor(Colors.Red.Medium)
- .PaddingBottom(5)
- .Text("Ooops! Something went wrong...").FontSize(28).FontColor(Colors.Red.Medium).Bold();
- page.Content().PaddingVertical(20).Column(column =>
- {
- var currentException = Exception;
- while (currentException != null)
- {
- column.Item().Text(currentException.GetType().Name).FontSize(20).SemiBold();
- column.Item().Text(currentException.Message).FontSize(14);
- column.Item().PaddingTop(10).Text(currentException.StackTrace).FontSize(10).Light();
- currentException = currentException.InnerException;
- if (currentException != null)
- column.Item().PaddingVertical(15).LineHorizontal(2).LineColor(Colors.Red.Medium);
- }
- });
- });
- }
- }
|