You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AWTRenderer.java 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. /*
  2. * $Id$
  3. * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
  4. * For details on use and redistribution please refer to the
  5. * LICENSE file included with these sources.
  6. */
  7. package org.apache.fop.render.awt;
  8. /*
  9. * originally contributed by
  10. * Juergen Verwohlt: Juergen.Verwohlt@jCatalog.com,
  11. * Rainer Steinkuhle: Rainer.Steinkuhle@jCatalog.com,
  12. * Stanislav Gorkhover: Stanislav.Gorkhover@jCatalog.com
  13. */
  14. import org.apache.fop.layout.*;
  15. import org.apache.fop.layout.inline.*;
  16. import org.apache.fop.datatypes.*;
  17. import org.apache.fop.image.*;
  18. import org.apache.fop.svg.*;
  19. import org.apache.fop.render.pdf.*;
  20. import org.apache.fop.viewer.*;
  21. import org.apache.fop.apps.*;
  22. import org.w3c.dom.svg.*;
  23. import org.w3c.dom.Document;
  24. import org.w3c.dom.Element;
  25. import org.apache.batik.bridge.*;
  26. import org.apache.batik.swing.svg.*;
  27. import org.apache.batik.swing.gvt.*;
  28. import org.apache.batik.gvt.*;
  29. import org.apache.batik.gvt.renderer.*;
  30. import org.apache.batik.gvt.filter.*;
  31. import org.apache.batik.gvt.event.*;
  32. import java.awt.*;
  33. import java.awt.Image;
  34. import java.awt.image.*;
  35. import java.awt.geom.*;
  36. import java.awt.font.*;
  37. import java.util.*;
  38. import java.net.URL;
  39. import java.net.MalformedURLException;
  40. import java.io.*;
  41. import java.beans.*;
  42. import javax.swing.*;
  43. import java.awt.print.*;
  44. import java.awt.image.BufferedImage;
  45. import java.text.*;
  46. import org.apache.fop.render.AbstractRenderer;
  47. /**
  48. */
  49. public class AWTRenderer extends AbstractRenderer implements Printable, Pageable {
  50. protected int pageWidth = 0;
  51. protected int pageHeight = 0;
  52. protected double scaleFactor = 100.0;
  53. protected int pageNumber = 0;
  54. protected Vector pageList = new Vector();
  55. protected ProgressListener progressListener = null;
  56. protected Translator res = null;
  57. protected Hashtable fontNames = new Hashtable();
  58. protected Hashtable fontStyles = new Hashtable();
  59. protected Color saveColor = null;
  60. protected IDReferences idReferences = null;
  61. /**
  62. * Image Object and Graphics Object. The Graphics Object is the Graphics
  63. * object that is contained withing the Image Object.
  64. */
  65. private BufferedImage pageImage = null;
  66. private Graphics2D graphics = null;
  67. /**
  68. * The current (internal) font name
  69. */
  70. protected String currentFontName;
  71. /**
  72. * The current font size in millipoints
  73. */
  74. protected int currentFontSize;
  75. /**
  76. * The current colour's red, green and blue component
  77. */
  78. protected float currentRed = 0;
  79. protected float currentGreen = 0;
  80. protected float currentBlue = 0;
  81. /**
  82. * The parent component, used to set up the font.
  83. * This is needed as FontSetup needs a live AWT component
  84. * in order to generate valid font measures.
  85. */
  86. protected Component parent;
  87. public AWTRenderer(Translator aRes) {
  88. res = aRes;
  89. }
  90. public void setProducer(String producer) {
  91. }
  92. public int getPageCount() {
  93. return 0;
  94. }
  95. public void setupFontInfo(FontInfo fontInfo) {
  96. // create a temp Image to test font metrics on
  97. BufferedImage fontImage =
  98. new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
  99. FontSetup.setup(fontInfo, fontImage.createGraphics());
  100. }
  101. /**
  102. * Sets parent component which is used to set up the font.
  103. * This is needed as FontSetup needs a live AWT component
  104. * in order to generate valid font measures.
  105. * @param parent the live AWT component reference
  106. */
  107. public void setComponent(Component parent) {
  108. this.parent = parent;
  109. }
  110. public int getPageNumber() {
  111. return pageNumber;
  112. }
  113. public void setPageNumber(int aValue) {
  114. pageNumber = aValue;
  115. }
  116. public void setScaleFactor(double newScaleFactor) {
  117. scaleFactor = newScaleFactor;
  118. }
  119. public double getScaleFactor() {
  120. return scaleFactor;
  121. }
  122. public BufferedImage getLastRenderedPage() {
  123. return pageImage;
  124. }
  125. public void startRenderer(OutputStream out)
  126. throws IOException {
  127. }
  128. public void stopRenderer()
  129. throws IOException {
  130. }
  131. // Printable Interface
  132. public PageFormat getPageFormat(int pos) {
  133. return null;
  134. }
  135. public Printable getPrintable(int pos) {
  136. return null;
  137. }
  138. public int getNumberOfPages() {
  139. return 0;
  140. }
  141. public int print(Graphics g, PageFormat format, int pos) {
  142. return 0;
  143. }
  144. }