[java] PDF 파일에 태그 추가하기(Java Apache PDFBox 사용)
PDF 파일은 주로 문서 형식으로 사용되는데, 때로는 특정 부분을 태그로 표시하여 더 나은 접근성과 검색성을 제공해야 할 때가 있습니다. 이를 위해 Java Apache PDFBox 라이브러리를 사용하여 PDF 파일에 태그를 추가하는 방법을 알아보겠습니다.
1. Maven 프로젝트 구성
먼저, Maven 프로젝트를 구성합니다. Maven을 사용하여 PDFBox 라이브러리를 의존성으로 추가합니다.
<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.26</version>
</dependency>
</dependencies>
2. PDF 파일 로드하기
PDF 파일을 로드하여 작업하기 위해 PDDocument
클래스를 사용합니다.
import org.apache.pdfbox.pdmodel.PDDocument;
PDDocument document = PDDocument.load(new File("path/to/pdf/file.pdf"));
3. 페이지에 태그 추가하기
PDF 파일의 페이지에 태그를 추가하기 위해 PDPage
클래스를 사용합니다. 예를 들어, 첫 번째 페이지에 태그를 추가하는 방법은 다음과 같습니다.
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.documentinterchange.markedcontent.PDMarkedContent;
import org.apache.pdfbox.pdmodel.documentinterchange.logicalstructure.PDMarkedContentReference;
import org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDBorderStyleDictionary;
import org.apache.pdfbox.pdmodel.interactive.annotation.PDColor;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDDocumentOutline;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem;
PDPage page = document.getPage(0);
PDDocumentOutline outline = new PDDocumentOutline();
PDOutlineItem outlineItem = new PDOutlineItem();
outlineItem.setTitle("Test Tag");
PDRectangle rect = new PDRectangle();
rect.setLowerLeftX(100);
rect.setLowerLeftY(100);
rect.setUpperRightX(200);
rect.setUpperRightY(200);
PDAnnotationLink link = new PDAnnotationLink();
link.setBorderStyle(new PDBorderStyleDictionary());
link.setRect(rect);
PDColor cyan = new PDColor(new float[] { 0, 1, 1 }, PDDeviceCMYK.INSTANCE);
link.setHighlightingMode(PDAnnotation.HIGHLIGHT_MODE_INVERT);
link.setColor(cyan);
PDMarkedContent markedContent = PDContentStream.createMarkedContent(COSName.TR);
markedContent.addContent(link);
PDMarkedContentReference linkRef = new PDMarkedContentReference(document);
linkRef.setMarkedContentSequence(markedContent);
outlineItem.setDestination(linkRef);
outline.addLast(outlineItem);
document.getDocumentCatalog().setDocumentOutline(outline);
4. 수정된 파일 저장하기
태그를 추가한 후에는 수정된 PDF 파일을 저장해야 합니다.
document.save(new File("path/to/modified/file.pdf"));
5. 리소스 해제하기
작업이 완료되었으면 PDDocument
객체를 닫아 리소스를 해제합니다.
document.close();
결론
Java Apache PDFBox를 사용하여 PDF 파일에 태그를 추가하는 방법을 알아보았습니다. 이를 통해 PDF 파일의 특정 부분을 태그로 표시하여 접근성과 검색성을 높일 수 있습니다. PDF 파일을 다루는 작업에서 태그 추가 기능을 활용해보세요!
참고 문서: