Java에서 PDF에 주석 추가

13681 단어 pdfannotationjava
점점 더 바쁜 전문가들이 PDF(Portable Document Format) 파일 형식으로 다양한 유형의 서면 콘텐츠를 수신합니다. 이 콘텐츠는 계약서, 재무제표, 보고서, 매뉴얼의 형태일 수 있습니다. 종종 이 콘텐츠의 수신자는 이러한 PDF 문서에 메모, 강조 표시, 주석 및 기타 마크업을 추가하려고 합니다. 이 기사에서는 Free Spire.PDF for Java를 사용하여 PDF에 텍스트 마크업 주석 및 팝업 주석을 추가하는 방법을 소개합니다.

Spire.Pdf.jar 설치



Maven 프로젝트를 생성하는 경우 다음 구성을 사용하여 애플리케이션에 jar를 쉽게 추가할 수 있습니다. 비 Maven 프로젝트의 경우 this link에서 jar 파일을 다운로드하고 애플리케이션의 종속성으로 추가합니다.

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId> e-iceblue </groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>3.9.0</version>
    </dependency>
</dependencies>


예 1. 텍스트 마크업 주석 추가




import com.spire.pdf.annotations.PdfAnnotationBorder;
import com.spire.pdf.annotations.PdfTextMarkupAnnotation;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.graphics.PdfFont;
import com.spire.pdf.graphics.PdfFontFamily;
import com.spire.pdf.graphics.PdfRGBColor;

import java.awt.*;

public class TextMarkup {

    public static void main(String[] args) {

        //Create a PdfDocument object
        PdfDocument doc = new PdfDocument();

        //Load the sample PDF file
        doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\test.pdf");

        //Get the first page
        PdfPageBase page = doc.getPages().get(0);

        //Find the string to add annotation
        PdfTextFind[] results = page.findText("such as security setting").getFinds();

        //Create a font
        PdfFont font = new PdfFont(PdfFontFamily.Times_Roman, 12);

        //Create a PdfTextMarkupAnnotation based on the searched string
        PdfTextMarkupAnnotation annotation = new PdfTextMarkupAnnotation("Administrator", "This is a text markup annotation.", results[0].getSearchText(), results[0].getPosition(),font);
        annotation.setBorder(new PdfAnnotationBorder(0.5f));
        annotation.setTextMarkupColor(new PdfRGBColor(Color.GREEN));

        //Add annotation to PDF
        page.getAnnotationsWidget().add(annotation);

        //Save to file
        doc.saveToFile("TextMarkup.pdf");
    }
}




예 2. 팝업 주석 추가




import com.spire.pdf.annotations.PdfPopupAnnotation;
import com.spire.pdf.annotations.PdfPopupIcon;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.graphics.PdfRGBColor;

import java.awt.*;
import java.awt.geom.Rectangle2D;

public class PopupAnnotation {
    public static void main(String[] args) {

        //Create a PdfDocument object
        PdfDocument doc = new PdfDocument();

        //Load the sample PDF file
        doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\test.pdf");

        //Get the first page
        PdfPageBase page = doc.getPages().get(0);

        //Find the string to add annotation
        PdfTextFind[] results = page.findText("high quality.").getFinds();

        //Specify the x and y coordinate to add annotation
        float x = (float)results[0].getBounds().getMaxX(); 
        float y = (float) results[0].getBounds().getY();

        //Create a PdfPopupAnnotation object
        PdfPopupAnnotation popupAnnotation = new PdfPopupAnnotation(new Rectangle2D.Float(x,y,0,0));
        popupAnnotation.setText("This is a pop-up annotation");
        popupAnnotation.setIcon(PdfPopupIcon.Note);
        popupAnnotation.setColor(new PdfRGBColor(Color.YELLOW));

        //Add annotation to PDF
        page.getAnnotationsWidget().add(popupAnnotation);

        //Save to file
        doc.saveToFile("PopupAnnotation.pdf");
    }
}


좋은 웹페이지 즐겨찾기