Ignore:
Timestamp:
2010-11-01T14:27:55+01:00 (14 years ago)
Author:
extropy
Message:

'Initial pdfimport version'

Location:
applications/editors/josm/plugins/pdfimport
Files:
32 added
8 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/pdfimport/build.xml

    r23863 r23991  
    8686                <copy todir="${plugin.build.dir}/images">
    8787                        <fileset dir="images" />
     88                </copy>
     89                <copy todir="${plugin.build.dir}">
     90                        <fileset dir="resources" />
    8891                </copy>
    8992
  • applications/editors/josm/plugins/pdfimport/src/pdfimport/LayerContents.java

    r23702 r23991  
    1313        List<PdfPath> paths = new ArrayList<PdfPath>();
    1414        List<PdfMultiPath> multiPaths = new ArrayList<PdfMultiPath>();
    15         LayerInfo info;         
     15        LayerInfo info;
    1616}
  • applications/editors/josm/plugins/pdfimport/src/pdfimport/LayerInfo.java

    r23862 r23991  
    44
    55public class LayerInfo{
     6        public Color fill;
     7        public Color stroke;
     8        public int dash;
    69        public double width;
    7         public Color color;
    8         public Color fillColor;
    9         public boolean fill;
    10         public boolean stroke;
     10        public int divider;
     11        public boolean isGroup;
    1112
    1213        public int nr;
    13         public int divider;
    14         public int dash;
    1514
    1615        @Override
     
    1918                int code =  Double.toString(width).hashCode() ^ this.divider ^ this.dash;
    2019
    21                 if (this.fill) {
    22                         code ^= this.fillColor.hashCode();
     20                if (this.fill != null) {
     21                        code ^= this.fill.hashCode();
    2322                }
    2423
    25                 if (this.stroke) {
    26                         code ^= this.color.hashCode();
     24                if (this.stroke != null) {
     25                        code ^= this.stroke.hashCode();
    2726                }
    2827
     
    3433        {
    3534                LayerInfo l = (LayerInfo) o;
    36                 boolean eq =
    37                         this.width == l.width &&
    38                         this.divider == l.divider &&
    39                         this.fill == l.fill &&
    40                         this.stroke == l.stroke &&
    41                         this.dash == l.dash;
     35                boolean eq = this.width == l.width &&
     36                this.divider == l.divider &&
     37                this.dash == l.dash;
    4238
    43                 if (this.fill){
    44                         eq &= this.fillColor.equals(l.fillColor);
     39
     40                if (this.fill != null){
     41                        eq &= this.fill.equals(l.fill);
    4542                }
    4643
    47                 if (this.stroke) {
    48                         eq &= this.color.equals(l.color);
     44                if (this.stroke != null) {
     45                        eq &= this.stroke.equals(l.stroke);
    4946                }
    5047
     
    5451        public LayerInfo copy() {
    5552                LayerInfo result = new LayerInfo();
    56                 result.color = this.color;
    57                 result.fillColor = this.fillColor;
    58                 result.width = this.width;
    59                 result.divider = this.divider;
    6053                result.fill = this.fill;
    6154                result.stroke = this.stroke;
    6255                result.dash = this.dash;
     56                result.width = this.width;
     57                result.divider = this.divider;
    6358                return result;
    6459        }
  • applications/editors/josm/plugins/pdfimport/src/pdfimport/LoadPdfDialog.java

    r23866 r23991  
    1919import javax.swing.BorderFactory;
    2020import javax.swing.JButton;
     21import javax.swing.JCheckBox;
    2122import javax.swing.JComboBox;
    2223import javax.swing.JFileChooser;
     
    6768        private JButton showButton;
    6869        private JButton saveButton;
     70        private JCheckBox debugModeCheck;
    6971
    7072        public LoadPdfDialog() {
     
    159161                this.getMaxButton = new JButton(tr("Take X and Y from selected node"));
    160162
     163                this.debugModeCheck = new JCheckBox(tr("Debug info"));
     164
    161165
    162166                JPanel selectFilePanel = new JPanel(new GridBagLayout());
     
    164168                c.gridx = 0; c.gridy = 0; c.gridwidth = 1;
    165169                selectFilePanel.add(this.loadFileButton, c);
     170
     171                c.gridx = 0; c.gridy = 1; c.gridwidth = 1;
     172                selectFilePanel.add(this.debugModeCheck, c);
    166173
    167174                JPanel projectionPanel = new JPanel(new GridBagLayout());
     
    208215                projectionPanel.add(this.getMaxButton, c);
    209216
    210 
    211217                JPanel okCancelPanel = new JPanel(new GridLayout(1,3));
    212218                okCancelPanel.add(this.cancelButton);
     
    246252                                        public void actionPerformed(ActionEvent e) {
    247253                                                if (data!= null) {
     254                                                        OsmBuilder.Mode mode = LoadPdfDialog.this.debugModeCheck.isSelected() ? OsmBuilder.Mode.Debug: OsmBuilder.Mode.Draft;
    248255                                                        LoadPdfDialog.this.fileName = fileName.getAbsolutePath();
    249                                                         LoadPdfDialog.this.makeLayer(tr("PDF file preview"), false);
     256                                                        LoadPdfDialog.this.makeLayer(tr("PDF file preview"), mode);
    250257                                                        LoadPdfDialog.this.loadFileButton.setText(tr("Loaded"));
    251258                                                        LoadPdfDialog.this.loadFileButton.setEnabled(true);
     
    264271
    265272                //rebuild layer with latest projection
    266                 this.makeLayer(tr("Imported PDF: ") + this.fileName, true);
     273                this.makeLayer(tr("Imported PDF: ") + this.fileName, OsmBuilder.Mode.Final);
    267274                this.setVisible(false);
    268275        }
     
    480487        }
    481488
    482         private void makeLayer(String name, boolean isFinal) {
     489        private void makeLayer(String name, OsmBuilder.Mode mode) {
    483490                this.removeLayer();
    484491
     
    487494                }
    488495
    489                 DataSet data = builder.build(this.data.getLayers(), isFinal);
     496                DataSet data = builder.build(this.data.getLayers(), mode);
    490497                this.layer = new OsmDataLayer(data, name, null);
    491498
     
    510517
    511518        private void saveLayer(java.io.File file) {
    512                 DataSet data = builder.build(this.data.getLayers(), true);
     519                DataSet data = builder.build(this.data.getLayers(), OsmBuilder.Mode.Final);
    513520                OsmDataLayer layer = new OsmDataLayer(data, file.getName(), file);
    514521
  • applications/editors/josm/plugins/pdfimport/src/pdfimport/OsmBuilder.java

    r23907 r23991  
    2020public class OsmBuilder {
    2121
     22        enum Mode {Draft, Final, Debug};
     23
    2224        public Projection projection = null;
    2325        public double minX = 0;
     
    3133        public double maxNorth = 10000;
    3234
    33         private final Map<String, String> stringsMap = new HashMap<String, String>();
     35        private String layerName;
     36        private String fillName;
     37        private String lineName;
     38        private Mode mode;
    3439
    3540
     
    5964        }
    6065
    61         public DataSet build(List<LayerContents> data, boolean full) {
    62 
     66        public DataSet build(List<LayerContents> data, Mode mode) {
     67
     68                this.mode = mode;
    6369                DataSet result = new DataSet();
    6470
    6571                for (LayerContents layer: data) {
    66                         this.addLayer(result, layer, full);
     72                        this.addLayer(result, layer);
    6773                }
    6874                return result;
     
    7076
    7177
    72         private void addLayer(DataSet target, LayerContents layer, boolean full) {
     78        private void addLayer(DataSet target, LayerContents layer) {
    7379                Map<Point2D, Node> point2Node = new HashMap<Point2D, Node>();
     80
     81                this.fillName = this.printColor(layer.info.fill);
     82                this.lineName = this.printColor(layer.info.stroke);
     83                this.layerName = "" + layer.info.nr;
    7484
    7585                //insert nodes
     
    8696
    8797                for (PdfPath path: layer.paths){
    88                         Way w = this.insertWay(path, point2Node, -1, full, false);
     98                        Way w = this.insertWay(path, point2Node, -1, false);
    8999                        target.addPrimitive(w);
    90100                        path2Way.put(path, w);
     
    94104                for (PdfMultiPath mpath: layer.multiPaths) {
    95105                        for (PdfPath path: mpath.paths){
    96                                 Way w = this.insertWay(path, point2Node, pathId, full, true);
     106                                Way w = this.insertWay(path, point2Node, pathId, true);
    97107                                target.addPrimitive(w);
    98108                                path2Way.put(path, w);
     
    101111                }
    102112
    103                 if (full) {
     113                if (this.mode != Mode.Draft) {
    104114                        //insert relations
    105115                        for (PdfMultiPath mpath: layer.multiPaths) {
     
    121131        }
    122132
    123         private Way insertWay(PdfPath path, Map<Point2D, Node> point2Node, int multipathId, boolean full, boolean multipolygon) {
     133        private Way insertWay(PdfPath path, Map<Point2D, Node> point2Node, int multipathId, boolean multipolygon) {
    124134
    125135                List<Node> nodes = new ArrayList<Node>(path.points.size());
     
    136146                Map<String, String> keys = new HashMap<String, String>();
    137147
    138                 if (full) {
     148                if (this.mode != Mode.Draft) {
    139149                        keys.put("PDF_nr", "" + path.nr);
    140                         keys.put("PDF_layer", this.getString("" + path.layer.info.nr));
     150                        keys.put("PDF_layer", this.layerName);
    141151
    142152                        if (path.isClosed()){
     
    144154                        }
    145155
    146                         if (path.layer.info.fill){
    147                                 keys.put("PDF_fillColor", printColor(path.layer.info.fillColor));
    148                         }
    149 
    150                         if (path.layer.info.stroke) {
    151                                 keys.put("PDF_lineColor", printColor(path.layer.info.color));
     156                        if (this.fillName != null){
     157                                keys.put("PDF_fillColor", this.fillName);
     158                        }
     159
     160                        if (this.lineName != null) {
     161                                keys.put("PDF_lineColor", this.lineName);
    152162                        }
    153163
     
    155165                                keys.put("PDF_multipath", ""+ multipathId);
    156166                        }
    157                         else if (path.layer.info.fill && !multipolygon) {
     167                        else if (path.layer.info.fill != null && !multipolygon) {
    158168                                keys.put("area", "yes");
    159169                        }
     170                }
     171
     172                if (this.mode == Mode.Debug) {
     173
     174                        keys.put("PDF_pathLayer", ""+path.layer.info.nr);
     175                        keys.put("PDF_lineWidth", ""+path.layer.info.width);
     176                        keys.put("PDF_lineDash", ""+path.layer.info.dash);
     177                        keys.put("PDF_layerHash", ""+path.layer.info.hashCode());
     178                        keys.put("PDF_layerDivider", ""+path.layer.info.divider);
    160179                }
    161180
     
    167186
    168187
    169         private String getString(String string) {
    170                 if (this.stringsMap.containsKey(string)) {
    171                         return this.stringsMap.get(string);
    172                 } else {
    173                         this.stringsMap.put(string, string);
    174                         return string;
    175                 }
    176         }
    177188
    178189        private String printColor(Color col){
    179                 String s = "#" + Integer.toHexString(col.getRGB() & 0xffffff);
    180                 return getString(s);
     190                if (col == null){
     191                        return null;
     192                }
     193
     194                String s = Integer.toHexString(col.getRGB());
     195                while (s.length() < 6) {
     196                        s = "0" + s;
     197                }
     198
     199                return "#" + s;
    181200        }
    182201
  • applications/editors/josm/plugins/pdfimport/src/pdfimport/PathOptimizer.java

    r23862 r23991  
    44import java.awt.geom.Rectangle2D;
    55import java.util.ArrayList;
     6import java.util.Collections;
    67import java.util.HashMap;
    78import java.util.HashSet;
     
    6869        public void optimize()
    6970        {
     71
    7072                for(LayerContents layer: this.layers) {
    71                         this.concatenataPaths(layer);
     73                        this.concatenatePaths(layer);
    7274                }
    7375
    7476
    7577                List<LayerContents> newLayers = new ArrayList<LayerContents>();
    76                 int nr = 0;
    77 
     78                /*
     79                for(LayerContents l: this.layers) {
     80                        List<LayerContents> splitResult = splitBySimilarGroups(l);
     81
     82                        for(LayerContents ll: splitResult) {
     83                                newLayers.add(ll);
     84                        }
     85                }
     86                this.layers = newLayers;
     87                 */
     88
     89
     90                newLayers = new ArrayList<LayerContents>();
    7891                for(LayerContents l: this.layers) {
    7992                        List<LayerContents> splitResult = splitBySegmentKind(l);
    8093
    8194                        for(LayerContents ll: splitResult) {
    82                                 ll.info.nr = nr;
    83                                 nr ++;
    8495                                newLayers.add(ll);
    8596                        }
     
    8798
    8899                this.layers = newLayers;
    89 
     100                int nr = 0;
    90101                for(LayerContents layer: this.layers) {
     102                        layer.info.nr = nr;
     103                        nr++;
    91104                        finalizeLayer(layer);
    92105                }
     
    127140         * @param layer the layer to process.
    128141         */
    129         private void concatenataPaths(LayerContents layer) {
     142        private void concatenatePaths(LayerContents layer) {
    130143                Map<Point2D, PdfPath> pathEndpoints = new HashMap<Point2D, PdfPath>();
    131144                Set<PdfPath> mergedPaths = new HashSet<PdfPath>();
     
    140153
    141154                                if (pathEndpoints.containsKey(path.firstPoint())) {
     155
    142156                                        PdfPath p1 = pathEndpoints.get(path.firstPoint());
     157
     158                                        if (this.isSubpathOf(p1, path)){
     159                                                continue;
     160                                        }
     161
    143162                                        pathEndpoints.remove(p1.firstPoint());
    144163                                        pathEndpoints.remove(p1.lastPoint());
     
    159178                                if (pathEndpoints.containsKey(path.lastPoint())) {
    160179                                        PdfPath p1 = pathEndpoints.get(path.lastPoint());
     180
     181                                        if (this.isSubpathOf(p1, path)){
     182                                                continue;
     183                                        }
     184
    161185                                        pathEndpoints.remove(p1.firstPoint());
    162186                                        pathEndpoints.remove(p1.lastPoint());
     
    184208
    185209                layer.paths = resultPaths;
     210        }
     211
     212        /**
     213         * Tests if sub is subpath of main.
     214         * @param main
     215         * @param sub
     216         * @return
     217         */
     218        private boolean isSubpathOf(PdfPath main, PdfPath sub) {
     219
     220                Set<Point2D> points = new HashSet<Point2D>(main.points);
     221
     222                for(Point2D point: sub.points) {
     223                        if (!points.contains(point)){
     224                                return false;
     225                        }
     226                }
     227
     228                return true;
    186229        }
    187230
     
    232275        }
    233276
     277        private List<LayerContents> splitBySimilarGroups(LayerContents layer) {
     278                List<List<PdfPath>> subparts = new ArrayList<List<PdfPath>>();
     279
     280                //split into similar parts
     281                for (PdfPath path: layer.paths) {
     282                        List<PdfPath> sublayer = null;
     283
     284                        for(List<PdfPath> ll: subparts){
     285                                if (this.pathsSimilar(ll.get(0).points, path.points))
     286                                {
     287                                        sublayer = ll;
     288                                        break;
     289                                }
     290                        }
     291
     292                        if (sublayer == null) {
     293                                sublayer = new ArrayList<PdfPath>();
     294                                subparts.add(sublayer);
     295                        }
     296
     297                        sublayer.add(path);
     298                }
     299
     300                //get groups
     301                int minGroupTreshold = 10;
     302
     303                List<PdfPath> independantPaths = new ArrayList<PdfPath>();
     304                List<LayerContents> result = new ArrayList<LayerContents>();
     305
     306                for(List<PdfPath> list: subparts){
     307                        if (list.size() >= minGroupTreshold) {
     308                                LayerContents l = new LayerContents();
     309                                l.paths = list;
     310                                l.info = layer.info.copy();
     311                                l.info.isGroup = true;
     312                                l.multiPaths = Collections.EMPTY_LIST;
     313                                result.add(l);
     314                        }
     315                        else
     316                        {
     317                                independantPaths.addAll(list);
     318                        }
     319                }
     320
     321                if (independantPaths.size() > 0 || layer.multiPaths.size() > 0) {
     322                        LayerContents l = new LayerContents();
     323                        l.paths = independantPaths;
     324                        l.info = layer.info.copy();
     325                        l.info.isGroup = false;
     326                        l.multiPaths = layer.multiPaths;
     327                        result.add(l);
     328                }
     329
     330
     331                return result;
     332        }
     333
    234334
    235335
     
    277377        }
    278378
     379        /**
     380         * Test if paths are different only by offset.
     381         * @return
     382         */
     383        private boolean pathsSimilar(List<Point2D> path1, List<Point2D> path2) {
     384                if (path1.size() != path2.size()) {
     385                        return false;
     386                }
     387
     388                if (path1.size() < 3) {
     389                        return false;
     390                        //cannot judge so small paths
     391                }
     392
     393                Point2D p1 = path1.get(0);
     394                Point2D p2 = path2.get(0);
     395
     396                double offsetX = p1.getX() - p2.getX();
     397                double offsetY = p1.getY() - p2.getY();
     398                double tolerance = 1e-4;
     399
     400                for(int pos = 0; pos < path1.size(); pos ++) {
     401                        p1 = path1.get(pos);
     402                        p2 = path2.get(pos);
     403
     404                        double errorX = p1.getX() - p2.getX() - offsetX;
     405                        double errorY = p1.getY() - p2.getY() - offsetY;
     406
     407                        if (Math.abs(errorX) + Math.abs(errorY) > tolerance){
     408                                return false;
     409                        }
     410                }
     411
     412                return true;
     413        }
     414
    279415}
  • applications/editors/josm/plugins/pdfimport/src/pdfimport/pdfbox/GraphicsProcessor.java

    r23866 r23991  
    33import java.awt.BasicStroke;
    44import java.awt.Color;
    5 import java.awt.Composite;
    6 import java.awt.Font;
    7 import java.awt.FontMetrics;
    8 import java.awt.Graphics;
    9 import java.awt.Graphics2D;
    10 import java.awt.GraphicsConfiguration;
    11 import java.awt.Image;
    12 import java.awt.Paint;
    13 import java.awt.Rectangle;
    14 import java.awt.RenderingHints;
    155import java.awt.Shape;
    166import java.awt.Stroke;
    17 import java.awt.RenderingHints.Key;
    18 import java.awt.font.FontRenderContext;
    19 import java.awt.font.GlyphVector;
    207import java.awt.geom.AffineTransform;
    218import java.awt.geom.PathIterator;
    229import java.awt.geom.Point2D;
    23 import java.awt.image.BufferedImage;
    24 import java.awt.image.BufferedImageOp;
    25 import java.awt.image.ImageObserver;
    26 import java.awt.image.RenderedImage;
    27 import java.awt.image.renderable.RenderableImage;
    28 import java.text.AttributedCharacterIterator;
    2910import java.util.ArrayList;
    3011import java.util.List;
    31 import java.util.Map;
    3212
    3313import pdfimport.LayerInfo;
     
    3515import pdfimport.PdfPath;
    3616
    37 public class GraphicsProcessor extends Graphics2D {
     17public class GraphicsProcessor{
    3818
    3919        public PathOptimizer target;
     
    4424        private boolean complexClipShape;
    4525        private boolean clipAreaDrawn;
    46         private final double height;
    4726
    4827        private final AffineTransform transform;
    4928
    50         public GraphicsProcessor(PathOptimizer target, int rotation, double height)
     29        public GraphicsProcessor(PathOptimizer target, int rotation)
    5130        {
    52                 this.height = height;
    5331                this.target = target;
    5432                this.transform = new AffineTransform();
    55                 this.transform.rotate(Math.toRadians(rotation));
    56                 this.info.color = Color.BLACK;
    57                 this.info.fillColor = Color.BLACK;
    58         }
    59 
    60         private void addPath(Shape s, boolean fill) {
    61                 List<PdfPath> paths = this.parsePath(s);
    62                 if (fill) {
    63                         this.info.fill = true;
    64                         this.info.stroke = false;
    65                 }
    66                 else {
    67                         this.info.fill = false;
    68                         this.info.stroke = true;
    69                 }
     33                this.transform.rotate(-Math.toRadians(rotation));
     34                this.info.stroke = Color.BLACK;
     35                this.info.fill = Color.BLACK;
     36        }
     37
     38
     39        private void addPath(Shape s, boolean closed) {
     40                List<PdfPath> paths = this.parsePath(s, closed);
    7041
    7142                for (PdfPath p: paths){
     
    8455
    8556
    86         private List<PdfPath> parsePath(Shape s) {
     57        private List<PdfPath> parsePath(Shape s, boolean closed) {
    8758                List<PdfPath> result = new ArrayList<PdfPath>(2);
    8859                List<Point2D> points = new ArrayList<Point2D>(2);
    89 
    9060
    9161                PathIterator iter = s.getPathIterator(null);
     
    139109                if (points.size() > 1 )
    140110                {
     111                        if (closed) {
     112                                this.addPoint(points, points.get(0));
     113                        }
     114
    141115                        result.add(new PdfPath(points));
    142116                }
    143 
    144 
    145117
    146118                return result;
     
    161133        private Point2D parsePoint(double[] buffer, int offset) {
    162134                //invert Y.
    163                 Point2D point = new Point2D.Double(buffer[offset], this.height - buffer[offset + 1]);
     135                Point2D point = new Point2D.Double(buffer[offset], buffer[offset + 1]);
    164136                Point2D dest = new Point2D.Double();
    165137                this.transform.transform(point, dest);
     
    167139        }
    168140
    169 
    170         @Override
    171         public void draw(Shape s) {
    172 
    173                 if (complexClipShape)
    174                 {
    175                         if (!this.clipAreaDrawn)
    176                         {
     141        public void drawPath(Shape path, Color stroke, Color fill,
     142                        int windingRule) {
     143
     144                if (complexClipShape) {
     145                        if (!this.clipAreaDrawn) {
     146                                this.info.stroke = null;
     147                                this.info.fill = Color.CYAN;
    177148                                this.addPath(this.clipShape, true);
    178149                                this.clipAreaDrawn = true;
    179150                        }
    180151                }
    181                 else
    182                 {
    183                         this.addPath(s, false);
    184                 }
    185         }
    186 
    187 
    188         @Override
    189         public void fill(Shape s) {
    190                 this.addPath(s, true);
    191         }
    192 
    193         @Override
    194         public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) {
    195 
    196                 if (!this.clipAreaDrawn)
    197                 {
     152
     153                if (!complexClipShape || fill != null) {
     154                        this.info.stroke = stroke;
     155                        this.info.fill = fill;
     156                        this.addPath(path, fill != null);
     157                }
     158        }
     159
     160
     161        public void drawImage() {
     162
     163                if (!this.clipAreaDrawn) {
     164                        this.info.stroke = null;
     165                        this.info.fill = Color.CYAN;
    198166                        this.addPath(this.clipShape, true);
    199167                        this.clipAreaDrawn = true;
    200168                }
    201                 return true;
    202         }
    203 
    204 
    205         @Override
     169        }
     170
     171
    206172        public void setClip(Shape clip) {
    207173                if (this.clipShape == clip)
    208174                        return;
    209175
    210                 this.clipPath = this.parsePath(clip);
     176                this.clipPath = this.parsePath(clip, true);
    211177
    212178                boolean complexClipPath = false;
     
    227193        }
    228194
    229         @Override
    230         public void setColor(Color c) {
    231                 this.info.color = c;
    232                 this.info.fillColor = c;
    233         }
    234 
    235 
    236         @Override
     195
    237196        public void setStroke(Stroke s) {
    238197                BasicStroke stroke = (BasicStroke) s;
     
    245204        }
    246205
    247 
    248         @Override
    249         public void clip(Shape s) {
    250                 //TODO:
    251         }
    252 
    253 
    254         @Override
    255         public void addRenderingHints(Map<?, ?> hints) {
     206        public void drawString(float x, float y, String character, Color color) {
    256207                // TODO Auto-generated method stub
    257208        }
    258 
    259 
    260         @Override
    261         public void drawGlyphVector(GlyphVector g, float x, float y) {
    262                 // TODO Auto-generated method stub
    263 
    264         }
    265 
    266         @Override
    267         public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) {
    268                 // TODO Auto-generated method stub
    269 
    270         }
    271 
    272         @Override
    273         public void drawRenderableImage(RenderableImage img, AffineTransform xform) {
    274                 // TODO Auto-generated method stub
    275 
    276         }
    277 
    278         @Override
    279         public void drawRenderedImage(RenderedImage img, AffineTransform xform) {
    280                 // TODO Auto-generated method stub
    281 
    282         }
    283 
    284         @Override
    285         public void drawString(String str, int x, int y) {
    286                 // TODO Auto-generated method stub
    287 
    288         }
    289 
    290         @Override
    291         public void drawString(String str, float x, float y) {
    292                 // TODO Auto-generated method stub
    293 
    294         }
    295 
    296         @Override
    297         public void drawString(AttributedCharacterIterator iterator, int x, int y) {
    298                 // TODO Auto-generated method stub
    299 
    300         }
    301 
    302         @Override
    303         public void drawString(AttributedCharacterIterator iterator, float x,
    304                         float y) {
    305                 // TODO Auto-generated method stub
    306 
    307         }
    308 
    309 
    310         @Override
    311         public Color getBackground() {
    312                 // TODO Auto-generated method stub
    313                 return null;
    314         }
    315 
    316         @Override
    317         public Composite getComposite() {
    318                 // TODO Auto-generated method stub
    319                 return null;
    320         }
    321 
    322         @Override
    323         public GraphicsConfiguration getDeviceConfiguration() {
    324                 // TODO Auto-generated method stub
    325                 return null;
    326         }
    327 
    328         @Override
    329         public FontRenderContext getFontRenderContext() {
    330                 // TODO Auto-generated method stub
    331                 return null;
    332         }
    333 
    334         @Override
    335         public Paint getPaint() {
    336                 // TODO Auto-generated method stub
    337                 return null;
    338         }
    339 
    340         @Override
    341         public Object getRenderingHint(Key hintKey) {
    342                 // TODO Auto-generated method stub
    343                 return null;
    344         }
    345 
    346         @Override
    347         public RenderingHints getRenderingHints() {
    348                 // TODO Auto-generated method stub
    349                 return null;
    350         }
    351 
    352         @Override
    353         public Stroke getStroke() {
    354                 // TODO Auto-generated method stub
    355                 return null;
    356         }
    357 
    358         @Override
    359         public AffineTransform getTransform() {
    360                 // TODO Auto-generated method stub
    361                 return null;
    362         }
    363 
    364         @Override
    365         public boolean hit(Rectangle rect, Shape s, boolean onStroke) {
    366                 // TODO Auto-generated method stub
    367                 return false;
    368         }
    369 
    370         @Override
    371         public void rotate(double theta) {
    372                 // TODO Auto-generated method stub
    373 
    374         }
    375 
    376         @Override
    377         public void rotate(double theta, double x, double y) {
    378                 // TODO Auto-generated method stub
    379 
    380         }
    381 
    382         @Override
    383         public void scale(double sx, double sy) {
    384                 // TODO Auto-generated method stub
    385 
    386         }
    387 
    388         @Override
    389         public void setBackground(Color color) {
    390                 // TODO Auto-generated method stub
    391 
    392         }
    393 
    394         @Override
    395         public void setComposite(Composite comp) {
    396                 // TODO Auto-generated method stub
    397 
    398         }
    399 
    400         @Override
    401         public void setPaint(Paint paint) {
    402                 // TODO Auto-generated method stub
    403 
    404         }
    405 
    406         @Override
    407         public void setRenderingHint(Key hintKey, Object hintValue) {
    408                 // TODO Auto-generated method stub
    409 
    410         }
    411 
    412         @Override
    413         public void setRenderingHints(Map<?, ?> hints) {
    414                 // TODO Auto-generated method stub
    415 
    416         }
    417 
    418         @Override
    419         public void setTransform(AffineTransform Tx) {
    420                 // TODO Auto-generated method stub
    421 
    422         }
    423 
    424         @Override
    425         public void shear(double shx, double shy) {
    426                 // TODO Auto-generated method stub
    427 
    428         }
    429 
    430         @Override
    431         public void transform(AffineTransform Tx) {
    432                 // TODO Auto-generated method stub
    433 
    434         }
    435 
    436         @Override
    437         public void translate(int x, int y) {
    438                 // TODO Auto-generated method stub
    439 
    440         }
    441 
    442         @Override
    443         public void translate(double tx, double ty) {
    444                 // TODO Auto-generated method stub
    445 
    446         }
    447 
    448         @Override
    449         public void clearRect(int x, int y, int width, int height) {
    450                 // TODO Auto-generated method stub
    451 
    452         }
    453 
    454         @Override
    455         public void clipRect(int x, int y, int width, int height) {
    456                 // TODO Auto-generated method stub
    457 
    458         }
    459 
    460         @Override
    461         public void copyArea(int x, int y, int width, int height, int dx, int dy) {
    462                 // TODO Auto-generated method stub
    463 
    464         }
    465 
    466         @Override
    467         public Graphics create() {
    468                 // TODO Auto-generated method stub
    469                 return null;
    470         }
    471 
    472         @Override
    473         public void dispose() {
    474                 // TODO Auto-generated method stub
    475 
    476         }
    477 
    478         @Override
    479         public void drawArc(int x, int y, int width, int height, int startAngle,
    480                         int arcAngle) {
    481                 // TODO Auto-generated method stub
    482 
    483         }
    484 
    485         @Override
    486         public boolean drawImage(Image img, int x, int y, ImageObserver observer) {
    487                 // TODO Auto-generated method stub
    488                 return false;
    489         }
    490 
    491         @Override
    492         public boolean drawImage(Image img, int x, int y, Color bgcolor,
    493                         ImageObserver observer) {
    494                 // TODO Auto-generated method stub
    495                 return false;
    496         }
    497 
    498         @Override
    499         public boolean drawImage(Image img, int x, int y, int width, int height,
    500                         ImageObserver observer) {
    501                 // TODO Auto-generated method stub
    502                 return false;
    503         }
    504 
    505         @Override
    506         public boolean drawImage(Image img, int x, int y, int width, int height,
    507                         Color bgcolor, ImageObserver observer) {
    508                 // TODO Auto-generated method stub
    509                 return false;
    510         }
    511 
    512         @Override
    513         public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2,
    514                         int sx1, int sy1, int sx2, int sy2, ImageObserver observer) {
    515                 // TODO Auto-generated method stub
    516                 return false;
    517         }
    518 
    519         @Override
    520         public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2,
    521                         int sx1, int sy1, int sx2, int sy2, Color bgcolor,
    522                         ImageObserver observer) {
    523                 // TODO Auto-generated method stub
    524                 return false;
    525         }
    526 
    527         @Override
    528         public void drawLine(int x1, int y1, int x2, int y2) {
    529                 // TODO Auto-generated method stub
    530 
    531         }
    532 
    533         @Override
    534         public void drawOval(int x, int y, int width, int height) {
    535                 // TODO Auto-generated method stub
    536 
    537         }
    538 
    539         @Override
    540         public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) {
    541                 // TODO Auto-generated method stub
    542 
    543         }
    544 
    545         @Override
    546         public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) {
    547                 // TODO Auto-generated method stub
    548 
    549         }
    550 
    551         @Override
    552         public void drawRoundRect(int x, int y, int width, int height,
    553                         int arcWidth, int arcHeight) {
    554                 // TODO Auto-generated method stub
    555 
    556         }
    557 
    558         @Override
    559         public void fillArc(int x, int y, int width, int height, int startAngle,
    560                         int arcAngle) {
    561                 // TODO Auto-generated method stub
    562 
    563         }
    564 
    565         @Override
    566         public void fillOval(int x, int y, int width, int height) {
    567                 // TODO Auto-generated method stub
    568 
    569         }
    570 
    571         @Override
    572         public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) {
    573                 // TODO Auto-generated method stub
    574 
    575         }
    576 
    577         @Override
    578         public void fillRect(int x, int y, int width, int height) {
    579                 // TODO Auto-generated method stub
    580 
    581         }
    582 
    583         @Override
    584         public void fillRoundRect(int x, int y, int width, int height,
    585                         int arcWidth, int arcHeight) {
    586                 // TODO Auto-generated method stub
    587 
    588         }
    589 
    590         @Override
    591         public Shape getClip() {
    592                 // TODO Auto-generated method stub
    593                 return null;
    594         }
    595 
    596         @Override
    597         public Rectangle getClipBounds() {
    598                 // TODO Auto-generated method stub
    599                 return null;
    600         }
    601 
    602         @Override
    603         public Color getColor() {
    604                 // TODO Auto-generated method stub
    605                 return null;
    606         }
    607 
    608         @Override
    609         public Font getFont() {
    610                 // TODO Auto-generated method stub
    611                 return null;
    612         }
    613 
    614         @Override
    615         public FontMetrics getFontMetrics(Font f) {
    616                 // TODO Auto-generated method stub
    617                 return null;
    618         }
    619 
    620 
    621         @Override
    622         public void setClip(int x, int y, int width, int height) {
    623                 // TODO Auto-generated method stub
    624 
    625         }
    626 
    627 
    628         @Override
    629         public void setFont(Font font) {
    630                 // TODO Auto-generated method stub
    631 
    632         }
    633 
    634         @Override
    635         public void setPaintMode() {
    636                 // TODO Auto-generated method stub
    637 
    638         }
    639 
    640         @Override
    641         public void setXORMode(Color c1) {
    642                 // TODO Auto-generated method stub
    643 
    644         }
    645 
    646209}
  • applications/editors/josm/plugins/pdfimport/src/pdfimport/pdfbox/PdfBoxParser.java

    r23866 r23991  
    22import static org.openstreetmap.josm.tools.I18n.tr;
    33
    4 import java.awt.Dimension;
    54import java.awt.geom.Rectangle2D;
    65import java.io.File;
    76import java.util.List;
    87
    9 import org.apache.pdfbox.pdfviewer.PageDrawer;
    108import org.apache.pdfbox.pdmodel.PDDocument;
    119import org.apache.pdfbox.pdmodel.PDPage;
     
    3937                PDPage page = (PDPage)allPages.get(0);
    4038                PDRectangle pageSize = page.findMediaBox();
    41                 Dimension pageDimension = pageSize.createDimension();
    4239                Integer rotationVal = page.getRotation();
    4340                int rotation = 0;
     
    4643                }
    4744
    48                 GraphicsProcessor p = new GraphicsProcessor(target, rotation, pageDimension.getHeight());
     45                GraphicsProcessor p = new GraphicsProcessor(target, rotation);
    4946                PageDrawer drawer = new PageDrawer();
    50                 drawer.drawPage(p, page, pageDimension);
     47                drawer.drawPage(p, page);
    5148                this.target.bounds = new Rectangle2D.Double(pageSize.getLowerLeftX(), pageSize.getLowerLeftY(), pageSize.getWidth(), pageSize.getHeight());
    5249        }
Note: See TracChangeset for help on using the changeset viewer.