Java에서 PDF에 텍스트 워터마크 추가

8824 단어
워터마크는 많은 시나리오에서 중요한 역할을 하며 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>


샘플 코드



무료 Spire.PDF for Java는 PDF 파일에 워터마크를 추가하기 위한 직접적인 인터페이스나 클래스를 제공하지 않습니다. 그러나 PDF 페이지에 텍스트를 그리고 워터마크 효과를 모방하기 위해 텍스트에 투명도를 설정할 수 있습니다. 전체 샘플 코드는 아래와 같습니다.

import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.lang.Math;


public class TextWatermark {
    public static void main(String[] args) {
        //create a PdfDocument instance
        PdfDocument pdf = new PdfDocument();

        //load the sample document
        pdf.loadFromFile("E:\\Files\\template.pdf");
        PdfPageBase page = pdf.getPages().get(0);
        // Create a PdfTrueTypeFont object
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", Font.PLAIN, 50), true);
        // Set the watermark text
        String text = "CONFIDENTIAL";
        // Measure the text size
        // Calculate the values of two offset variables,
        // which will be used to calculate the translation amount of the coordinate system
        float offset1 = ((float) ((font.measureString(text).getWidth()
                * (Math.sqrt(2) / 4))));
        float offset2 = ((float) ((font.measureString(text).getHeight()
                * (Math.sqrt(2) / 4))));

        // Set the page transparency
        page.getCanvas().setTransparency(0.5);
        // Translate the coordinate system by specified coordinates
        page.getCanvas().translateTransform(((page.getCanvas().getSize().getWidth() / 2)
                - (offset1 - offset2)), ((page.getCanvas().getSize().getHeight() / 2)
                + (offset1 - offset2)));
        // Rotate the coordinate system 45 degrees counterclockwise
        page.getCanvas().rotateTransform(-45);
        // Draw watermark text on the page
        page.getCanvas().drawString(text, font, PdfBrushes.getDarkGray(), 0, 0);


        // Save the changes to another file
        pdf.saveToFile("TextWatermark.pdf");
    }
}


좋은 웹페이지 즐겨찾기