/** * Gets the width that the line will occupy after writing. Only the width of * the first line is returned. * * @param phrase the <CODE>Phrase</CODE> containing the line * @param runDirection the run direction * @param arabicOptions the options for the arabic shaping * @return the width of the line */ public static float getWidth(final Phrase phrase, final int runDirection, final int arabicOptions) { ColumnText ct = new ColumnText(null); ct.addText(phrase); ct.addWaitingPhrase(); PdfLine line = ct.bidiLine.processLine(0, 20000, Element.ALIGN_LEFT, runDirection, arabicOptions, 0, 0, 0); if (line == null) { return 0; } else { return 20000 - line.widthLeft(); } }
/** * Adds a <CODE>Phrase</CODE> to the current text array. Will not have any * effect if addElement() was called before. * * @param phrase the text */ public void addText(final Phrase phrase) { if (phrase == null || composite) { return; } addWaitingPhrase(); if (bidiLine == null) { waitPhrase = phrase; return; } for (Object element : phrase.getChunks()) { bidiLine.addChunk(new PdfChunk((Chunk) element, null, phrase.getTabSettings())); } }
/** * Adds a <CODE>Phrase</CODE> to the current text array. Will not have any * effect if addElement() was called before. * * @param phrase the text */ public void addText(final Phrase phrase) { if (phrase == null || composite) { return; } addWaitingPhrase(); if (bidiLine == null) { waitPhrase = phrase; return; } for (Object element : phrase.getChunks()) { bidiLine.addChunk(new PdfChunk((Chunk) element, null, phrase.getTabSettings())); } }
/** * Gets the width that the line will occupy after writing. Only the width of * the first line is returned. * * @param phrase the <CODE>Phrase</CODE> containing the line * @param runDirection the run direction * @param arabicOptions the options for the arabic shaping * @return the width of the line */ public static float getWidth(final Phrase phrase, final int runDirection, final int arabicOptions) { ColumnText ct = new ColumnText(null); ct.addText(phrase); ct.addWaitingPhrase(); PdfLine line = ct.bidiLine.processLine(0, 20000, Element.ALIGN_LEFT, runDirection, arabicOptions, 0, 0, 0); if (line == null) { return 0; } else { return 20000 - line.widthLeft(); } }
addWaitingPhrase(); if (bidiLine == null) { return NO_MORE_TEXT;
addWaitingPhrase(); if (bidiLine == null) { return NO_MORE_TEXT;