Как заставить PdfpTable Width работать? - PullRequest
0 голосов
/ 28 октября 2011

Итак, я пытался выяснить, как заставить ширину таблицы работать безуспешно для конкретного случая.

У меня есть таблица с 2 столбцами. Во втором столбце я добавляю одну ячейку, которая включает в себя таблицу с одним столбцом. В этой ячейке я добавляю таблицу с одним столбцом, а затем добавляю ячейку с текстом, а затем еще одну таблицу PDF с двумя столбцами.

Теперь этот последний PdfPTable я не могу манипулировать. SetTotalWidth и WidthPercentage ничего не делают, ничего не меняется вообще. Я просто хочу сделать этот стол менее широким.

Я что-то не так делаю или у itextcharp есть ошибки?

1 Ответ

0 голосов
/ 28 октября 2011

4 вложенных таблицы?Это тот, который действительно, действительно нуждается в некотором примере кода, чтобы мы все могли попасть на одну и ту же страницу.Ниже приведено что-то, что, как мы надеемся, абстрагируется от того, что вы делаете с базовыми предметами.Это выглядит правильно?Это не ответ, а отправная точка, поэтому у нас есть с чем поработать.

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

        string sampleFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Sample.pdf");
        using (FileStream fs = new FileStream(sampleFile, FileMode.Create, FileAccess.Write, FileShare.None))
        {
            using (Document doc = new Document(PageSize.LETTER))
            {
                using (PdfWriter w = PdfWriter.GetInstance(doc, fs))
                {
                    doc.Open();

                    PdfPTable t1 = new PdfPTable(2);
                    PdfPTable t2 = new PdfPTable(1);
                    PdfPTable t3 = new PdfPTable(1);
                    PdfPTable t4 = new PdfPTable(2);

                    t1.SetTotalWidth(new float[] { 10f, 40f });
                    t4.SetTotalWidth(new float[] { 40f, 10f });

                    t4.AddCell("t4a");
                    t4.AddCell("t4b");
                    t3.AddCell(t4);
                    t2.AddCell(t3);
                    t1.AddCell("t1a");
                    t1.AddCell(t2);

                    doc.Add(t1);

                    doc.Close();
                }
            }
        }
...