Обертка iTextSharp 7 и без обертки

Можно ли управлять переносом текста? У меня есть длинная строка, длиннее ячейки, в абзаце. Если он в форме "ABCDEFGHIJKLMN", будет отображаться в строке (строке) текста. Но если он в форме «ABC DEFGH IJKLM», он будет заключен в две строки. Как можно было заставить оставаться на одной линии?


person mike    schedule 29.07.2016    source источник
comment
Вы пробовали использовать неразрывный пробел?   -  person mkl    schedule 30.07.2016
comment
Я знаю неразрывный пробел в HTML(). Как это для iText?   -  person mike    schedule 30.07.2016
comment
Если вы ссылаетесь на «\ u00a0», это не работает.   -  person mike    schedule 30.07.2016
comment
Я предполагаю, что вы должны предоставить некоторый код, чтобы проиллюстрировать вашу проблему. По моему опыту, строка не переносится, если ячейка достаточно большая. А если он недостаточно велик, чего вы на самом деле ожидаете? Должна ли строка продолжаться в следующую ячейку? Или его обрезать?   -  person mkl    schedule 01.08.2016
comment
Ну, во-первых, я ожидал, что у меня не будет упаковки. Затем можно вырезать и расширить по горизонтали до следующей или предыдущей ячейки, в зависимости от выравнивания.   -  person mike    schedule 15.08.2016
comment
Я ожидал, что не будет обтекания. Это интересное ожидание... в конце концов, абзац обычно представляет собой многострочный объект, поэтому обтекание является довольно естественной функцией... опция для расширения по горизонтали до следующей или предыдущей ячейки, в зависимости от выравнивания - как насчет линии границы ячейки, которую вы рисуете?   -  person mkl    schedule 15.08.2016
comment
Извините, для уточнения я хотел бы расширить ячейку. В любом случае, идея отсутствия переноса исходит из многих страниц в Интернете, в которых говорится, что он не будет переноситься, если не используются пробелы для переноса. Я не знаю, было ли это так, это больше не делает ...   -  person mike    schedule 15.08.2016
comment
Пожалуйста, уточните, что означает Have you tried using a non-breaking space? в случае с iText.   -  person mike    schedule 15.08.2016
comment
Я действительно имел в виду '\ u00a0'. Но я также неправильно понял ваш вопрос. Как вы сказали, он работал со строками без пробела, он должен был работать и с этим символом. Однако, как оказалось, в первом случае это даже не сработало...   -  person mkl    schedule 15.08.2016


Ответы (1)


В комментарии ОП пояснил

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

iText 7 Table со своим классом рендеринга по умолчанию TableRenderer поддерживает только фиксированную ширину столбца, которая может быть задана

  • фиксированная ширина таблицы и одно целое число, количество столбцов,
  • фиксированная ширина таблицы и массив относительных ширин столбцов, или
  • массив абсолютных значений ширины столбцов.

Таким образом, то, о чем говорят эти множество страниц в Интернете, кажется невозможным.


Тем не менее, архитектура iText 7 позволяет установить собственный следующий рендерер. Таким образом, можно было бы ввести определенное динамическое поведение, в частности некоторое автоматическое изменение размера ячейки, если вы реализуете визуализатор таблицы для этого.

Однако такой пользовательский рендерер, вероятно, столкнется с проблемами всякий раз, когда код использует ILargeElement интерфейс Table, потому что тогда первые ячейки должны быть макетированы до того, как все содержимое ячеек станет известно.

person mkl    schedule 15.08.2016