Changeset 819
- Timestamp:
- 02/03/14 17:02:11 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/expeditee/io/PDF2Writer.java
r818 r819 1 1 package org.expeditee.io; 2 2 3 import java.awt.Color; 3 4 import java.awt.Dimension; 4 5 import java.awt.Image; … … 38 39 39 40 private PdfWriter _pdfWriter; 41 private float _height; 40 42 41 43 public PDF2Writer() { … … 55 57 _pdfDocument.addAuthor(UserSettings.UserName.get()); 56 58 _pdfDocument.addCreator("Expeditee"); 59 _height = _pdfWriter.getPageSize().getHeight(); 57 60 } catch (DocumentException e) { 58 61 e.printStackTrace(); … … 132 135 } 133 136 137 private void fillPolygon(PdfContentByte cb, Polygon poly, Color fill, Color line, float lineThickness) { 138 if(poly != null) { 139 cb.moveTo(poly.xpoints[0], _height - poly.ypoints[0]); 140 for(int i = 1; i < poly.npoints; i++) { 141 cb.lineTo(poly.xpoints[i], _height - poly.ypoints[i]); 142 } 143 cb.closePath(); 144 cb.setColorFill(fill); 145 if(lineThickness > 0) { 146 cb.setLineWidth(lineThickness); 147 cb.setColorStroke(line); 148 cb.fillStroke(); 149 } else { 150 cb.fill(); 151 } 152 } 153 } 154 134 155 private List<Line> seenLines = new LinkedList<Line>(); 135 156 @Override … … 139 160 } 140 161 PdfContentByte cb = _pdfWriter.getDirectContent(); 141 float height = _pdfWriter.getPageSize().getHeight();142 162 if(line.getStartItem().isEnclosed()) { 143 163 seenLines.add(line); 144 164 Line currentLine = line; 145 165 Item currentItem = line.getStartItem(); 146 cb.moveTo(currentItem.getX(), height - currentItem.getY());166 cb.moveTo(currentItem.getX(), _height - currentItem.getY()); 147 167 for(;;) { 148 168 currentItem = currentLine.getOppositeEnd(currentItem); 149 cb.lineTo(currentItem.getX(), height - currentItem.getY());169 cb.lineTo(currentItem.getX(), _height - currentItem.getY()); 150 170 for(Line l : currentItem.getLines()) { 151 171 if(l.equals(currentLine)) { … … 175 195 Item start = ((Line) l).getStartItem(); 176 196 Item end = ((Line) l).getEndItem(); 177 cb.moveTo(start.getX(), height - start.getY());178 cb.lineTo(end.getX(), height - end.getY());197 cb.moveTo(start.getX(), _height - start.getY()); 198 cb.lineTo(end.getX(), _height - end.getY()); 179 199 cb.closePath(); 180 200 if(l.getThickness() >= 0) { … … 183 203 cb.stroke(); 184 204 } 185 Polygon arrow = ((Line) l).getStartArrow(); 186 if(arrow != null) { 187 cb.moveTo(arrow.xpoints[0], height - arrow.ypoints[0]); 188 for(int i = 1; i < arrow.npoints; i++) { 189 cb.lineTo(arrow.xpoints[i], height - arrow.ypoints[i]); 190 } 191 cb.closePath(); 192 cb.setColorFill(l.getColor()); 193 if(l.getThickness() > 0) { 194 cb.setLineWidth(l.getThickness()); 195 cb.setColorStroke(l.getColor()); 196 cb.stroke(); 197 } else { 198 cb.fill(); 199 } 200 } 201 arrow = ((Line) l).getEndArrow(); 202 if(arrow != null) { 203 cb.moveTo(arrow.xpoints[0], height - arrow.ypoints[0]); 204 for(int i = 1; i < arrow.npoints; i++) { 205 cb.lineTo(arrow.xpoints[i], height - arrow.ypoints[i]); 206 } 207 cb.closePath(); 208 cb.setColorFill(l.getColor()); 209 if(l.getThickness() > 0) { 210 cb.setLineWidth(l.getThickness()); 211 cb.setColorStroke(l.getColor()); 212 cb.fillStroke(); 213 } else { 214 cb.fill(); 215 } 216 } 205 fillPolygon(cb, ((Line) l).getStartArrow(), l.getColor(), l.getColor(), l.getThickness()); 206 fillPolygon(cb, ((Line) l).getEndArrow(), l.getColor(), l.getColor(), l.getThickness()); 217 207 } 218 208 }
Note:
See TracChangeset
for help on using the changeset viewer.