blob: b20d12895003a82234a5f7b8ac67ec362e438bc9 [file] [log] [blame]
/*
* 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.render.afp;
import org.apache.fop.afp.AFPGraphics2D;
import org.apache.fop.afp.AFPPaintingState;
import org.apache.fop.afp.AFPResourceInfo;
import org.apache.fop.afp.AFPResourceManager;
import org.apache.fop.configuration.Configuration;
import org.apache.fop.fonts.FontInfo;
/**
* AFP information structure for drawing the XML document.
*/
public final class AFPInfo {
/** see WIDTH */
private int width;
/** see HEIGHT */
private int height;
/** see XPOS */
private int x;
/** see YPOS */
private int y;
/** see HANDLER_CONFIGURATION */
private Configuration handlerConfiguration;
/** see AFP_FONT_INFO */
private FontInfo fontInfo;
/** See AFP_PAINTING_STATE */
private AFPPaintingState paintingState;
/** See AFP_RESOURCE_MANAGER */
private AFPResourceManager resourceManager;
/** See AFP_RESOURCE_INFO */
private AFPResourceInfo resourceInfo;
/** true if SVG should be rendered as a bitmap instead of natively */
private boolean paintAsBitmap;
/**
* Returns the width.
*
* @return the width
*/
public int getWidth() {
return width;
}
/**
* Sets the width.
*
* @param width The pageWidth to set
*/
public void setWidth(int width) {
this.width = width;
}
/**
* Returns the height.
*
* @return the height
*/
public int getHeight() {
return height;
}
/**
* Sets the height.
*
* @param height The height to set
*/
public void setHeight(int height) {
this.height = height;
}
/**
* Returns the handler configuration
*
* @return the handler configuration
*/
public Configuration getHandlerConfiguration() {
return this.handlerConfiguration;
}
/**
* Sets the handler configuration
*
* @param cfg the handler configuration
*/
public void setHandlerConfiguration(Configuration cfg) {
this.handlerConfiguration = cfg;
}
/**
* Return the font info
*
* @return the font info
*/
public FontInfo getFontInfo() {
return this.fontInfo;
}
/**
* Returns the current AFP state
*
* @return the current AFP state
*/
public AFPPaintingState getPaintingState() {
return this.paintingState;
}
/**
* Returns the AFPResourceManager
*
* @return the AFPResourceManager
*/
public AFPResourceManager getResourceManager() {
return this.resourceManager;
}
/**
* Returns true if supports color
*
* @return true if supports color
*/
public boolean isColorSupported() {
return getPaintingState().isColorImages();
}
/**
* Returns the current x position coordinate
*
* @return the current x position coordinate
*/
protected int getX() {
return x;
}
/**
* Returns the current y position coordinate
*
* @return the current y position coordinate
*/
protected int getY() {
return y;
}
/**
* Returns the resolution
*
* @return the resolution
*/
protected int getResolution() {
return getPaintingState().getResolution();
}
/**
* Returns the number of bits per pixel to use
* @return the number of bits per pixel to use
*/
protected int getBitsPerPixel() {
return getPaintingState().getBitsPerPixel();
}
/**
* Sets the current x position coordinate
*
* @param x the current x position coordinate
*/
protected void setX(int x) {
this.x = x;
}
/**
* Sets the current y position coordinate
*
* @param y the current y position coordinate
*/
protected void setY(int y) {
this.y = y;
}
/**
* Sets the current font info
*
* @param fontInfo the current font info
*/
protected void setFontInfo(FontInfo fontInfo) {
this.fontInfo = fontInfo;
}
/**
* Sets the AFP state
*
* @param paintingState the AFP state
*/
public void setPaintingState(AFPPaintingState paintingState) {
this.paintingState = paintingState;
}
/**
* Sets the AFPResourceManager
*
* @param resourceManager the AFPResourceManager
*/
public void setResourceManager(AFPResourceManager resourceManager) {
this.resourceManager = resourceManager;
}
/**
* Sets true if SVG should be rendered as a bitmap instead of natively
*
* @param b boolean value
*/
public void setPaintAsBitmap(boolean b) {
this.paintAsBitmap = b;
}
/**
* Returns true if SVG should be rendered as a bitmap instead of natively
*
* @return true if SVG should be rendered as a bitmap instead of natively
*/
public boolean paintAsBitmap() {
return this.paintAsBitmap;
}
/**
* Returns true if text should be stroked when painted
*
* @return true if text should be stroked when painted
*/
public boolean strokeText() {
boolean strokeText = false;
if (handlerConfiguration != null) {
strokeText
= handlerConfiguration.getChild("stroke-text", true).getValueAsBoolean(strokeText);
}
return strokeText;
}
/**
* Sets the resource information
*
* @param resourceInfo the resource information
*/
public void setResourceInfo(AFPResourceInfo resourceInfo) {
this.resourceInfo = resourceInfo;
}
/**
* Returns the resource information
*
* @return the resource information
*/
public AFPResourceInfo getResourceInfo() {
return resourceInfo;
}
/**
* Creates an AFPGraphics2D implementation
*
* @param textAsShapes true when text is painted as shapes
* @return a newly created AFPGraphics2D
*/
public AFPGraphics2D createGraphics2D(boolean textAsShapes) {
AFPGraphics2D g2d
= new AFPGraphics2D(
textAsShapes, paintingState, resourceManager, resourceInfo, fontInfo);
g2d.setGraphicContext(new org.apache.xmlgraphics.java2d.GraphicContext());
return g2d;
}
/** {@inheritDoc} */
public String toString() {
return "AFPInfo{width=" + width
+ ", height=" + height
+ ", x=" + x
+ ", y=" + y
+ ", cfg=" + handlerConfiguration
+ ", fontInfo=" + fontInfo
+ ", resourceManager=" + resourceManager
+ ", paintingState=" + paintingState
+ ", paintAsBitmap=" + paintAsBitmap
+ ", resourceInfo=" + resourceInfo
+ "}";
}
}