List of usage examples for com.lowagie.text.pdf TextField setFont
public void setFont(BaseFont font)
From source file:corner.orm.tapestry.jasper.exporter.CornerPdfExporter.java
License:Apache License
/** * ?.????.// w w w . j av a2 s . com * <p>:ColumnText?, * ?NO_MORE_COLUMN???,TextField??. * TextField?. * @see net.sf.jasperreports.engine.export.JRPdfExporter#exportText(net.sf.jasperreports.engine.JRPrintText) */ @Override protected void exportText(JRPrintText text) throws DocumentException { JRStyledText styledText = getStyledText(text, false); if (styledText == null) { return; } int textLength = styledText.length(); int x = text.getX() + getOffsetX(); int y = text.getY() + getOffsetY(); int width = text.getWidth(); int height = text.getHeight(); int topPadding = text.getTopPadding(); int leftPadding = text.getLeftPadding(); int bottomPadding = text.getBottomPadding(); int rightPadding = text.getRightPadding(); int xFillCorrection = 0; int yFillCorrection = 0; double angle = 0; switch (text.getRotation()) { case JRTextElement.ROTATION_LEFT: { y = text.getY() + getOffsetY() + text.getHeight(); xFillCorrection = 1; width = text.getHeight(); height = text.getWidth(); int tmpPadding = topPadding; topPadding = leftPadding; leftPadding = bottomPadding; bottomPadding = rightPadding; rightPadding = tmpPadding; angle = Math.PI / 2; break; } case JRTextElement.ROTATION_RIGHT: { x = text.getX() + getOffsetX() + text.getWidth(); yFillCorrection = -1; width = text.getHeight(); height = text.getWidth(); int tmpPadding = topPadding; topPadding = rightPadding; rightPadding = bottomPadding; bottomPadding = leftPadding; leftPadding = tmpPadding; angle = -Math.PI / 2; break; } case JRTextElement.ROTATION_UPSIDE_DOWN: { x = text.getX() + getOffsetX() + text.getWidth(); y = text.getY() + getOffsetY() + text.getHeight(); int tmpPadding = topPadding; topPadding = bottomPadding; bottomPadding = tmpPadding; tmpPadding = leftPadding; leftPadding = rightPadding; rightPadding = tmpPadding; angle = Math.PI; break; } case JRTextElement.ROTATION_NONE: default: { } } AffineTransform atrans = new AffineTransform(); atrans.rotate(angle, x, jasperPrint.getPageHeight() - y); pdfContentByte.transform(atrans); if (text.getMode() == JRElement.MODE_OPAQUE) { Color backcolor = text.getBackcolor(); pdfContentByte.setRGBColorStroke(backcolor.getRed(), backcolor.getGreen(), backcolor.getBlue()); pdfContentByte.setRGBColorFill(backcolor.getRed(), backcolor.getGreen(), backcolor.getBlue()); pdfContentByte.setLineWidth(1f); pdfContentByte.setLineDash(0f); pdfContentByte.rectangle(x + xFillCorrection, jasperPrint.getPageHeight() - y + yFillCorrection, width - 1, -height + 1); pdfContentByte.fillStroke(); } else { /* * pdfContentByte.setRGBColorStroke( text.getForecolor().getRed(), * text.getForecolor().getGreen(), text.getForecolor().getBlue() ); * pdfContentByte.setLineWidth(0.1f); * pdfContentByte.setLineDash(0f); pdfContentByte.rectangle( * text.getX() + offsetX, jasperPrint.getPageHeight() - text.getY() - * offsetY, text.getWidth(), - text.getHeight() ); * pdfContentByte.stroke(); */ } if (textLength > 0) { int horizontalAlignment = Element.ALIGN_LEFT; switch (text.getHorizontalAlignment()) { case JRAlignment.HORIZONTAL_ALIGN_LEFT: { if (text.getRunDirection() == JRPrintText.RUN_DIRECTION_LTR) { horizontalAlignment = Element.ALIGN_LEFT; } else { horizontalAlignment = Element.ALIGN_RIGHT; } break; } case JRAlignment.HORIZONTAL_ALIGN_CENTER: { horizontalAlignment = Element.ALIGN_CENTER; break; } case JRAlignment.HORIZONTAL_ALIGN_RIGHT: { if (text.getRunDirection() == JRPrintText.RUN_DIRECTION_LTR) { horizontalAlignment = Element.ALIGN_RIGHT; } else { horizontalAlignment = Element.ALIGN_LEFT; } break; } case JRAlignment.HORIZONTAL_ALIGN_JUSTIFIED: { horizontalAlignment = Element.ALIGN_JUSTIFIED; break; } default: { horizontalAlignment = Element.ALIGN_LEFT; } } float verticalOffset = 0f; switch (text.getVerticalAlignment()) { case JRAlignment.VERTICAL_ALIGN_TOP: { verticalOffset = 0f; break; } case JRAlignment.VERTICAL_ALIGN_MIDDLE: { verticalOffset = (height - topPadding - bottomPadding - text.getTextHeight()) / 2f; break; } case JRAlignment.VERTICAL_ALIGN_BOTTOM: { verticalOffset = height - topPadding - bottomPadding - text.getTextHeight(); break; } default: { verticalOffset = 0f; } } float llx = x + leftPadding; float lly = jasperPrint.getPageHeight() - y - topPadding - verticalOffset - text.getLeadingOffset(); float urx = x + width - rightPadding; float ury = jasperPrint.getPageHeight() - y - height + bottomPadding; //?,??? if (this.jasperMoveXY != null) { llx = x + leftPadding + jasperMoveXY.getX(); lly = jasperPrint.getPageHeight() - y - topPadding - verticalOffset - text.getLeadingOffset() - jasperMoveXY.getY(); urx = x + width - rightPadding + jasperMoveXY.getX(); ury = jasperPrint.getPageHeight() - y - height + bottomPadding - jasperMoveXY.getY(); } boolean isOver = false; int status = ColumnText.START_COLUMN; Phrase phrase = getPhrase(styledText, text); ColumnText colText = new ColumnText(pdfContentByte); colText.setSimpleColumn(phrase, llx, lly, urx, ury, 0, // text.getLineSpacingFactor(),// // * // text.getFont().getSize(), horizontalAlignment); colText.setLeading(0, text.getLineSpacingFactor());// * // text.getFont().getSize()); colText.setRunDirection( text.getRunDirection() == JRPrintText.RUN_DIRECTION_LTR ? PdfWriter.RUN_DIRECTION_LTR : PdfWriter.RUN_DIRECTION_RTL); float yLine = colText.getYLine(); // ColumnText while (colText.hasMoreText(status)) { status = colText.go(true); colText.setYLine(yLine); // ??,true if (status == ColumnText.NO_MORE_COLUMN) { isOver = true; break; } } // ,ColumnText if (!isOver) { colText.setText(phrase); status = ColumnText.START_COLUMN; while (colText.hasMoreText(status)) { status = colText.go(); colText.setYLine(yLine); } } else { // TextField,?? String key = text.getKey();// PdfTextid if (alreadyExistFields.contains(key)) { // ? key = createUniqueName(); } alreadyExistFields.add(key); TextField tf = new TextField(pdfContentByte.getPdfWriter(), new Rectangle(llx, lly, urx, ury), key); tf.setAlignment(horizontalAlignment); tf.setText(text.getText()); tf.setFont(PdfUtils.createSongLightBaseFont()); // styledText ??,? if (!text.isStyledText()) { tf.setOptions(TextField.MULTILINE); } try { pdfContentByte.getPdfWriter().addAnnotation(tf.getTextField()); } catch (IOException e) { e.printStackTrace(); } } } atrans = new AffineTransform(); atrans.rotate(-angle, x, jasperPrint.getPageHeight() - y); pdfContentByte.transform(atrans); /* */ exportBox(text, text); }
From source file:corner.orm.tapestry.pdf.components.PdfText.java
License:Apache License
/** * @see corner.orm.tapestry.pdf.components.AbstractPdfComponent#renderPdf(corner.orm.tapestry.pdf.PdfWriterDelegate, com.lowagie.text.Document) *///ww w. j ava 2s . c om @Override public void renderPdf(PdfWriterDelegate writer, Document doc) { Defense.notNull(getRectangle(), "TextField?"); String[] p = getRectangle().split(","); Rectangle r = new Rectangle(Float.valueOf(p[0]), Float.valueOf(p[1]), Float.valueOf(p[2]), Float.valueOf(p[3])); TextField tf = getFieldCreator().createTextField(writer.getPdfWriter(), r, this.getId()); tf.setOptions(TextField.READ_ONLY); if (isMultiline()) { tf.setOptions(TextField.MULTILINE); } if (isAlignCenter()) { tf.setAlignment(Element.ALIGN_CENTER); } if (getValue() != null) {// tf.setFont(PdfUtils.createSongLightBaseFont()); if (getFontSize() > 0) tf.setFontSize(getFontSize()); tf.setText(getValue()); } try { writer.getPdfWriter().addAnnotation(tf.getTextField()); } catch (IOException e) { throw new PdfSystemException(e); } catch (DocumentException e) { throw new PdfSystemException(e); } }