MergedDocumentSectionLinksTests.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using NUnit.Framework;
  2. using QuestPDF.Examples.Engine;
  3. using QuestPDF.Fluent;
  4. using QuestPDF.Helpers;
  5. namespace QuestPDF.Examples
  6. {
  7. [TestFixture]
  8. public class MergedDocumentSectionLinksTests
  9. {
  10. [Test]
  11. public void Merge_ContinuousPageNumbers()
  12. {
  13. var mergedDocument = Document.Merge(
  14. CreateDocument("Document 1"),
  15. CreateDocument("Document 2"),
  16. CreateDocument("Document 3"))
  17. .UseContinuousPageNumbers();
  18. RenderingTest
  19. .Create()
  20. .ProducePdf()
  21. .ShowResults()
  22. .Render(mergedDocument);
  23. }
  24. [Test]
  25. public void Merge_SeparatePageNumbers()
  26. {
  27. var mergedDocument = Document.Merge(
  28. CreateDocument("Document 1"),
  29. CreateDocument("Document 2"),
  30. CreateDocument("Document 3"))
  31. .UseOriginalPageNumbers();
  32. RenderingTest
  33. .Create()
  34. .ProducePdf()
  35. .ShowResults()
  36. .Render(mergedDocument);
  37. }
  38. private static Document CreateDocument(string content)
  39. {
  40. return Document.Create(document =>
  41. {
  42. document.Page(page =>
  43. {
  44. page.Content()
  45. .AlignMiddle()
  46. .AlignCenter()
  47. .Column(column =>
  48. {
  49. column.Item().Text(content).FontSize(40);
  50. column.Item().PageBreak();
  51. column.Item().Text(content).FontSize(40);
  52. column.Item().AlignCenter().SectionLink("next").Text("Next page").FontSize(16).Underline().FontColor(Colors.Blue.Medium);
  53. column.Item().PageBreak();
  54. column.Item().Text(content).FontSize(40);
  55. column.Item().AlignCenter().Section("next").Text("Next page").FontSize(16).FontColor(Colors.Green.Medium);
  56. });
  57. page.Footer()
  58. .AlignCenter()
  59. .PaddingVertical(20)
  60. .Text(text =>
  61. {
  62. text.CurrentPageNumber();
  63. text.Span(" / ");
  64. text.TotalPages();
  65. });
  66. });
  67. });
  68. }
  69. }
  70. }