Добавить столбец в PdfPTable, iTextSharp - PullRequest
3 голосов
/ 26 февраля 2010

Я создаю PDF-документ, используя iTextSharp. Я вижу, как создать новую таблицу с несколькими столбцами, но все равно не вижу, как динамически добавить новый столбец. У меня проблема в том, что я не собираюсь сразу знать количество нужных мне столбцов, поэтому нужно продолжать добавлять их

Может кто-нибудь просветить меня, или мне придется пересоздавать таблицу каждый раз, когда мне нужно добавить столбец?

Спасибо Mat

Ответы [ 3 ]

2 голосов
/ 04 января 2011

Не имеет ли тогда смысла создавать промежуточную модель, которая содержит таблицу, которую вы хотите, и которая способна затем создать таблицу PDF для вас?

Я знаю, это звучит как большая работа, но в долгосрочной перспективе это должно помочь в том, что вы сможете динамически изменять строки и столбцы по мере их построения, а затем в конце просто "скомпилировать" стол и выплюнуть объект PdfPTable?

0 голосов
/ 28 декабря 2010

Таблицы PdfPTable являются неизменными, насколько количество столбцов идет после создания.

Единственный обходной путь, о котором я могу подумать, - это начать с целого набора столбцов и ... нет, это тоже не сработает. Вы даже не можете добавить ячейки в существующую строку. Я подумал, что вы можете поиграть с охватом столбцов, чтобы замаскировать дополнительные столбцы и настроить их, добавив больше ячеек в строки, но это тоже не сработает.

Вы должны перестроить таблицу при добавлении столбцов. Обойти это невозможно.

Я настоятельно рекомендую вам выяснить, как определить количество столбцов, прежде чем создавать таблицу в первую очередь ... даже если вам необходимо выполнить пробный прогон данных. Используйте некоторый промежуточный формат (String [] [] или любой другой), чтобы сохранить ваши данные, а затем построить таблицу из этого, а не из данных, которые приходят к вам. Или хотя бы отследите, сколько столбцов вам понадобится.

Учитывая огромное количество данных, один проход не может быть практичным / невозможным. Но восстановление всей таблицы несколько раз не может быть намного лучше. Это действительно вопрос настройки производительности, на который у вас есть только информация.

0 голосов
/ 01 марта 2010

Таблицы ITextSharp работают не так, как таблицы HTML (к которым, я думаю, вы привыкли).

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

Допустим, вы создали pdfptable с 5 столбцами. 5-я ячейка, которую вы добавите, будет в первой строке, а 6-я ячейка будет в 1-м столбце вашей 2-й строки.

Единственный недостаток - если вам нужно добавить строки, в которых не все ячейки заполнены, но я обычно обхожу это, просто добавляя пустую ячейку или ячейку с пробелом в ней.

...