[java] Apache FOP의 코드 예제
import java.io.File;
import java.io.OutputStream;

import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
import org.apache.xmlgraphics.util.MimeConstants;

import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

public class ApacheFOPExample {
    public static void main(String[] args) {
        try {
            // 가져올 XSL-FO 파일 및 생성될 PDF 파일을 지정합니다.
            File xsltFile = new File("input.xsl");
            File xmlFile = new File("input.xml");
            File pdfFile = new File("output.pdf");

            // FOP Factory 및 설정을 생성합니다.
            FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI());
            OutputStream out = new java.io.FileOutputStream(pdfFile);
            Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);

            // XSL Transformation을 수행하여 FO 파일을 생성합니다.
            TransformerFactory factory = TransformerFactory.newInstance();
            Transformer transformer = factory.newTransformer(new StreamSource(xsltFile));
            Source src = new StreamSource(xmlFile);
            Result res = new StreamResult(fop.getDefaultHandler());

            // FO를 PDF로 변환합니다.
            transformer.transform(src, res);

            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 코드를 사용하면 Apache FOP를 통해 XML과 XSL-FO를 입력으로 받아 PDF를 생성할 수 있습니다. 기본적으로 널리 사용되는 방법이며 Apache FOP의 더 많은 기능과 옵션에 대해서는 공식 문서를 참조하시기 바랍니다.

참고문헌: