Невозможно скрыть границу ячейки iText PDF при помещении подтаблицы в одну родительскую ячейку PDFPCell

Я использую itextpdf.text.pdf.PdfPTable для создания таблиц в формате PDF. Но я не могу избавиться от границы одного pdfPcell. Я искал почти везде, но не нашел решения. Я не могу реализовать границу, пока использую только код ниже:

    PdfPTable table_body = new PdfPTable(9);

    PdfPCell body_cell = new PdfPCell();
    body_cell.setBorder(Rectangle.NO_BORDER);


    PdfPCell body_cell = new PdfPCell();

    body_cell.setPhrase(new Phrase("Okey woth no border implementation"));
    table_body.addCell(body_cell);

Но проблема возникает, когда я пытаюсь поместить две строки в один PdfPcell. Что я делаю для этого, так это создаю другую таблицу и помещаю ее в родительскую таблицу PDFPcell. Но проблема в том, что каждый раз появляется одна граница над областью родительской таблицы pdfPcell, хотя я определил PDFPcell без какой-либо границы.

           body_cell.setPhrase(new Phrase("NOT Okey woth no border implementation"));

           PdfPTable sub_table = new PdfPTable(1);

           sub_table.addCell(body_cell);
           sub_table.addCell(body_cell);
           table_body.addCell(sub_table);

Добавлен комментарий и фрагмент кода ниже для дальнейшего использования.

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

PdfPTable sub_table = new PdfPTable(1);
sub_table.getDefaultCell().setBorder(Rectangle.NO_BORDER);

body_cell = new PdfPCell(image, true);
body_cell.setBorder(Rectangle.NO_BORDER);
sub_table.addCell(body_cell);
sub_table.addCell(body_cell_bottomBorder);
table_body.addCell(sub_table);

person Ani    schedule 25.11.2014    source источник
comment
возможный дубликат невидимой границы pdfptable   -  person Adrian B.    schedule 25.11.2014


Ответы (1)


Когда вы вызываете table_body.AddCell(sub_table), вы явно не создаете новую ячейку, а вместо этого оставляете значения по умолчанию для системы, которая должна иметь границу. Вам нужно установить для границы ячейки по умолчанию значение none, если вы хотите, чтобы это работало.

table_body.getDefaultCell().setBorder(Rectangle.NO_BORDER);
person Chris Haas    schedule 25.11.2014
comment
Извините.. Но это не работает. Я пробовал это раньше. не знаю, если я что-то упускаю. Я установил границу по умолчанию без границы, а также на уровне PDFCell я установил границу без границ. Все еще получаю четырехстороннюю границу вокруг вспомогательного стола. Вот фрагмент кода: PdfPTable sub_table = new PdfPTable(1); sub_table.getDefaultCell().setBorder(Rectangle.NO_BORDER); body_cell = новый PdfPCell (изображение, правда); body_cell.setBorder(Rectangle.NO_BORDER); sub_table.addCell (body_cell); sub_table.addCell (body_cell_bottomBorder); table_body.addCell (sub_table); - person Ani; 25.11.2014
comment
Вам нужно установить NO_BORDER во внешней таблице, в данном случае table_body - person Chris Haas; 25.11.2014
comment
Большое спасибо, Крис. это решило мою проблему. Но я бы попросил вас рассмотреть еще одну проблему, хотя это тоже может быть глупой ошибкой, которую я снова совершаю. Я обновил вопрос с новой проблемой. Еще раз спасибо. - person Ani; 26.11.2014
comment
Привет @Ani, это действительно лучше подходит в качестве второго вопроса. Можете ли вы отменить свое редактирование и опубликовать другой вопрос? - person Chris Haas; 26.11.2014
comment
Привет Крис. Спасибо за помощь. Я поместил новый вопрос в другую тему. Прошу вас взглянуть. еще раз спасибо. stackoverflow.com/questions/27155155/ - person Ani; 27.11.2014