123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
- /* $Id$ */
-
- package org.apache.fop.apps;
-
- import java.util.Map;
-
- import org.w3c.dom.Element;
-
- import org.apache.fop.apps.FopConfBuilder.RendererConfBuilder;
- import org.apache.fop.render.afp.AFPRendererConfig;
- import org.apache.fop.render.afp.AFPRendererOption;
- import org.apache.fop.render.afp.AFPShadingMode;
-
- import static org.apache.fop.render.afp.AFPRendererConfig.ImagesModeOptions.MODE_GRAYSCALE;
- import static org.apache.fop.render.afp.AFPRendererOption.DEFAULT_RESOURCE_LEVELS;
- import static org.apache.fop.render.afp.AFPRendererOption.IMAGES;
- import static org.apache.fop.render.afp.AFPRendererOption.IMAGES_DITHERING_QUALITY;
- import static org.apache.fop.render.afp.AFPRendererOption.IMAGES_FS45;
- import static org.apache.fop.render.afp.AFPRendererOption.IMAGES_JPEG;
- import static org.apache.fop.render.afp.AFPRendererOption.IMAGES_MAPPING_OPTION;
- import static org.apache.fop.render.afp.AFPRendererOption.IMAGES_MODE;
- import static org.apache.fop.render.afp.AFPRendererOption.IMAGES_NATIVE;
- import static org.apache.fop.render.afp.AFPRendererOption.IMAGES_WRAP_PSEG;
- import static org.apache.fop.render.afp.AFPRendererOption.JPEG_ALLOW_JPEG_EMBEDDING;
- import static org.apache.fop.render.afp.AFPRendererOption.JPEG_BITMAP_ENCODING_QUALITY;
- import static org.apache.fop.render.afp.AFPRendererOption.LINE_WIDTH_CORRECTION;
- import static org.apache.fop.render.afp.AFPRendererOption.RENDERER_RESOLUTION;
- import static org.apache.fop.render.afp.AFPRendererOption.RESOURCE_GROUP_URI;
- import static org.apache.fop.render.afp.AFPRendererOption.SHADING;
-
- /**
- * A config builder specific to a particular renderer for specific MIME type.
- */
- public final class AFPRendererConfBuilder extends RendererConfBuilder {
-
- private ImagesBuilder images;
-
- public AFPRendererConfBuilder() {
- super(MimeConstants.MIME_AFP);
- }
-
- private AFPRendererConfBuilder createTextElement(AFPRendererOption option, String value) {
- createTextElement(option.getName(), value);
- return this;
- }
-
- public AFPRendererConfBuilder setShading(AFPShadingMode mode) {
- return createTextElement(SHADING, mode.getName());
- }
-
- public AFPRendererConfBuilder setRenderingResolution(int res) {
- return createTextElement(RENDERER_RESOLUTION, String.valueOf(res));
- }
-
- public AFPRendererConfBuilder setLineWidthCorrection(float value) {
- return createTextElement(LINE_WIDTH_CORRECTION, String.valueOf(value));
- }
-
- public ImagesBuilder startImages(AFPRendererConfig.ImagesModeOptions mode) {
- images = new ImagesBuilder(mode);
- return images;
- }
-
- public ImagesBuilder startImages() {
- return startImages(MODE_GRAYSCALE);
- }
-
- public AFPRendererConfBuilder endImages() {
- images = null;
- return this;
- }
-
- public AFPRendererConfBuilder setResourceGroupUri(String uri) {
- createTextElement(RESOURCE_GROUP_URI, uri);
- return this;
- }
-
- public AFPRendererConfBuilder setDefaultResourceLevels(Map<String, String> levels) {
- Element e = createElement(DEFAULT_RESOURCE_LEVELS.getName());
- for (Map.Entry<String, String> stringStringEntry : levels.entrySet()) {
- e.setAttribute(stringStringEntry.getKey(), stringStringEntry.getValue());
- }
- return this;
- }
-
- public final class ImagesBuilder {
-
- private final Element el;
-
- private Element jpeg;
-
- private ImagesBuilder(AFPRendererConfig.ImagesModeOptions mode) {
- el = createElement(IMAGES.getName());
- setAttribute(IMAGES_MODE, mode.getName());
- }
-
- public ImagesBuilder setModeAttribute(String name, String value) {
- return setAttribute(name, value);
- }
-
- public ImagesBuilder setAllowJpegEmbedding(boolean value) {
- getJpeg().setAttribute(JPEG_ALLOW_JPEG_EMBEDDING.getName(), String.valueOf(value));
- return this;
- }
-
- public ImagesBuilder setBitmapEncodingQuality(float value) {
- getJpeg().setAttribute(JPEG_BITMAP_ENCODING_QUALITY.getName(), String.valueOf(value));
- return this;
- }
-
- public ImagesBuilder setDitheringQuality(String value) {
- return setAttribute(IMAGES_DITHERING_QUALITY, value);
- }
-
- public ImagesBuilder setDitheringQuality(float value) {
- return setAttribute(IMAGES_DITHERING_QUALITY, value);
- }
-
- public ImagesBuilder setFs45(boolean value) {
- return setAttribute(IMAGES_FS45, value);
- }
-
- public ImagesBuilder setMappingOption(String value) {
- return setAttribute(IMAGES_MAPPING_OPTION, value);
- }
-
- public ImagesBuilder setWrapPseg(boolean value) {
- return setAttribute(IMAGES_WRAP_PSEG, value);
- }
-
- public ImagesBuilder setNativeImageSupport(boolean value) {
- return setAttribute(IMAGES_NATIVE, value);
- }
-
- public AFPRendererConfBuilder endImages() {
- return AFPRendererConfBuilder.this.endImages();
- }
-
- private ImagesBuilder setAttribute(AFPRendererOption options, Object value) {
- return setAttribute(options.getName(), value);
- }
-
- private ImagesBuilder setAttribute(String name, Object value) {
- el.setAttribute(name, String.valueOf(value));
- return this;
- }
-
- private Element getJpeg() {
- if (jpeg == null) {
- jpeg = createElement(IMAGES_JPEG.getName(), el);
- }
- return jpeg;
- }
- }
- }
|