aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/apache/fop/pdf/PDFState.java
diff options
context:
space:
mode:
authorKeiron Liddle <keiron@apache.org>2001-10-22 09:30:33 +0000
committerKeiron Liddle <keiron@apache.org>2001-10-22 09:30:33 +0000
commit52e85df344713f452e72db2232f1430747c88b24 (patch)
tree561246672d0d344fcfe95daa644080753dd343df /src/org/apache/fop/pdf/PDFState.java
parent7ae7d602161bd83182e064c81e4a79968b7ee0cc (diff)
downloadxmlgraphics-fop-52e85df344713f452e72db2232f1430747c88b24.tar.gz
xmlgraphics-fop-52e85df344713f452e72db2232f1430747c88b24.zip
new area tree and rendering stuff
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@194519 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/org/apache/fop/pdf/PDFState.java')
-rw-r--r--src/org/apache/fop/pdf/PDFState.java90
1 files changed, 90 insertions, 0 deletions
diff --git a/src/org/apache/fop/pdf/PDFState.java b/src/org/apache/fop/pdf/PDFState.java
new file mode 100644
index 000000000..add7d7aeb
--- /dev/null
+++ b/src/org/apache/fop/pdf/PDFState.java
@@ -0,0 +1,90 @@
+/*
+ * $Id$
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources.
+ */
+
+package org.apache.fop.pdf;
+
+import java.awt.Shape;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * This keeps information about the current state when writing to pdf.
+ * It allows for creating new graphics states with the q operator.
+ *
+ * When setting the state for pdf there are three possible ways of
+ * handling the situation.
+ * The values can be set to override previous or default values.
+ * A new state can be added and then the values set.
+ * The current state can be popped and values will return to a
+ * previous state then the necessary values can be overridden.
+ * The current transform behaves differently to other values as the
+ * matrix is combined with the current resolved value.
+ * It is impossible to optimise the result without analysing the all
+ * the possible combinations after completing.
+ */
+public class PDFState {
+ private final static String COLOR = "color";
+ private final static String BACKCOLOR = "backcolor";
+ private final static String PATTERN = "pattern";
+ private final static String BACKPATTERN = "backpattern";
+ private final static String LINECAP = "lineCap";
+ private final static String LINEJOIN = "lineJoin";
+ private final static String LINEWIDTH = "lineWidth";
+ private final static String MITERLIMIT = "miterLimit";
+ private final static String TEXT = "text";
+ private final static String DASHOFFSET = "dashOffset";
+ private final static String DASHARRAY = "dashArray";
+ private final static String TRANSFORM = "transform";
+ private final static String FONTSIZE = "fontSize";
+ private final static String FONTNAME = "fontName";
+ private final static String CLIP = "clip";
+
+ PDFColor color = new PDFColor(0, 0, 0);
+ PDFColor backcolor = new PDFColor(255, 255, 255);
+ PDFPattern pattern = null;
+ PDFPattern backPattern = null;
+ int lineCap = 0;
+ int lineJoin = 0;
+ float lineWidth = 1;
+ float miterLimit = 0;
+ boolean text = false;
+ int dashOffset = 0;
+ int[] dashArray = new int[0];
+ double[] transform = new double[]{1, 0, 0, 1, 0, 0};
+ float fontSize = 0;
+ String fontName = "";
+ Shape clip = null;
+
+ ArrayList stateStack = new ArrayList();
+
+ public PDFState() {
+
+ }
+
+ // this call should be used when the q operator is used
+ // so that the state is known when popped
+ public void push() {
+ HashMap changedMap = new HashMap();
+
+ }
+
+ public void pop() {
+ if (getStackLevel() > 0) {
+ stateStack.remove(stateStack.size() - 1);
+ }
+ }
+
+ public int getStackLevel() {
+ return stateStack.size();
+ }
+
+ public boolean setLineDash(int[] array, int offset) {
+ return false;
+ }
+
+}
+