2014-01-03 5 views
2

Я использую 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); 
     } 

Изображение

enter image description here

+0

Для каждого ярлыка и текстового поля необходимо добавить два текстовых поля и добавить их отдельно в строку .. это будет работать –

+0

@KumodSingh Я попытался добавить каждый в отдельные текстовые рамки, но выход еще дальше. –

+0

Спасибо @ Kumod Singh. Решение опубликовано здесь http://forum.pdfsharp.net/viewtopic.php?f=2&t=2696 –

ответ

1

Пример таблицы программы в 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"); 
+0

Привет, спасибо за ваш ответ, но я думаю, что это не тот результат, который я ищу. Как вы заметили в моем кодере, в один и тот же индекс ячейки добавлены два абзаца, одна метка и одно текстовое поле. У меня проблема с текстовым полем, так как она идет ниже метки. –

+0

Исправлено, не добавляйте два элемента в одну ячейку, поэтому U получил эту проблему. поэтому постарайтесь поместить эти элементы управления в другую ячейку в одну строку. – vino20

+0

Спасибо. Работает отлично. –

4

MigraDoc не может отображать два абзаца рядом. Не в одной ячейке таблицы, а не в одном TextFrame.

Вы можете создать таблицу с двумя столбцами внутри вашего TextFrame, чтобы обойти это ограничение.

Или сделайте это без TextFrame и создайте две ячейки в основной таблице (вы можете использовать MergeRight для других строк, чтобы объединить эти две ячейки в другие строки).

Смежные вопросы