[java] Apache Batik 라이브러리를 활용한 PDF 생성
Apache Batik는 SVG(Scalable Vector Graphics) 파일을 다양한 형식의 이미지로 변환하는 Java 라이브러리입니다. 이 라이브러리는 SVG 이미지를 PDF로 변환하는 기능을 제공하기 때문에 PDF 생성에 활용될 수 있습니다.
Apache Batik 라이브러리 추가
먼저 Apache Batik 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml
에 다음 dependency를 추가할 수 있습니다:
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-transcoder</artifactId>
<version>1.14</version>
</dependency>
Gradle을 사용하는 경우, build.gradle
에 다음과 같이 추가할 수 있습니다:
implementation 'org.apache.xmlgraphics:batik-transcoder:1.14'
SVG를 PDF로 변환
다음은 Apache Batik를 사용하여 SVG 파일을 PDF로 변환하는 간단한 예제 코드입니다:
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.TranscodingHints;
import org.apache.batik.transcoder.image.JPEGTranscoder;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.apache.batik.transcoder.image.TIFFTranscoder;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.apache.batik.transcoder.image.JPEGTranscoder;
import org.apache.batik.transcoder.image.TIFFTranscoder;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.apache.batik.transcoder.image.JPEGTranscoder;
import org.apache.batik.transcoder.image.TIFFTranscoder;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
public class SVGtoPDFConverter {
public static void main(String[] args) throws Exception {
// SVG 파일 경로
String svgFilePath = "path/to/input.svg";
// PDF 파일 경로
String pdfFilePath = "path/to/output.pdf";
// 입력 및 출력 설정
TranscoderInput transcoderInput = new TranscoderInput(new FileInputStream(svgFilePath));
TranscoderOutput transcoderOutput = new TranscoderOutput(new FileOutputStream(pdfFilePath));
// PDF로 변환
PDFTranscoder transcoder = new PDFTranscoder();
transcoder.addTranscodingHint(PNGTranscoder.KEY_WIDTH, new Float(400));
transcoder.addTranscodingHint(PNGTranscoder.KEY_HEIGHT, new Float(300));
transcoder.transcode(transcoderInput, transcoderOutput);
}
}
위 예제 코드에서는 PDFTranscoder
객체를 생성하여 transcode
메서드를 사용하여 SVG 파일을 PDF로 변환합니다.
Apache Batik를 사용하여 SVG를 PDF로 변환하는 간단한 예제를 살펴보았습니다. 이를 참고하여 프로젝트에 적용해 보시기 바랍니다.