/* * $Id$ * ============================================================================ * The Apache Software License, Version 1.1 * ============================================================================ * * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without modifica- * tion, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3. The end-user documentation included with the redistribution, if any, must * include the following acknowledgment: "This product includes software * developed by the Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, if * and wherever such third-party acknowledgments normally appear. * * 4. The names "FOP" and "Apache Software Foundation" must not be used to * endorse or promote products derived from this software without prior * written permission. For written permission, please contact * apache@apache.org. * * 5. Products derived from this software may not be called "Apache", nor may * "Apache" appear in their name, without prior written permission of the * Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ============================================================================ * * This software consists of voluntary contributions made by many individuals * on behalf of the Apache Software Foundation and was originally created by * James Tauber <jtauber@jtauber.com>. For more information on the Apache * Software Foundation, please see <http://www.apache.org/>. */ package org.apache.fop.pdf; // Java... import java.util.List; import java.util.HashMap; import java.io.OutputStream; import java.io.IOException; /** * class representing a PDF Function. * * PDF Functions represent parameterized mathematical formulas and sampled representations with * arbitrary resolution. Functions are used in two areas: device-dependent * rasterization information for halftoning and transfer * functions, and color specification for smooth shading (a PDF 1.3 feature). * * All PDF Functions have a FunctionType (0,2,3, or 4), a Domain, and a Range. */ public class PDFPattern extends PDFPathPaint { /** * The resources associated with this pattern */ protected PDFResources resources = null; /** * Either one (1) for tiling, or two (2) for shading. */ protected int patternType = 2; // Default /** * The name of the pattern such as "Pa1" or "Pattern1" */ protected String patternName = null; /** * 1 for colored pattern, 2 for uncolored */ protected int paintType = 2; /** * 1 for constant spacing, 2 for no distortion, and 3 for fast rendering */ protected int tilingType = 1; /** * List of Doubles representing the Bounding box rectangle */ protected List bBox = null; /** * Horizontal spacing */ protected double xStep = -1; /** * Vertical spacing */ protected double yStep = -1; /** * The Shading object comprising the Type 2 pattern */ protected PDFShading shading = null; /** * List of Integers represetning the Extended unique Identifier */ protected List xUID = null; /** * TODO use PDFGState * String representing the extended Graphics state. * Probably will never be used like this. */ protected StringBuffer extGState = null; /** * List of Doubles representing the Transformation matrix. */ protected List matrix = null; /** * The stream of a pattern */ protected StringBuffer patternDataStream = null; /** * Create a tiling pattern (type 1). * * @param theNumber The object number of this PDF Object * @param thePatternName The name of the pattern such as "Pa1" or "Pattern1" * @param theResources the resources associated with this pattern * @param thePatternType the type of pattern, which is 1 for tiling. * @param thePaintType 1 or 2, colored or uncolored. * @param theTilingType 1, 2, or 3, constant spacing, no distortion, or faster tiling * @param theBBox List of Doubles: The pattern cell bounding box * @param theXStep horizontal spacing * @param theYStep vertical spacing * @param theMatrix Optional List of Doubles transformation matrix * @param theXUID Optional vector of Integers that uniquely identify the pattern * @param thePatternDataStream The stream of pattern data to be tiled. */ public PDFPattern(int theNumber, String thePatternName, PDFResources theResources, int thePatternType, // 1 int thePaintType, int theTilingType, List theBBox, double theXStep, double theYStep, List theMatrix, List theXUID, StringBuffer thePatternDataStream) { super(theNumber); this.patternName = thePatter>backport/48682/stable30 backport/48684/stable28 backport/48684/stable29 backport/48684/stable30 backport/48689/stable29 backport/48689/stable30 backport/48696/stable28 backport/48696/stable29 backport/48696/stable30 backport/48723/stable30 backport/48728/stable30 backport/48736/stable27 backport/48736/stable28 backport/48736/stable29 backport/48736/stable30 backport/48737/stable30 backport/48738/stable31 backport/48743/stable29 backport/48743/stable30 backport/48749/stable27 backport/48760/stable30 backport/48766/stable28 backport/48766/stable29 backport/48766/stable30 backport/48769/stable29 backport/48769/stable30 backport/48787/stable30 backport/48788/stable27 backport/48788/stable28 backport/48788/stable29 backport/48788/stable30 backport/48793/stable30 backport/48795/stable31 backport/48799/stable30 backport/48809/stable30 backport/48824/stable29 backport/48833/stable30 backport/48839/stable28 backport/48839/stable29 backport/48839/stable30 backport/48850/stable30 backport/48852/stable30 backport/48853/stable30 backport/48854/stable30 backport/48863/stable30 backport/48871/stable29 backport/48871/stable30 backport/48882/stable30 backport/48887/stable29 backport/48887/stable30 backport/48889/stable28 backport/48898/stable28 backport/48898/stable29 backport/48898/stable30 backport/48912/stable30 backport/48915/stable28 backport/48915/stable29 backport/48915/stable30 backport/48917/stable25 backport/48917/stable26 backport/48917/stable27 backport/48917/stable28 backport/48917/stable29 backport/48917/stable30 backport/48918/stable28 backport/48918/stable29 backport/48918/stable30 backport/48921/stable25 backport/48921/stable26 backport/48921/stable27 backport/48921/stable28 backport/48921/stable29 backport/48921/stable30 backport/48933/stable28 backport/48933/stable29 backport/48933/stable30 backport/48934/stable28 backport/48947/stable28 backport/48947/stable29 backport/48947/stable30 backport/48991/stable29 backport/48991/stable30 backport/48992/stable27 backport/48992/stable28 backport/48992/stable29 backport/48992/stable30 backport/49004/stable28 backport/49004/stable29 backport/49004/stable30 backport/49009/49009-stable29 backport/49009/stable25 backport/49009/stable26 backport/49009/stable27 backport/49009/stable28 backport/49009/stable30 backport/49017/stable28 backport/49017/stable29 backport/49017/stable30 backport/49023/stable28 backport/49023/stable29 backport/49023/stable30 backport/49039/stable30 backport/49053/stable28 backport/49053/stable29 backport/49053/stable30 backport/49057/master backport/49065/stable28 backport/49065/stable29 backport/49065/stable30 backport/49075/stable30 backport/49076/stable28 backport/49076/stable29 backport/49112/stable28 backport/49112/stable29 backport/49112/stable30 backport/49115/stable28 backport/49115/stable30 backport/49130/stable29 backport/49130/stable30 backport/49134/stable30 backport/49139/stable28 backport/49139/stable29 backport/49139/stable30 backport/49141/stable30 backport/49143/stable28 backport/49143/stable29 backport/49143/stable30 backport/49146/stable28 backport/49146/stable29 backport/49146/stable30 backport/49147/stable30 backport/49149/stable29 backport/49150/stable28 backport/49150/stable29 backport/49150/stable30 backport/49153/stable28 backport/49153/stable29 backport/49176/stable30 backport/49196/stable28 backport/49196/stable29 backport/49196/stable30 backport/49199/stable28 backport/49199/stable29 backport/49199/stable30 backport/49203/stable29 backport/49203/stable30 backport/49208/stable29 backport/49208/stable30 backport/49209/stable30 backport/49218/stable28 backport/49218/stable29 backport/49218/stable30 backport/49219/stable30 backport/49225/stable28 backport/49225/stable29 backport/49225/stable30 backport/49226/stable30 backport/49232/stable28 backport/49232/stable29 backport/49232/stable30 backport/49237/stable30 backport/49259/stable30 backport/49260/stable30 backport/49261/stable30 backport/49262/stable28 backport/49262/stable29 backport/49271/stable29 backport/49271/stable30 backport/49281/stable30 backport/49288/stable29 backport/49288/stable30 backport/49293/stable30 backport/49308/stable29 backport/49308/stable30 backport/49311/stable28 backport/49311/stable29 backport/49311/stable30 backport/49315/stable28 backport/49315/stable29 backport/49315/stable30 backport/49332/stable28 backport/49332/stable29 backport/49332/stable30 backport/49346/stable30 backport/49351/stable29 backport/49351/stable30 backport/49352/stable30 backport/49357/stable30 backport/49361/stable28 backport/49361/stable29 backport/49361/stable30 backport/49372/stable28 backport/49372/stable29 backport/49372/stable30 backport/49373/stable29 backport/49380/stable30 backport/49384/master backport/49398/stable29 backport/49398/stable30 backport/49432/master backport/49432/stable30 backport/49434/stable30 backport/49440/stable29 backport/49440/stable30 backport/49440/stable31 backport/49442/stable28 backport/49442/stable29 backport/49442/stable30 backport/49451/stable29 backport/49451/stable30 backport/49454/stable28 backport/49454/stable29 backport/49454/stable30 backport/49459/stable30 backport/49464/stable28 backport/49464/stable29 backport/49464/stable30 backport/49476/stable28 backport/49476/stable29 backport/49476/stable30 backport/49477/stable30 backport/49489/stable30 backport/49493/stable28 backport/49493/stable29 backport/49494/stable29 backport/49494/stable29-squashed backport/49494/stable30 backport/49503/stable28 backport/49503/stable29 backport/49503/stable30 backport/49528/stable28 backport/49528/stable29 backport/49528/stable30 backport/49551/stable29 backport/49551/stable30 backport/49552/stable28 backport/49552/stable29 backport/49552/stable30 backport/49552/stable31 backport/49557/stable30 backport/49569/stable29 backport/49569/stable30 backport/49581/stable28 backport/49581/stable30 backport/49587/stable30 backport/49588/stable29 backport/49588/stable30 backport/49602/stable28 backport/49602/stable29 backport/49602/stable30 backport/49629/stable29 backport/49631/stable29 backport/49639/stable28 backport/49639/stable29 backport/49639/stable30 backport/49639/stable31 backport/49645/stable31 backport/49677/stable30 backport/49681/stable29 backport/49681/stable30 backport/49685/stable28 backport/49685/stable29 backport/49685/stable30 backport/49693/stable29 backport/49693/stable30 backport/49694/stable30 backport/49695/stable29 backport/49695/stable30 backport/49746/stable30 backport/49747/stable27 backport/49747/stable28 backport/49747/stable29 backport/49747/stable30 backport/49761/stable29 backport/49761/stable30 backport/49799/stable28 backport/49799/stable29 backport/49799/stable30 backport/49801/stable30 backport/49803/stable29 backport/49803/stable30 backport/49815/stable28 backport/49815/stable29 backport/49820/stable30 backport/49822/stable28 backport/49822/stable29 backport/49832/stable30 backport/49839/stable29 backport/49839/stable30 backport/49843/stable29 backport/49843/stable30 backport/49847/stable30 backport/49852/stable30 backport/49880/stable28 backport/49880/stable30 backport/49882/stable28 backport/49882/stable29 backport/49885/stable30 backport/49887/stable29 backport/49887/stable30 backport/49895/stable29 backport/49895/stable30 backport/49898/stable30 backport/49900/stable29 backport/49903/stable29 backport/49903/stable30 backport/49917/stable30 backport/49927/stable28 backport/49962/stable29 backport/49962/stable30 backport/49966/stable29 backport/49966/stable30 backport/49973/master backport/49974/stable29 backport/49974/stable30 backport/49988/stable29 backport/49988/stable30 backport/50017/stable29 backport/50017/stable30 backport/50025/stable29 backport/50025/stable30 backport/50026/stable29 backport/50026/stable30 backport/50034/stable29 backport/50034/stable30 backport/50035/stable28 backport/50035/stable29 backport/50035/stable30 backport/50046/stable29 backport/50046/stable30 backport/50053/stable29 backport/50053/stable30 backport/50053/stable31 backport/50070/stable29 backport/50070/stable30 backport/50076/stable29 backport/50076/stable30 backport/50077/stable29 backport/50077/stable30 backport/50081/stable31 backport/50083/stable30 backport/50111/stable29 backport/50111/stable30 backport/50113/stable29 backport/50113/stable30 backport/50121/master backport/50121/stable30 backport/50121/stable31 backport/50123/master backport/50123/stable29 backport/50123/stable30 backport/50128/stable29 backport/50128/stable30 backport/50129/stable30 backport/50129/stable31 backport/50152/stable29 backport/50152/stable30 backport/50154/stable29 backport/50157/stable30 backport/50157/stable31 backport/50161/stable29 backport/50161/stable30 backport/50177/stable29 backport/50177/stable30 backport/50179/stable30 backport/50187/stable30 backport/50192/stable28 backport/50192/stable29 backport/50192/stable30 backport/50193/stable29 backport/50193/stable30 backport/50193/stable31 backport/50220/stable30 backport/50234/stable30 backport/50234/stable31 backport/50237/stable29 backport/50241/stable30 backport/50244/stable31 backport/50260/stable30 backport/50260/stable31 backport/50270/stable26 backport/50270/stable27 backport/50270/stable28 backport/50270/stable28-follow-up backport/50270/stable29 backport/50270/stable30 backport/50270/stable31 backport/50273/stable29 backport/50273/stable30 backport/50273/stable31 backport/50281/stable31 backport/50282/stable31 backport/50284/stable30 backport/50284/stable31 backport/50292/stable29 backport/50292/stable30 backport/50293/stable29 backport/50293/stable30 backport/50293/stable31 backport/50298/stable29 backport/50298/stable30 backport/50298/stable31 backport/50299/stable28 backport/50299/stable29 backport/50299/stable30 backport/50299/stable31 backport/50319/stable29 backport/50319/stable30 backport/50324/stable30 backport/50324/stable31 backport/50330/stable30 backport/50330/stable31 backport/50331/stable30 backport/50331/stable31 backport/50333/stable29 backport/50353/stable29 backport/50353/stable30 backport/50353/stable31 backport/50362/stable31 backport/50364/stable31 backport/50366/stable31 backport/50368/stable31 backport/50369/stable29 backport/50369/stable30 backport/50369/stable31 backport/50389/stable31 backport/50394/stable30 backport/50394/stable31 backport/50398/stable29 backport/50398/stable30 backport/50424/stable29 backport/50424/stable30 backport/50424/stable31 backport/50426/stable31 backport/50430/stable29 backport/50430/stable30 backport/50436/stable31 backport/50437/stable29 backport/50446/stable31 backport/50447/stable30 backport/50455/stable30 backport/50455/stable31 backport/50464/stable30 backport/50464/stable31 backport/50465/stable29 backport/50465/stable30 backport/50465/stable31 backport/50480/stable29 backport/50490/stable30 backport/50490/stable31 backport/50494/stable29 backport/50494/stable30 backport/50494/stable31 backport/50498/stable31 backport/50501/stable31 backport/50503/stable30 backport/50503/stable31 backport/50514/stable29 backport/50514/stable30 backport/50514/stable31 backport/50515/stable29 backport/50515/stable30 backport/50515/stable31 backport/50519/stable29 backport/50519/stable30 backport/50519/stable31 backport/50524/stable30 backport/50524/stable31 backport/50530/stable29 backport/50530/stable30 backport/50530/stable31 backport/50540/stable30 backport/50540/stable31 backport/50542/stable29 backport/50542/stable30 backport/50542/stable31 backport/50549/stable29 backport/50550/stable30 backport/50550/stable31 backport/50567/stable30 backport/50567/stable31 backport/50576/stable31 backport/50582/stable30 backport/50582/stable31 backport/50592/stable31 backport/50602/stable30 backport/50602/stable31 backport/50626/stable29 backport/50635/stable31 backport/50640/stable30 backport/50640/stable31 backport/50642/stable29 backport/50642/stable30 backport/50642/stable31 backport/50645/stable31 backport/50655/stable29 backport/50655/stable30 backport/50655/stable31 backport/50657/stable30 backport/50657/stable31 backport/50660/stable29 backport/50660/stable30 backport/50660/stable31 backport/50663/stable28 backport/50663/stable29 backport/50663/stable30 backport/50663/stable31 backport/50666/stable27 backport/50666/stable28 backport/50666/stable29 backport/50666/stable30 backport/50666/stable31 backport/50669/stable30 backport/50669/stable31 backport/50678/stable29 backport/50678/stable30 backport/50678/stable31 backport/50680/stable31 backport/50691/stable29 backport/50692/stable31 backport/50693/stable28 backport/50697/stable31 backport/50735/stable30 backport/50735/stable31 backport/50739/stable31 backport/50768/stable31 backport/50769/stable29 backport/50769/stable30 backport/50769/stable31 backport/50778/stable29 backport/50781/stable29 backport/50781/stable30 backport/50781/stable31 backport/50783/stable30 backport/50783/stable31 backport/50784/stable30 backport/50784/stable31 backport/50794/stable31 backport/50798/stable29 backport/50798/stable31 backport/50807/stable29 backport/50807/stable30 backport/50807/stable31 backport/50809/stable29 backport/50809/stable30 backport/50809/stable31 backport/50814/stable29 backport/50814/stable30 backport/50814/stable31 backport/50816/stable30 backport/50816/stable31 backport/50820/stable29 backport/50820/stable30 backport/50820/stable31 backport/50852/stable30 backport/50858/stable29 backport/50858/stable30 backport/50858/stable31 backport/50860/stable30 backport/50860/stable31 backport/50873/stable31 backport/50874/stable29 backport/50874/stable30 backport/50874/stable31 backport/50878/stable30 backport/50881/stable30 backport/50881/stable31 backport/50896/stable29 backport/50896/stable30 backport/50896/stable31 backport/50903/stable29 backport/50903/stable30 backport/50903/stable31 backport/50904/stable31 backport/50905/stable30 backport/50905/stable31 backport/50910/stable29 backport/50910/stable30 backport/50910/stable31 backport/50918/stable30 backport/50918/stable31 backport/50919/stable30 backport/50919/stable31 backport/50920/stable31 backport/50922/stable29 backport/50922/stable31 backport/50930/stable30 backport/50942/stable31 backport/50943/stable30 backport/50949/stable29 backport/50949/stable30 backport/50949/stable31 backport/50956/stable29 backport/50956/stable30 backport/50956/stable31 backport/50958/stable29 backport/50958/stable30 backport/50958/stable31 backport/50970/stable31 backport/50979/stable31 backport/50985/stable30 backport/50985/stable31 backport/50987/stable31 backport/50989/stable28 backport/50989/stable29 backport/50989/stable30 backport/50989/stable31 backport/50992/stable31 backport/51000/stable29 backport/51000/stable30 backport/51000/stable31 backport/51010-51839/stable29 backport/51010/stable29 backport/51010/stable30 backport/51010/stable31 backport/51019/stable26 backport/51019/stable27 backport/51019/stable28 backport/51019/stable29 backport/51019/stable30 backport/51019/stable31 backport/51020/stable29 backport/51020/stable30 backport/51020/stable31 backport/51031/stable31 backport/51049/stable29 backport/51049/stable30 backport/51049/stable31 backport/51050/stable28 backport/51050/stable29 backport/51050/stable30 backport/51050/stable31 backport/51051/stable25 backport/51051/stable26 backport/51051/stable27 backport/51051/stable28 backport/51051/stable29 backport/51051/stable30 backport/51051/stable31 backport/51069/stable31 backport/51071/stable30 backport/51071/stable31 backport/51073/stable29 backport/51073/stable30 backport/51073/stable31 backport/51077/stable31 backport/51079/stable31 backport/51081/stable30 backport/51081/stable31 backport/51082/stable31 backport/51108/stable29 backport/51108/stable30 backport/51108/stable31 backport/51126/stable31 backport/51130/stable28 backport/51130/stable29 backport/51130/stable30 backport/51130/stable31 backport/51131/stable30 backport/51131/stable31 backport/51132/stable30 backport/51142/stable30 backport/51142/stable31 backport/51144/stable29 backport/51144/stable30 backport/51144/stable31 backport/51146/stable29 backport/51146/stable30 backport/51146/stable31 backport/51148/stable30 backport/51148/stable31 backport/51151/stable31 backport/51152/stable31 backport/51173/master backport/51194/stable26 backport/51194/stable27 backport/51194/stable28 backport/51194/stable29 backport/51194/stable30 backport/51194/stable31 backport/51211/stable31 backport/51216/stable29 backport/51216/stable30 backport/51216/stable31 backport/51218/stable31 backport/51229/stable30 backport/51229/stable31 backport/51239/stable31 backport/51243/stable30 backport/51250/stable29 backport/51250/stable30 backport/51250/stable31 backport/51256/stable28 backport/51256/stable29 backport/51256/stable30 backport/51258/stable30 backport/51258/stable31 backport/51259/stable28 backport/51259/stable29 backport/51259/stable30 backport/51259/stable31 backport/51260/master backport/51280/stable26 backport/51280/stable27 backport/51280/stable28 backport/51280/stable29 backport/51281/stable29 backport/51285/stable29 backport/51287/stable31 backport/51302/stable30 backport/51302/stable31 backport/51309/stable31 backport/51310/stable31 backport/51320/stable29 backport/51320/stable30 backport/51320/stable31 backport/51333/stable29 backport/51333/stable30 backport/51333/stable31 backport/51336/stable30 backport/51336/stable31 backport/51361/stable26 backport/51361/stable27 backport/51361/stable28 backport/51361/stable29 backport/51361/stable30 backport/51361/stable31 backport/51364/stable29 backport/51364/stable30 backport/51364/stable31 backport/51365/stable31 backport/51378/stable31 backport/51379/stable30 backport/51379/stable31 backport/51380/stable29 backport/51380/stable30 backport/51380/stable31 backport/51384/stable29 backport/51384/stable30 backport/51384/stable31 backport/51389/stable29 backport/51389/stable30 backport/51389/stable31 backport/51394/stable31 backport/51404/stable29 backport/51404/stable30 backport/51405/stable29 backport/51405/stable30 backport/51407/stable22 backport/51407/stable23 backport/51407/stable24 backport/51407/stable25 backport/51407/stable26 backport/51407/stable27 backport/51407/stable28 backport/51418/stable30 backport/51418/stable31 backport/51431/stable30 backport/51431/stable31 backport/51433/stable29 backport/51433/stable30 backport/51433/stable31 backport/51434/stable29 backport/51434/stable30 backport/51434/stable31 backport/51438/stable29 backport/51438/stable30 backport/51438/stable31 generated by cgit v1.2.3 (git 2.39.1) at 2025-07-19 17:56:28 +0000