QuestPDF 内联
// 这个方法用于生成下面示例中随机大小和颜色的块
void RandomBlock(IContainer container)
{
container
.Width(Placeholders.Random.Next(1, 5) * 20)
.Height(Placeholders.Random.Next(1, 5) * 20)
.Border(1)
.BorderColor(Colors.Grey.Darken2)
.Background(Placeholders.BackgroundColor());
}
// 示例用法:
.Padding(20)
.Border(1)
.Background(Colors.Grey.Lighten3)
// 使用内联布局
.Inlined(inlined =>
{
inlined.Spacing(20); // 设置内联元素间距为20像素
inlined.AlignLeft(); // 左对齐
inlined.BaselineBottom(); // 底线对齐在底部
foreach (var _ in Enumerable.Range(0, 20))
inlined.Item().Element(RandomBlock); // 在每个循环中添加一个随机块
});
可用的间距设置:
.VerticalSpacing(30) // 垂直间距为30像素
.HorizontalSpacing(40) // 水平间距为40像素
// 同时设置垂直和水平间距
.Spacing(20)
可用的水平对齐方式:
.AlignLeft() // 左对齐
.AlignRight() // 右对齐
.AlignCenter() // 居中对齐
.AlignJustify() // 对齐文本
.AlignSpaceAround() // 等间距分布
可用的基线对齐方式:
.BaselineBottom() // 基线对齐在底部
.BaselineMiddle() // 基线居中
.BaselineTop() // 基线对齐在顶部
更多示例:
.Inlined(inlined =>
{
inlined.Spacing(20);
inlined.AlignJustify();
inlined.BaselineMiddle();
foreach (var _ in Enumerable.Range(0, 20))
inlined.Item().Element(RandomBlock);
});
.Inlined(inlined =>
{
inlined.VerticalSpacing(50);
inlined.HorizontalSpacing(20);
inlined.AlignSpaceAround();
inlined.BaselineTop();
foreach (var _ in Enumerable.Range(0, 20))
inlined.Item().Element(RandomBlock);
});