CPA-Мастер
Блог о заработке на партнёрских программах в CPA-сетях

Простейший пример составления документа PDF в FOP

Написал небольшой и несложный тестовый класс для демонстрации работы Apache FOP, который выдаёт PDF-файл с «Hello World!». Сам я немного тормозил при знакомстве с FOP и такой пример мне тогда бы здорово помог. Надеюсь, вам он поможет избежать таких трудностей.

Содержание файла FoTestClass:

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
import org.xml.sax.SAXException;

public class FoTestClass {
	public static void main(String[] args) {
		try {
			FopFactory fopFactory = FopFactory.newInstance(new File("fop-2.1/conf/fop.xconf")); // конфигурация FOP
			OutputStream out = new BufferedOutputStream(new FileOutputStream(new File("myfile.pdf"))); // файл выдачи
	    	Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
	    	TransformerFactory factory = TransformerFactory.newInstance();
	    	Transformer transformer = factory.newTransformer();	 				
	    	File fo = new File("template.xml"); // шаблон
	    	Source src = new StreamSource(fo);
	    	Result res = new SAXResult(fop.getDefaultHandler() );
	    	transformer.transform(src, res);
	    	out.close();
	    	Runtime.getRuntime().exec("cmd /c start myfile.pdf");  // вызов составленного файла  		
		} catch (TransformerException e) {
			e.printStackTrace();
		} catch(SAXException e) {
			e.printStackTrace();
		} catch(IOException e) {
			e.printStackTrace();
		}
	}	
}

Полный архив содержить этот класс и всё остальное, что требуется для исполнения примера. Для ленивых, так сказать, архив нужно только импортировать в Eclipse и нажать на кнопку пуск.

Понравился пост? Поделись в соцсетях и подписывайся на аккаунты в Twitter и Facebook!

Leave a comment

Your email address will not be published.

*