001: /*
002: * Copyright 2002 Paulo Soares
003: *
004: * The contents of this file are subject to the Mozilla Public License Version 1.1
005: * (the "License"); you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at http://www.mozilla.org/MPL/
007: *
008: * Software distributed under the License is distributed on an "AS IS" basis,
009: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
010: * for the specific language governing rights and limitations under the License.
011: *
012: * The Original Code is 'iText, a free JAVA-PDF library'.
013: *
014: * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
015: * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
016: * All Rights Reserved.
017: * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
018: * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
019: *
020: * Contributor(s): all the names of the contributors are added in the source code
021: * where applicable.
022: *
023: * Alternatively, the contents of this file may be used under the terms of the
024: * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the
025: * provisions of LGPL are applicable instead of those above. If you wish to
026: * allow use of your version of this file only under the terms of the LGPL
027: * License and not to allow others to use your version of this file under
028: * the MPL, indicate your decision by deleting the provisions above and
029: * replace them with the notice and other provisions required by the LGPL.
030: * If you do not delete the provisions above, a recipient may use your version
031: * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
032: *
033: * This library is free software; you can redistribute it and/or modify it
034: * under the terms of the MPL as stated above or under the terms of the GNU
035: * Library General Public License as published by the Free Software Foundation;
036: * either version 2 of the License, or any later version.
037: *
038: * This library is distributed in the hope that it will be useful, but WITHOUT
039: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
040: * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
041: * details.
042: *
043: * If you didn't download this code from the following link, you should check if
044: * you aren't using an obsolete version:
045: * http://www.lowagie.com/iText/
046: */
047: package com.lowagie.text.pdf;
048:
049: import java.io.IOException;
050:
051: /** Implements the shading pattern dictionary.
052: *
053: * @author Paulo Soares (psoares@consiste.pt)
054: */
055: public class PdfShadingPattern extends PdfDictionary {
056:
057: protected PdfShading shading;
058:
059: protected PdfWriter writer;
060:
061: protected float matrix[] = { 1, 0, 0, 1, 0, 0 };
062:
063: protected PdfName patternName;
064:
065: protected PdfIndirectReference patternReference;
066:
067: /** Creates new PdfShadingPattern */
068: public PdfShadingPattern(PdfShading shading) {
069: writer = shading.getWriter();
070: put(PdfName.PATTERNTYPE, new PdfNumber(2));
071: this .shading = shading;
072: }
073:
074: PdfName getPatternName() {
075: return patternName;
076: }
077:
078: PdfName getShadingName() {
079: return shading.getShadingName();
080: }
081:
082: PdfIndirectReference getPatternReference() {
083: if (patternReference == null)
084: patternReference = writer.getPdfIndirectReference();
085: return patternReference;
086: }
087:
088: PdfIndirectReference getShadingReference() {
089: return shading.getShadingReference();
090: }
091:
092: void setName(int number) {
093: patternName = new PdfName("P" + number);
094: }
095:
096: void addToBody() throws IOException {
097: put(PdfName.SHADING, getShadingReference());
098: put(PdfName.MATRIX, new PdfArray(matrix));
099: writer.addToBody(this , getPatternReference());
100: }
101:
102: public void setMatrix(float matrix[]) {
103: if (matrix.length != 6)
104: throw new RuntimeException("The matrix size must be 6.");
105: this .matrix = matrix;
106: }
107:
108: public float[] getMatrix() {
109: return matrix;
110: }
111:
112: public PdfShading getShading() {
113: return shading;
114: }
115:
116: ColorDetails getColorDetails() {
117: return shading.getColorDetails();
118: }
119:
120: }
|