MigraDoc/PDFSharp TextFrame 居中对齐
MigraDoc/PDFSharp TextFrame Centre Align
我在 TextFrame 中使用段落来使文本方向向上显示这几乎符合我的要求,我遇到的最后一个问题是文本似乎左对齐,我已尝试将段落对齐方式设置为居中这没有任何影响,也看不到使用 TextFrame 执行此操作的选项。每次输出的文字都不一样
这是我目前拥有的
这就是我想要实现的目标
以下是我使用 MigraDoc 实现此目的的代码
for (int i = 0; i < section2Items.Length; i++)
{
TextFrame colXTextFrame = bothSection2ItemHeadersRow.Cells[i + 1].AddTextFrame();
colXTextFrame.Orientation = TextOrientation.Upward;
colXTextFrame.Height = new Unit(140);
Paragraph colXParagraph = new Paragraph();
colXParagraph.Format.Alignment = ParagraphAlignment.Center;
colXParagraph.AddText(section2Items[i].Section2ItemTitle);
colXTextFrame.Add(colXParagraph);
bothSection2ItemHeadersRow.Cells[i + 1].Borders.Bottom = new Border() { Color = new MigraDoc.DocumentObjectModel.Color(255, 255, 255), Width = new MigraDoc.DocumentObjectModel.Unit(0), Style = MigraDoc.DocumentObjectModel.BorderStyle.None };
}
这是一个应该有效的代码示例。
您可以使用 TextFrame
的 MarginLeft
属性 将其移动到列的中间。
// Create the table
Table Table = section.AddTable();
Table.Borders.Width = 0.5;
// create 3 columns
Column column1 = Table.AddColumn("4cm");
Column column2 = Table.AddColumn("4cm");
Column column3 = Tabl.AddColumn("4cm");
// make the row
Row row = Table.AddRow();
for (int i = 0; i < 3; i++)
{
TextFrame t = row.Cells[i].AddTextFrame();
t.Orientation = TextOrientation.Upward;
t.Height = new Unit(140);
// set the left margin to half of the column width
t.MarginLeft = this.Tabelle.Columns[i].Width/2;
Paragraph p = new Paragraph();
p.Format.Alignment = ParagraphAlignment.Center;
p.AddText("Test_" + i.ToString());
t.Add(p);
}
这会产生以下输出:
我在 TextFrame 中使用段落来使文本方向向上显示这几乎符合我的要求,我遇到的最后一个问题是文本似乎左对齐,我已尝试将段落对齐方式设置为居中这没有任何影响,也看不到使用 TextFrame 执行此操作的选项。每次输出的文字都不一样
这是我目前拥有的
这就是我想要实现的目标
以下是我使用 MigraDoc 实现此目的的代码
for (int i = 0; i < section2Items.Length; i++)
{
TextFrame colXTextFrame = bothSection2ItemHeadersRow.Cells[i + 1].AddTextFrame();
colXTextFrame.Orientation = TextOrientation.Upward;
colXTextFrame.Height = new Unit(140);
Paragraph colXParagraph = new Paragraph();
colXParagraph.Format.Alignment = ParagraphAlignment.Center;
colXParagraph.AddText(section2Items[i].Section2ItemTitle);
colXTextFrame.Add(colXParagraph);
bothSection2ItemHeadersRow.Cells[i + 1].Borders.Bottom = new Border() { Color = new MigraDoc.DocumentObjectModel.Color(255, 255, 255), Width = new MigraDoc.DocumentObjectModel.Unit(0), Style = MigraDoc.DocumentObjectModel.BorderStyle.None };
}
这是一个应该有效的代码示例。
您可以使用 TextFrame
的 MarginLeft
属性 将其移动到列的中间。
// Create the table
Table Table = section.AddTable();
Table.Borders.Width = 0.5;
// create 3 columns
Column column1 = Table.AddColumn("4cm");
Column column2 = Table.AddColumn("4cm");
Column column3 = Tabl.AddColumn("4cm");
// make the row
Row row = Table.AddRow();
for (int i = 0; i < 3; i++)
{
TextFrame t = row.Cells[i].AddTextFrame();
t.Orientation = TextOrientation.Upward;
t.Height = new Unit(140);
// set the left margin to half of the column width
t.MarginLeft = this.Tabelle.Columns[i].Width/2;
Paragraph p = new Paragraph();
p.Format.Alignment = ParagraphAlignment.Center;
p.AddText("Test_" + i.ToString());
t.Add(p);
}
这会产生以下输出: