Java에서 PDF에 주석 추가

13899 단어 javapdfapiopensource
PDF 파일을 보는 동안 파일에 메모를 추가하여 아이디어를 공유하거나 댓글을 남길 수 있습니다. 이 기사에서는 Free Spire.PDF for Java를 사용하여 프로그래밍 방식으로 텍스트 상자 주석 및 팝업 주석을 PDF 파일에 추가하는 방법을 공유합니다. 그 외에도 무료 라이브러리는 텍스트 주석, 파일 링크 주석, 문서 링크 주석 등 추가를 지원합니다.

설치(2가지 방법)



방법 1: free library을 다운로드하고 압축을 풉니다. 그런 다음 Spire.Pdf.jar 파일을 종속성으로 프로젝트에 추가합니다.

방법 2: 다음 구성을 pom.xml에 추가하여 maven 프로젝트에 jar 종속성을 직접 추가합니다.

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


샘플 코드




import com.spire.pdf.*;
import com.spire.pdf.annotations.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.*;

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

        PdfDocument doc = new PdfDocument();
        //Set the margin of PDF
        PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
        PdfMargins margin = new PdfMargins();
        margin.setTop(unitCvtr.convertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));
        margin.setBottom(margin.getTop());
        margin.setLeft(unitCvtr.convertUnits(3f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));
        margin.setRight(margin.getLeft());
        //Create one page
        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);

        //Add text
        PdfBrush brush1 = PdfBrushes.getBlack();
        PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial", Font.BOLD + Font.ITALIC,13), true);
        PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Left);
        float y = 50;
        String s = "The sample demonstrates how to add annotations to PDF document.";
        page.getCanvas().drawString(s, font1, brush1, 0, y - 5, format1);
        y = y + (float)font1.measureString(s, format1).getHeight();

        //set the annotation font, string, size, position and style
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial",0, 12));
        PdfStringFormat format = new PdfStringFormat();
        format.setMeasureTrailingSpaces(true);
        String prompt = "Pop-up Annotation: ";
        Dimension2D size = font.measureString(prompt, format);
        page.getCanvas().drawString(prompt, font, PdfBrushes.getDodgerBlue(), 0, y);
        float x = (float)size.getWidth();
        String label = "demo of Pop-up annotation";
        page.getCanvas().drawString(label, font, PdfBrushes.getOrangeRed(), x, y);
        x = x + (float)font.measureString(label, format).getWidth();
        String markupText = "Please indicate the theme of this paragraph";
        Rectangle2D rectangle2D = new Rectangle.Float();
        rectangle2D.setFrame(new Point2D.Double(x,y),new Dimension());
        PdfPopupAnnotation annotation = new PdfPopupAnnotation(rectangle2D, markupText);
        annotation.setIcon(PdfPopupIcon.Paragraph);
        annotation.setOpen(true);
        annotation.setColor(new PdfRGBColor(Color.YELLOW));
        ((PdfNewPage) page).getAnnotations().add(annotation);

        //Save the document to file
        doc.saveToFile("annotation.pdf");
        doc.close();
    }
}


좋은 웹페이지 즐겨찾기