123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- /*
- * 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.pdf;
-
- import java.io.OutputStream;
- import java.util.Map;
-
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
-
- import org.apache.fop.configuration.Configuration;
- import org.apache.fop.fonts.FontInfo;
- import org.apache.fop.pdf.PDFDocument;
- import org.apache.fop.pdf.PDFPage;
- import org.apache.fop.pdf.PDFResourceContext;
- import org.apache.fop.render.AbstractGenericSVGHandler;
- import org.apache.fop.render.ImageHandlerUtil;
- import org.apache.fop.render.Renderer;
- import org.apache.fop.render.RendererContext;
- import org.apache.fop.render.RendererContextConstants;
-
- /**
- * PDF XML handler for SVG (uses Apache Batik).
- * This handler handles XML for foreign objects when rendering to PDF.
- * It renders SVG to the PDF document using the PDFGraphics2D.
- * The properties from the PDF renderer are subject to change.
- */
- public class PDFSVGHandler extends AbstractGenericSVGHandler
- implements PDFRendererContextConstants {
-
- /** logging instance */
- private static Log log = LogFactory.getLog(PDFSVGHandler.class);
-
- /**
- * Get the pdf information from the render context.
- *
- * @param context the renderer context
- * @return the pdf information retrieved from the context
- */
- public static PDFInfo getPDFInfo(RendererContext context) {
- PDFInfo pdfi = new PDFInfo();
- pdfi.pdfDoc = (PDFDocument)context.getProperty(PDF_DOCUMENT);
- pdfi.outputStream = (OutputStream)context.getProperty(OUTPUT_STREAM);
- //pdfi.pdfState = (PDFState)context.getProperty(PDF_STATE);
- pdfi.pdfPage = (PDFPage)context.getProperty(PDF_PAGE);
- pdfi.pdfContext = (PDFResourceContext)context.getProperty(PDF_CONTEXT);
- //pdfi.currentStream = (PDFStream)context.getProperty(PDF_STREAM);
- pdfi.width = (Integer) context.getProperty(WIDTH);
- pdfi.height = (Integer) context.getProperty(HEIGHT);
- pdfi.fi = (FontInfo)context.getProperty(PDF_FONT_INFO);
- pdfi.currentFontName = (String)context.getProperty(PDF_FONT_NAME);
- pdfi.currentFontSize = (Integer) context.getProperty(PDF_FONT_SIZE);
- pdfi.currentXPosition = (Integer) context.getProperty(XPOS);
- pdfi.currentYPosition = (Integer) context.getProperty(YPOS);
- pdfi.cfg = (Configuration)context.getProperty(HANDLER_CONFIGURATION);
- Map foreign = (Map)context.getProperty(RendererContextConstants.FOREIGN_ATTRIBUTES);
- pdfi.paintAsBitmap = ImageHandlerUtil.isConversionModeBitmap(foreign);
- return pdfi;
- }
-
- /**
- * PDF information structure for drawing the XML document.
- */
- public static class PDFInfo {
- /** see PDF_DOCUMENT */
- public PDFDocument pdfDoc;
- /** see OUTPUT_STREAM */
- public OutputStream outputStream;
- /** see PDF_PAGE */
- public PDFPage pdfPage;
- /** see PDF_CONTEXT */
- public PDFResourceContext pdfContext;
- /** see PDF_STREAM */
- //public PDFStream currentStream;
- /** see PDF_WIDTH */
- public int width;
- /** see PDF_HEIGHT */
- public int height;
- /** see PDF_FONT_INFO */
- public FontInfo fi;
- /** see PDF_FONT_NAME */
- public String currentFontName;
- /** see PDF_FONT_SIZE */
- public int currentFontSize;
- /** see PDF_XPOS */
- public int currentXPosition;
- /** see PDF_YPOS */
- public int currentYPosition;
- /** see PDF_HANDLER_CONFIGURATION */
- public Configuration cfg;
- /** true if SVG should be rendered as a bitmap instead of natively */
- public boolean paintAsBitmap;
- }
-
- /** {@inheritDoc} */
- public boolean supportsRenderer(Renderer renderer) {
- return false;
- }
- }
|