【问题标题】:Align Two Paragraphs in One Line将两个段落对齐在一行
【发布时间】:2014-01-03 03:43:16
【问题描述】:

我正在使用 MigraDoc 创建 PDF 文件。我在文本框中添加了两个段落。一个段落是标签,而另一个是文本框。将段落添加到文本框后,我将文本框添加到表格行单元格中。目前,文本框位置位于标签下方。我希望它就在标签旁边,或者它们就在一行中。有谁知道这个的解决方案?请帮忙。这是我的代码和图片

代码:

 static void AddTextBlockAndTextBoxToRow(Row row, int cellIndex, Paragraph label, Paragraph textbox)
        {
            var textFrame = new TextFrame();
            label.Format.Alignment = ParagraphAlignment.Left;
            textbox.Format.Alignment = ParagraphAlignment.Left;
            textFrame.Add(label);
            textFrame.Add(textbox);
            row.Cells[cellIndex].Add(textFrame);
        }

图片

【问题讨论】:

  • 您应该为每个标签和文本框取两个 TextFrame 并单独添加到行中。这将起作用
  • @KumodSingh 我尝试将每个添加到单独的文本框,但输出更远。
  • 感谢@Kumod Singh。解决方案已发布在这里forum.pdfsharp.net/viewtopic.php?f=2&t=2696
  • 太棒了!评论,该链接指向一个论坛,该链接返回到 same SO 问题作为答案!这将导致 堆栈溢出

标签: c# pdfsharp migradoc


【解决方案1】:

MigraDoc 不能并排显示两个段落。不在一个表格单元格中,不在一个 TextFrame 中。

您可以在 TextFrame 内创建一个包含两列的表格来解决此限制。

或者不使用 TextFrame 并在主表中创建两个单元格(您可以对其他行使用 MergeRight 以合并其他行中的这两个单元格)。

【讨论】:

    【解决方案2】:

    pdfsharp中的示例表程序......

    Table table = document.LastSection.AddTable();
    table.Borders.Visible = true;
    table.Format.Shading.Color = Colors.LavenderBlush;
    table.Shading.Color = Colors.Salmon;
    table.TopPadding = 5;
    table.BottomPadding = 5;
    
    Column column = table.AddColumn();
    column.Format.Alignment = ParagraphAlignment.Left;
    
    column = table.AddColumn();
    column.Format.Alignment = ParagraphAlignment.Center;
    
    column = table.AddColumn();
    column.Format.Alignment = ParagraphAlignment.Right;
    
    table.Rows.Height = 35;
    
    Row row = table.AddRow();
    row.VerticalAlignment = VerticalAlignment.Top;
    row.Cells[0].AddParagraph("Text");
    row.Cells[1].AddParagraph("Text");
    row.Cells[2].AddParagraph("Text");
    
    row = table.AddRow();
    row.VerticalAlignment = VerticalAlignment.Center;
    row.Cells[0].AddParagraph("Text");
    row.Cells[1].AddParagraph("Text");
    row.Cells[2].AddParagraph("Text");
    
    row = table.AddRow();
    row.VerticalAlignment = VerticalAlignment.Bottom;
    row.Cells[0].AddParagraph("Text");
    row.Cells[1].AddParagraph("Text");
    row.Cells[2].AddParagraph("Text");
    

    【讨论】:

    • 您好,感谢您的回答,但我认为这不是我正在寻找的输出。正如您在我的代码中注意到的那样,两个段落,一个标签和一个文本框,被添加到同一个单元格索引中。我对文本框有疑问,因为它位于标签下方。
    • Frined,不要在同一个单元格中添加两个元素,这就是你遇到这个问题的原因。所以尽量把这些控件放在同一行的不同单元格中。
    猜你喜欢
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    相关资源
    最近更新 更多