001: /*
002: * Copyright 2005 by 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:
048: package com.lowagie.text.pdf;
049:
050: import com.lowagie.text.DocumentException;
051: import com.lowagie.text.Image;
052:
053: /**
054: * The content where Type3 glyphs are written to.
055: */
056: public class Type3Glyph extends PdfContentByte {
057:
058: private PageResources pageResources;
059: private boolean colorized;
060:
061: private Type3Glyph() {
062: super (null);
063: }
064:
065: Type3Glyph(PdfWriter writer, PageResources pageResources, float wx,
066: float llx, float lly, float urx, float ury,
067: boolean colorized) {
068: super (writer);
069: this .pageResources = pageResources;
070: this .colorized = colorized;
071: if (colorized) {
072: content.append(wx).append(" 0 d0\n");
073: } else {
074: content.append(wx).append(" 0 ").append(llx).append(' ')
075: .append(lly).append(' ').append(urx).append(' ')
076: .append(ury).append(" d1\n");
077: }
078: }
079:
080: PageResources getPageResources() {
081: return pageResources;
082: }
083:
084: public void addImage(Image image, float a, float b, float c,
085: float d, float e, float f, boolean inlineImage)
086: throws DocumentException {
087: if (!colorized
088: && (!image.isMask() || !(image.getBpc() == 1 || image
089: .getBpc() > 0xff)))
090: throw new DocumentException(
091: "Not colorized Typed3 fonts only accept mask images.");
092: super .addImage(image, a, b, c, d, e, f, inlineImage);
093: }
094:
095: public PdfContentByte getDuplicate() {
096: Type3Glyph dup = new Type3Glyph();
097: dup.writer = writer;
098: dup.pdf = pdf;
099: dup.pageResources = pageResources;
100: dup.colorized = colorized;
101: return dup;
102: }
103:
104: }
|