У меня есть копия/вставить фрагмент кода в примере, который я назвал SimpleColumn:
public void createPdf(String dest) throws IOException, DocumentException {
// step 1
Rectangle rect = new Rectangle(100, 120);
Document document = new Document(rect);
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
// step 3
document.open();
// step 4
PdfContentByte canvas = writer.getDirectContent();
BaseFont baseFont = BaseFont.createFont();
ColumnText ct = new ColumnText(canvas);
Font paragraphFont=new Font(baseFont,4.5f);
ct.setSimpleColumn(9, 70, 70, 95);
Paragraph paragraph = new Paragraph("REALLLLLLLLLLY LONGGGGGGGGGG text",paragraphFont);
ct.addElement(paragraph);
ct.go();
// step 5
document.close();
}
Это приводит к файлу simple_column.pdf:
Как вы можете видеть , текст отображается правильно внутри прямоугольника, нижний левый угол которого имеет координаты x = 9; y = 70
, а верхний правый угол имеет координаты x = 70, y = 95
. Текст не соответствовал ширине этого прямоугольника, поэтому он был обернут (разбит на символ пробела и распределен по двум строкам).
Вот как долго обрабатываются абзацы, когда вы хотите отображать их в фиксированном прямоугольнике. Если абзац не соответствует прямоугольнику, оставшаяся часть абзаца сохраняется в объекте ColumnText
. Вы можете определить новый простой столбец (используя разные координаты), чтобы отобразить остальную часть абзаца.
Добро пожаловать на StackOverflow! Не могли бы вы добавить к вашему вопросу более подробную информацию о проблеме и о том, как вы хотите работать (обертывание, обрезка и т. Д.). Может быть, вы можете добавить образ того, как вы хотите, чтобы такой текст появился? – trincot
Текст будет обернут в соответствии с заданным вами прямоугольником. Текст, который не подходит, не будет отображаться. Он хранится в столбце, чтобы вы могли добавить его в другое место. Вы читали [iText FAQ] (http://developers.itextpdf.com/faq/category/absolute-positioning-text)? –