AlignmentExtensions.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using QuestPDF.Elements;
  2. using QuestPDF.Infrastructure;
  3. namespace QuestPDF.Fluent
  4. {
  5. public static class AlignmentExtensions
  6. {
  7. #region Horizontal
  8. private static IContainer AlignHorizontal(this IContainer element, HorizontalAlignment horizontalAlignment)
  9. {
  10. var alignment = element as Alignment ?? new Alignment();
  11. alignment.Horizontal = horizontalAlignment;
  12. return element.Element(alignment);
  13. }
  14. /// <summary>
  15. /// Aligns content horizontally to the left side.
  16. /// <a href="https://www.questpdf.com/api-reference/alignment.html">Learn more</a>
  17. /// </summary>
  18. public static IContainer AlignLeft(this IContainer element)
  19. {
  20. return element.AlignHorizontal(HorizontalAlignment.Left);
  21. }
  22. /// <summary>
  23. /// Aligns content horizontally to the center, ensuring equal space on both left and right sides.
  24. /// <a href="https://www.questpdf.com/api-reference/alignment.html">Learn more</a>
  25. /// </summary>
  26. public static IContainer AlignCenter(this IContainer element)
  27. {
  28. return element.AlignHorizontal(HorizontalAlignment.Center);
  29. }
  30. /// <summary>
  31. /// Aligns its content horizontally to the right side.
  32. /// <a href="https://www.questpdf.com/api-reference/alignment.html">Learn more</a>
  33. /// </summary>
  34. public static IContainer AlignRight(this IContainer element)
  35. {
  36. return element.AlignHorizontal(HorizontalAlignment.Right);
  37. }
  38. #endregion
  39. #region Vertical
  40. private static IContainer AlignVertical(this IContainer element, VerticalAlignment verticalAlignment)
  41. {
  42. var alignment = element as Alignment ?? new Alignment();
  43. alignment.Vertical = verticalAlignment;
  44. return element.Element(alignment);
  45. }
  46. /// <summary>
  47. /// Aligns content vertically to the upper side.
  48. /// <a href="https://www.questpdf.com/api-reference/alignment.html">Learn more</a>
  49. /// </summary>
  50. public static IContainer AlignTop(this IContainer element)
  51. {
  52. return element.AlignVertical(VerticalAlignment.Top);
  53. }
  54. /// <summary>
  55. /// Aligns content vertically to the center, ensuring equal space above and below.
  56. /// <a href="https://www.questpdf.com/api-reference/alignment.html">Learn more</a>
  57. /// </summary>
  58. public static IContainer AlignMiddle(this IContainer element)
  59. {
  60. return element.AlignVertical(VerticalAlignment.Middle);
  61. }
  62. /// <summary>
  63. /// Aligns content vertically to the bottom side.
  64. /// <a href="https://www.questpdf.com/api-reference/alignment.html">Learn more</a>
  65. /// </summary>
  66. public static IContainer AlignBottom(this IContainer element)
  67. {
  68. return element.AlignVertical(VerticalAlignment.Bottom);
  69. }
  70. #endregion
  71. }
  72. }