使用 MigraDoc 将文本与图像对齐
Issue Aligning Text with the Image Using MigraDoc
我有 header 这种格式 --
"标题" "Image" "Title"
下面是我用来实现此目的的代码片段 -
Paragraph header = section.Headers.Primary.AddParagraph("Heading");
header.Format.Font.Bold = true;
header.AddTab();
Image image = header.AddImage("../../Images/logo.png");
image.Height = Unit.FromMillimeter(6);
header.AddFormattedText("Title", TextFormat.NotBold);
我需要对齐 "Image" 和 "Title",使标题相对于图像高度垂直居中对齐,我该如何实现?
非常感谢任何 pointers/code 片段。
您可以使用 table 将所有信息放入特定结构中:
// create document
Document MigraDokument = new Document();
// create section.
Section section = MigraDokument.AddSection();
section.PageSetup.PageFormat = PageFormat.A4;
// create a table
Table t = section.AddTable();
// size to use for the image and the image cell in the table
int size = 6;
// create 3 columns
Column column_header = t.AddColumn("6cm");
column_header.Format.Alignment = ParagraphAlignment.Center;
Column column_image = t.AddColumn(Unit.FromMillimeter(size));
column_image.Format.Alignment = ParagraphAlignment.Center;
Column column_text = t.AddColumn("4cm");
column_text.Format.Alignment = ParagraphAlignment.Center;
// Add 1 row to fill it with the content
Row r = t.AddRow();
// add you Header
Paragraph header = r.Cells[0].AddParagraph("Heading");
header.Format.Font.Bold = true;
header.AddTab();
// add the image
Image image = r.Cells[1].AddImage("../../logo.png");
image.Height = Unit.FromMillimeter(size);
// Add your Title
r.Cells[2].AddParagraph("Title");
// allign all of them
r.Cells[0].VerticalAlignment = VerticalAlignment.Center;
r.Cells[1].VerticalAlignment = VerticalAlignment.Center;
r.Cells[2].VerticalAlignment = VerticalAlignment.Center;
在我的文档中,结果如下所示:
感谢@MongZhu 推荐table方式,贴出我现在使用的代码片段,仅供日后参考。
Table table = section.Headers.Primary.AddTable();
table.AddColumn("11cm");
table.AddColumn("2cm");
table.AddColumn("8cm");
Row row = table.AddRow();
row.VerticalAlignment = VerticalAlignment.Center;
Paragraph header = row.Cells[0].AddParagraph("Heading");
header.Format.Font.Bold = true;
Image image = row.Cells[1].AddImage("../../Images/logo.png");
image.Height = Unit.FromMillimeter(6);
row.Cells[2].AddParagraph("Title");
我有 header 这种格式 --
"标题" "Image" "Title"
下面是我用来实现此目的的代码片段 -
Paragraph header = section.Headers.Primary.AddParagraph("Heading");
header.Format.Font.Bold = true;
header.AddTab();
Image image = header.AddImage("../../Images/logo.png");
image.Height = Unit.FromMillimeter(6);
header.AddFormattedText("Title", TextFormat.NotBold);
我需要对齐 "Image" 和 "Title",使标题相对于图像高度垂直居中对齐,我该如何实现?
非常感谢任何 pointers/code 片段。
您可以使用 table 将所有信息放入特定结构中:
// create document
Document MigraDokument = new Document();
// create section.
Section section = MigraDokument.AddSection();
section.PageSetup.PageFormat = PageFormat.A4;
// create a table
Table t = section.AddTable();
// size to use for the image and the image cell in the table
int size = 6;
// create 3 columns
Column column_header = t.AddColumn("6cm");
column_header.Format.Alignment = ParagraphAlignment.Center;
Column column_image = t.AddColumn(Unit.FromMillimeter(size));
column_image.Format.Alignment = ParagraphAlignment.Center;
Column column_text = t.AddColumn("4cm");
column_text.Format.Alignment = ParagraphAlignment.Center;
// Add 1 row to fill it with the content
Row r = t.AddRow();
// add you Header
Paragraph header = r.Cells[0].AddParagraph("Heading");
header.Format.Font.Bold = true;
header.AddTab();
// add the image
Image image = r.Cells[1].AddImage("../../logo.png");
image.Height = Unit.FromMillimeter(size);
// Add your Title
r.Cells[2].AddParagraph("Title");
// allign all of them
r.Cells[0].VerticalAlignment = VerticalAlignment.Center;
r.Cells[1].VerticalAlignment = VerticalAlignment.Center;
r.Cells[2].VerticalAlignment = VerticalAlignment.Center;
在我的文档中,结果如下所示:
感谢@MongZhu 推荐table方式,贴出我现在使用的代码片段,仅供日后参考。
Table table = section.Headers.Primary.AddTable();
table.AddColumn("11cm");
table.AddColumn("2cm");
table.AddColumn("8cm");
Row row = table.AddRow();
row.VerticalAlignment = VerticalAlignment.Center;
Paragraph header = row.Cells[0].AddParagraph("Heading");
header.Format.Font.Bold = true;
Image image = row.Cells[1].AddImage("../../Images/logo.png");
image.Height = Unit.FromMillimeter(6);
row.Cells[2].AddParagraph("Title");