Changeset 3433
- Timestamp:
- 03/23/10 16:20:40 (2 years ago)
- Location:
- print/trunk
- Files:
-
- 2 added
- 2 modified
-
samples/configVector.yaml (added)
-
samples/specVector.json (added)
-
src/main/java/org/mapfish/print/PDFUtils.java (modified) (2 diffs)
-
src/main/java/org/mapfish/print/map/renderers/vector/PointRenderer.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
print/trunk/src/main/java/org/mapfish/print/PDFUtils.java
r3397 r3433 21 21 22 22 import com.lowagie.text.*; 23 import com.lowagie.text.pdf.BaseFont; 23 24 import com.lowagie.text.pdf.PdfContentByte; 24 25 import com.lowagie.text.pdf.PdfPCell; … … 384 385 return image; 385 386 } 387 388 public static BaseFont getBaseFont(String fontFamily, String fontSize, 389 String fontWeight) { 390 int myFontValue; 391 float myFontSize; 392 int myFontWeight; 393 if (fontFamily.toUpperCase().contains("COURIER")) { 394 myFontValue = Font.COURIER; 395 } else if (fontFamily.toUpperCase().contains("HELVETICA")) { 396 myFontValue = Font.HELVETICA; 397 } else if (fontFamily.toUpperCase().contains("ROMAN")) { 398 myFontValue = Font.TIMES_ROMAN; 399 } else { 400 myFontValue = Font.HELVETICA; 401 } 402 myFontSize = (float) Double.parseDouble(fontSize.toLowerCase() 403 .replaceAll("px", "")); 404 if (fontWeight.toUpperCase().contains("NORMAL")) { 405 myFontWeight = Font.NORMAL; 406 } else if (fontWeight.toUpperCase().contains("BOLD")) { 407 myFontWeight = Font.BOLD; 408 } else if (fontWeight.toUpperCase().contains("ITALIC")) { 409 myFontWeight = Font.ITALIC; 410 } else { 411 myFontWeight = Font.NORMAL; 412 } 413 Font pdfFont = new Font(myFontValue, myFontSize, myFontWeight); 414 BaseFont bf = pdfFont.getCalculatedBaseFont(false); 415 return bf; 416 } 417 418 public static int getHorizontalAlignment(String labelAlign) { 419 /* Valid values for horizontal alignment: "l"=left, "c"=center, "r"=right. */ 420 int myAlignment = PdfContentByte.ALIGN_LEFT; 421 if (labelAlign.toUpperCase().contains("L")) { 422 myAlignment = PdfContentByte.ALIGN_LEFT; 423 } 424 if (labelAlign.toUpperCase().contains("C")) { 425 myAlignment = PdfContentByte.ALIGN_CENTER; 426 } 427 if (labelAlign.toUpperCase().contains("R")) { 428 myAlignment = PdfContentByte.ALIGN_RIGHT; 429 } 430 return myAlignment; 431 } 432 433 public static float getVerticalOffset(String labelAlign, float fontHeight) { 434 /* Valid values for vertical alignment: "t"=top, "m"=middle, "b"=bottom. */ 435 float myOffset = (float) 0.0; 436 if (labelAlign.toUpperCase().contains("T")) { 437 myOffset = fontHeight; 438 } 439 if (labelAlign.toUpperCase().contains("M")) { 440 myOffset = fontHeight/2; 441 } 442 if (labelAlign.toUpperCase().contains("B")) { 443 myOffset = (float) 0.0; 444 } 445 return myOffset; 446 } 386 447 } -
print/trunk/src/main/java/org/mapfish/print/map/renderers/vector/PointRenderer.java
r3397 r3433 22 22 import com.vividsolutions.jts.geom.Point; 23 23 import com.vividsolutions.jts.geom.Coordinate; 24 import com.lowagie.text.pdf.BaseFont; 24 25 import com.lowagie.text.pdf.PdfContentByte; 25 26 import com.lowagie.text.pdf.PdfGState; … … 30 31 import org.mapfish.print.PDFUtils; 31 32 import org.mapfish.print.InvalidValueException; 33 import org.mapfish.print.config.ColorWrapper; 32 34 import org.mapfish.print.utils.PJsonObject; 33 35 … … 90 92 float offsetX = style.optFloat("graphicXOffset", -width / 2.0f); 91 93 float offsetY = style.optFloat("graphicYOffset", -height / 2.0f); 94 // See Feature/Vector.js for more information about labels 95 String label = style.optString("label"); 96 String labelAlign = style.optString("labelAlign", "lb"); 97 /* 98 * Valid values for horizontal alignment: "l"=left, "c"=center, "r"=right. 99 * Valid values for vertical alignment: "t"=top, "m"=middle, "b"=bottom. 100 */ 101 float labelXOffset = style.optFloat("labelXOffset", (float) 0.0); 102 float labelYOffset = style.optFloat("labelYOffset", (float) 0.0); 103 String fontColor = style.optString("fontColor", "#000000"); 104 /* Supported itext fonts: COURIER, HELVETICA, TIMES_ROMAN */ 105 String fontFamily = style.optString("fontFamily", "HELVETICA"); 106 String fontSize = style.optString("fontSize", "12"); 107 String fontWeight = style.optString("fontWeight", "normal"); 92 108 93 109 if (style.optString("externalGraphic") != null) { … … 124 140 dc.fillStroke(); 125 141 126 } else { 142 } else if (label != null && label.length() > 0) { 143 BaseFont bf = PDFUtils.getBaseFont(fontFamily, fontSize, fontWeight); 144 float fontHeight = (float) Double.parseDouble(fontSize.toLowerCase().replaceAll("px", "")) * f; 145 dc.setFontAndSize(bf, fontHeight); 146 dc.setColorFill(ColorWrapper.convertColor(fontColor)); 147 state.setFillOpacity((float) 1.0); 148 dc.setGState(state); 149 dc.beginText(); 150 dc.setTextMatrix((float) coordinate.x + labelXOffset * f, (float) coordinate.y + labelYOffset * f); 151 dc.setGState(state); 152 dc.showTextAligned(PDFUtils.getHorizontalAlignment(labelAlign), label, (float) coordinate.x + labelXOffset * f, (float) coordinate.y + labelYOffset * f - PDFUtils.getVerticalOffset(labelAlign, fontHeight), 0); 153 dc.endText(); 154 } else { 127 155 PolygonRenderer.applyStyle(context, dc, style, state); 128 156 dc.setGState(state);
