[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의 더 많은 기능과 옵션에 대해서는 공식 문서를 참조하시기 바랍니다.
참고문헌:
- Apache FOP 공식 웹사이트: https://xmlgraphics.apache.org/fop/
- Apache FOP 사용 설명서: https://xmlgraphics.apache.org/fop/1.1/embedding.html