2015-10-12 6 views
0

У меня есть следующие элементы:Split участок по горизонтали между MigraDoc диаграммы и таблицы

1. MigraDoc.DocumentObjectModel.Shapes.Charts.Chart 
2. MigraDoc.DocumentObjectModel.Tables.Table 

Я хочу показать таблицу данных (2) на правой стороне графика (1). Что-то вроде легенды, но с дополнительной информацией. Эта пользовательская таблица даст больше информации, чем стандартная легенда.

По какой-то причине, я могу добавить их друг над другом с помощью:

PdfDoc.LastSection.Add(Chart); 
PdfDoc.LastSection.Add(Table); 

Но это вертикальное сложение. Могу ли я разместить их по горизонтали?

ответ

0

Существует несколько способов позиционирования предметов по горизонтали.

Диаграмма получена из формы и может быть помещена в любое положение (абсолютное или относительное). Таблица может быть помещена внутри TextFrame, которая также получена из Shape. Однако размещение формы немного сложнее.

Скорее всего, я бы использовал таблицу и поместил диаграмму внутри одной ячейки таблицы. Используя MergeDown и, возможно, MergeRight, вы можете создать практически все.

Пример: Вашей легенде нужны две колонки и шесть строк. Создайте таблицу с тремя столбцами и шестью (или семью) строками, установите MergeDown = 5 (или 6) для первой ячейки в первом столбце. Вы можете устанавливать границы только для ячеек в столбцах 2 и 3 и первых шести строк. Вы должны использовать 7 строк, если легенда может быть короче диаграммы. Если вы знаете, что легенда длиннее графика, достаточно 6 строк.

Примечание: MergeDown = 5 создаст одну ячейку, которая охватывает 6 строк.

образец

Счет-фактура показывает MergeDown и MergeRight на работе:
http://www.pdfsharp.net/wiki/Invoice-sample.ashx

+0

Спасибо за идею. Однако, мой случай немного более сложный. Извините, что не упоминал об этом раньше. Таблица, которая будет действовать как легенда, распространяется до 2 или 3 страниц. Я также попытался использовать некоторые из них: pdfChart.RightArea.Add (pdfTable); Но, с этим loc, стол обрезается после страницы 1. – njdotnetdev

+0

Это делает вещи немного более сложными, но подход с дополнительным столбцом и MergeDown все еще можно использовать. Вам просто нужно убедиться, что регион, используемый с MergeDown, достаточно мал, чтобы соответствовать первой странице. –

+0

Таблица, которая охватывает несколько страниц, не может быть помещена в TextFrame. Вы можете установить левый отступ для таблицы, чтобы оставить поле слева для диаграммы, а затем использовать опцию абсолютного размещения фигур для размещения диаграммы на первой странице рядом с таблицей. При этом вы должны убедиться, что для первой диаграммы достаточно места для диаграммы. Нет проблем, если вы можете добавить разрыв страницы перед таблицей. Для диаграммы вы должны установить 'WrapFormat.Style = WrapStyle.Through;'. См. Также: http://forum.pdfsharp.net/viewtopic.php?p=6922#p6922 –

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

  • Нет связанных вопросов^_^