PdfPage.java

1
/*
2
 * $Id: PdfPage.java 3373 2008-05-12 16:21:24Z xlv $
3
 *
4
 * Copyright 1999, 2000, 2001, 2002 Bruno Lowagie
5
 *
6
 * The contents of this file are subject to the Mozilla Public License Version 1.1
7
 * (the "License"); you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at http://www.mozilla.org/MPL/
9
 *
10
 * Software distributed under the License is distributed on an "AS IS" basis,
11
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
 * for the specific language governing rights and limitations under the License.
13
 *
14
 * The Original Code is 'iText, a free JAVA-PDF library'.
15
 *
16
 * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
17
 * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
18
 * All Rights Reserved.
19
 * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
20
 * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
21
 *
22
 * Contributor(s): all the names of the contributors are added in the source code
23
 * where applicable.
24
 *
25
 * Alternatively, the contents of this file may be used under the terms of the
26
 * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the
27
 * provisions of LGPL are applicable instead of those above.  If you wish to
28
 * allow use of your version of this file only under the terms of the LGPL
29
 * License and not to allow others to use your version of this file under
30
 * the MPL, indicate your decision by deleting the provisions above and
31
 * replace them with the notice and other provisions required by the LGPL.
32
 * If you do not delete the provisions above, a recipient may use your version
33
 * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
34
 *
35
 * This library is free software; you can redistribute it and/or modify it
36
 * under the terms of the MPL as stated above or under the terms of the GNU
37
 * Library General Public License as published by the Free Software Foundation;
38
 * either version 2 of the License, or any later version.
39
 *
40
 * This library is distributed in the hope that it will be useful, but WITHOUT
41
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
42
 * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
43
 * details.
44
 *
45
 * If you didn't download this code from the following link, you should check if
46
 * you aren't using an obsolete version:
47
 * http://www.lowagie.com/iText/
48
 */
49
50
package com.lowagie.text.pdf;
51
52
import java.util.HashMap;
53
54
/**
55
 * <CODE>PdfPage</CODE> is the PDF Page-object.
56
 * <P>
57
 * A Page object is a dictionary whose keys describe a single page containing text, graphics, and images. A Page object is a leaf of the
58
 * Pages tree.<BR> This object is described in the 'Portable Document Format Reference Manual version 1.3' section 6.4 (page 73-81)
59
 *
60
 * @see    PdfPages
61
 */
62
63
public class PdfPage extends PdfDictionary {
64
65
    private static final String[] boxStrings = {"crop", "trim", "art", "bleed"};
66
    private static final PdfName[] boxNames = {PdfName.CROPBOX, PdfName.TRIMBOX, PdfName.ARTBOX, PdfName.BLEEDBOX};
67
  // membervariables
68
69
  /**
70
   * value of the <B>Rotate</B> key for a page in PORTRAIT
71
   */
72
  public static final PdfNumber PORTRAIT = new PdfNumber(0);
73
74
  /**
75
   * value of the <B>Rotate</B> key for a page in LANDSCAPE
76
   */
77
  public static final PdfNumber LANDSCAPE = new PdfNumber(90);
78
79
  /**
80
   * value of the <B>Rotate</B> key for a page in INVERTEDPORTRAIT
81
   */
82
  public static final PdfNumber INVERTEDPORTRAIT = new PdfNumber(180);
83
84
  /**
85
   * value of the <B>Rotate</B> key for a page in SEASCAPE
86
   */
87
  public static final PdfNumber SEASCAPE = new PdfNumber(270);
88
89
  /**
90
   * value of the <B>MediaBox</B> key
91
   */
92
  PdfRectangle mediaBox;
93
94
  // constructors
95
96
  /**
97
   * Constructs a <CODE>PdfPage</CODE>.
98
   *
99
   * @param    mediaBox    a value for the <B>MediaBox</B> key
100
   * @param    resources    an indirect reference to a <CODE>PdfResources</CODE>-object
101
   * @param    rotate      a value for the <B>Rotate</B> key
102
   */
103
104
  PdfPage(PdfRectangle mediaBox, HashMap<String, ? extends PdfObject> boxSize, PdfDictionary resources, int rotate) {
105
    super(PAGE);
106
    this.mediaBox = mediaBox;
107 1 1. : removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE
    put(PdfName.MEDIABOX, mediaBox);
108 1 1. : removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE
    put(PdfName.RESOURCES, resources);
109 1 1. : negated conditional → NO_COVERAGE
    if (rotate != 0) {
110 1 1. : removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE
      put(PdfName.ROTATE, new PdfNumber(rotate));
111
    }
112 3 1. : changed conditional boundary → NO_COVERAGE
2. : Changed increment from 1 to -1 → NO_COVERAGE
3. : negated conditional → NO_COVERAGE
    for (int k = 0; k < boxStrings.length; ++k) {
113
      PdfObject rect = boxSize.get(boxStrings[k]);
114 1 1. : negated conditional → NO_COVERAGE
      if (rect != null) {
115 1 1. : removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE
        put(boxNames[k], rect);
116
      }
117
    }
118
  }
119
120
  /**
121
   * Constructs a <CODE>PdfPage</CODE>.
122
   *
123
   * @param    mediaBox    a value for the <B>MediaBox</B> key
124
   * @param    resources    an indirect reference to a <CODE>PdfResources</CODE>-object
125
   */
126
127
  PdfPage(PdfRectangle mediaBox, HashMap<String, ? extends PdfObject> boxSize, PdfDictionary resources) {
128
    this(mediaBox, boxSize, resources, 0);
129
  }
130
131
  /**
132
   * Checks if this page element is a tree of pages.
133
   * <P>
134
   * This method always returns <CODE>false</CODE>.
135
   *
136
   * @return  <CODE>false</CODE> because this is a single page
137
   */
138
139
  public boolean isParent() {
140
    return false;
141
  }
142
143
  // methods
144
145
  /**
146
   * Adds an indirect reference pointing to a <CODE>PdfContents</CODE>-object.
147
   *
148
   * @param    contents    an indirect reference to a <CODE>PdfContents</CODE>-object
149
   */
150
151
  void add(PdfIndirectReference contents) {
152 1 1. add : removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE
    put(PdfName.CONTENTS, contents);
153
  }
154
155
  /**
156
   * Rotates the mediabox, but not the text in it.
157
   *
158
   * @return a <CODE>PdfRectangle</CODE>
159
   */
160
161
  PdfRectangle rotateMediaBox() {
162
    this.mediaBox = mediaBox.rotate();
163 1 1. rotateMediaBox : removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE
    put(PdfName.MEDIABOX, this.mediaBox);
164 1 1. rotateMediaBox : mutated return of Object value for com/lowagie/text/pdf/PdfPage::rotateMediaBox to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE
    return this.mediaBox;
165
  }
166
167
  /**
168
   * Returns the MediaBox of this Page.
169
   *
170
   * @return a <CODE>PdfRectangle</CODE>
171
   */
172
173
  PdfRectangle getMediaBox() {
174
    return mediaBox;
175
  }
176
}

Mutations

107

1.1
Location :
Killed by : none
removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE

108

1.1
Location :
Killed by : none
removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE

109

1.1
Location :
Killed by : none
negated conditional → NO_COVERAGE

110

1.1
Location :
Killed by : none
removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE

112

1.1
Location :
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location :
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

3.3
Location :
Killed by : none
negated conditional → NO_COVERAGE

114

1.1
Location :
Killed by : none
negated conditional → NO_COVERAGE

115

1.1
Location :
Killed by : none
removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE

152

1.1
Location : add
Killed by : none
removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE

163

1.1
Location : rotateMediaBox
Killed by : none
removed call to com/lowagie/text/pdf/PdfPage::put → NO_COVERAGE

164

1.1
Location : rotateMediaBox
Killed by : none
mutated return of Object value for com/lowagie/text/pdf/PdfPage::rotateMediaBox to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.4.2