You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Fernando López Carballeda <fe...@lopez.org> on 2000/12/05 22:15:14 UTC

First step.

Hi,

I'm a beginner in FOP and I download the fop-0_15_0-forBeginners.zip file.
Now I'm trying to build my first PDF. But I obtain severals warnings and
errors:

file to render: fop/docs/examples/fo/images.fo

I'm interesting in know why I have "WARNING: Unknown formatting object"


using renderer org.apache.fop.render.pdf.PDFRenderer
using element mapping org.apache.fop.fo.StandardElementMapping
using element mapping org.apache.fop.svg.SVGElementMapping
building formatting object tree
WARNING: Unknown value for text-align: center
WARNING: Unknown formatting object
http://www.w3.org/1999/XSL/Format^page-sequence-master
WARNING: Unknown formatting object
http://www.w3.org/1999/XSL/Format^repeatable-page-master-alternatives
WARNING: Unknown formatting object
http://www.w3.org/1999/XSL/Format^conditional-page-master-reference
WARNING: this version of FOP only supports static-content in region-before
and region-after
WARNING: Unknown value for text-align-last: center
WARNING: Unknown formatting object
http://www.w3.org/1999/XSL/Format^external-graphic
WARNING: this version of FOP only supports static-content in region-before
and region-after
WARNING: Unknown value for text-align-last: center
setting up fonts
formatting FOs into areas
Error en la generación del xml:fo :

org.apache.fop.apps.FOPException: page-sequence is missing an
sequence-specification
org.apache.fop.apps.FOPException: page-sequence is missing an
sequence-specification
	java.lang.Throwable(java.lang.String)
	java.lang.Exception(java.lang.String)
	org.apache.fop.apps.FOPException(java.lang.String)
	org.apache.fop.layout.Page
org.apache.fop.fo.pagination.PageSequence.makePage(org.apache.fop.layout.Are
aTree)
	void
org.apache.fop.fo.pagination.PageSequence.format(org.apache.fop.layout.AreaT
ree)
	void
org.apache.fop.fo.pagination.Root.format(org.apache.fop.layout.AreaTree)
	void org.apache.fop.fo.FOTreeBuilder.format(org.apache.fop.layout.AreaTree)
	void org.apache.fop.apps.Driver.format()
	void Main.FOPXMLDocument(oracle.xml.parser.v2.XMLDocument, java.io.Writer)
	void Main.main(java.lang.String [])

I use the next code(Main.java):

import oracle.xml.parser.v2.XMLDocument;
import oracle.xml.parser.v2.DOMParser;

import java.net.URL;

import java.io.Writer;
import java.io.FileWriter;
import java.io.PrintWriter;

import org.apache.fop.apps.Version;
import org.apache.fop.apps.Driver;

import org.xml.sax.Parser;

class Main {
/**
 * Comentario de constructor Main.
 */
public Main() {
	super();
}
/**
 * Este método lee un fichero XML del sistema de ficheros y lo carga como un
Documento DOM.
 * En caso de problemas envia la excepción al llamante.
 * Fecha de creación: (04/12/2000 19:58:42)
 * @return oracle.xml.parser.v2.XMLDocument
 * @param archivo java.lang.String
 * @exception java.lang.Exception Cualquier excepción generada.
 */
static XMLDocument DocumentFromFile(String archivo) throws Exception {

	try {
		DOMParser domParser = new DOMParser();
		domParser.setPreserveWhitespace(true);

		XMLDocument xml;

		URL xmlURL = new URL("file", null, archivo);

		domParser.parse(xmlURL);
		return domParser.getDocument();
	} catch (Exception e) {
		throw( e);
	}
}
/**
 * ------------- I copy this code from cocoon
 *
 * Este método realiza la renderización de un documento DOM a un fichero PDF
 * pero escribe la salida en un Writer.
 * En caso de problemas envia la excepción al llamante.
 * Fecha de creación: (04/12/2000 20:40:43)
 * @param archivo java.lang.String
 * @exception java.lang.Exception Cualquier excepción generada.
 */
static void FOPXMLDocument(XMLDocument xml, Writer writer) throws Exception
{
	/*
	 * Datos del parseador SAX de conversión xml:fo a PDF.
	 */
	String parserClassName = "org.apache.xerces.parsers.SAXParser";

	try {
		String version = Version.getVersion();

	    Parser saxParser = (Parser)
Class.forName(parserClassName).newInstance();

		Driver driver = new Driver();
		driver.setRenderer("org.apache.fop.render.pdf.PDFRenderer", version);
		driver.addElementMapping("org.apache.fop.fo.StandardElementMapping");
		driver.addElementMapping("org.apache.fop.svg.SVGElementMapping");
		//
driver.addPropertyList("org.apache.fop.fo.StandardPropertyListMapping");
	    // driver.addPropertyList("org.apache.fop.svg.SVGPropertyListMapping");
		driver.setWriter(new PrintWriter(writer));
		driver.buildFOTree(xml);
		driver.format();
		driver.render();
	} catch (Exception e) {
		throw( e);
	}
}
/**
 * Prueba que carga un documento FO desde disco y lo formatea a PDF.
 * @param args una matriz de argumentos de línea de mandatos
 */
public static void main(String[] args) {

	String fileDoc = "fop/docs/examples/fo/images.fo";
	String filePDF = "test.pdf";

	try {
		System.out.println( "Cargo el documento XML a transformar.");
		// Cargo el documento XML a transformar.
		XMLDocument xml = DocumentFromFile( fileDoc);

		FileWriter outFile = new FileWriter(filePDF);

		FOPXMLDocument(xml,outFile);

		outFile.close();

	} catch (Exception e) {
		System.out.println("Error en la generación del xml:fo
:\n\r"+e.toString());
		e.printStackTrace( System.out);

		System.exit(1);
	}

	System.exit (0);
}
}

Thanks in advance,
Fernando López Carballeda