맞춤 메모나 워터마크를 추가하려면 Java 애플리케이션에서 PDF에 텍스트를 삽입해야 하는 경우가 많습니다. Conholdate.Total for Java는 개발자가 프로그래밍 방식으로 PDF 파일을 편집할 수 있게 해주는 강력한 SDK입니다. 이 가이드는 사전 요구 사항, 자세한 코드 walkthrough, 그리고 완전한 예제를 단계별로 안내하여 기존 PDF에 맞춤 텍스트를 손쉽게 오버레이할 수 있도록 도와줍니다.

필수 조건 및 설정

시작하기 전에 다음을 확인하십시오:

  • Java 8 이상이 설치되어 있어야 합니다.
  • 의존성 관리를 위한 Maven.
  • IntelliJ IDEA 또는 Eclipse와 같은 IDE.
  • 프로덕션 사용을 위한 유효한 Conholdate.Total for Java 라이선스(자세한 내용은 아래 라이선스 섹션을 참조).

Conholdate Maven 저장소와 SDK 종속성을 pom.xml에 추가하십시오:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

최신 SDK 바이너리를 다운로드 페이지에서 다운로드하십시오. Maven 빌드가 성공하면 코딩을 시작할 준비가 됩니다. 다음 섹션에서는 PDF를 로드하고 텍스트를 삽입하는 방법을 정확히 보여줍니다.

Java에서 PDF에 텍스트 추가: 단계별 안내

아래는 각 논리 단계에 대한 간결한 워크스루입니다. 전체 소스 코드는 나중에 Complete Code Example 섹션에 다시 제공됩니다.

1단계: PDF 열기 및 TextBuilder 만들기

먼저 Document 클래스를 사용하여 원본 PDF를 열고, 그런 다음 텍스트를 추가하려는 페이지를 가리키는 TextBuilder를 생성합니다.

String dataDir = "path/to/your/document/directory/";

// Open document
Document doc = new Document(dataDir + "Conholdate.pdf");
TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));

DocumentTextBuilder 클래스는 API 참조에 문서화되어 있습니다.

2단계: TextParagraph 생성 및 구성

텍스트 단락(TextParagraph)을 구성하고 레이아웃을 설정합니다: 이후 줄에 적용되는 들여쓰기, 페이지의 텍스트 영역을 제한하는 사각형, 그리고 단어 래핑 모드.

// Create text paragraph
TextParagraph paragraph = new TextParagraph();
// Set subsequent lines indent
paragraph.setSubsequentLinesIndent(20);
// Specify the location to add TextParagraph
paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
// Specify word wrapping mode
paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);

3단계: TextFragment 생성 및 글꼴 구성

오버레이하려는 텍스트를 포함하는 TextFragment를 만든 다음, getTextState()를 통해 글꼴과 글꼴 크기를 설정합니다.

// Create text fragment
TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
fragment1.getTextState().setFontSize(12);

4단계: 조각과 단락 추가

텍스트 조각을 단락 안의 한 줄로 추가한 다음, TextBuilder를 통해 단락을 페이지에 추가합니다.

// Add fragment to paragraph
paragraph.appendLine(fragment1);
// Add paragraph
builder.appendParagraph(paragraph);

5단계: 수정된 PDF 저장

마지막으로 출력 경로를 만들고 결과 문서를 저장합니다.

dataDir = dataDir + "AddText_out.pdf";

// Save resulting PDF document.
doc.save(dataDir);

이 단계들을 통해 PDF 텍스트 삽입 워크플로우를 완료했습니다.

전체 코드 예제: Java에서 PDF에 텍스트 삽입

다음 예제는 소스 파일을 로드하는 단계부터 업데이트된 PDF를 저장하는 단계까지 전체 프로세스를 보여줍니다.

이 예제는 Conholdate.Total for Java를 사용하여 기존 PDF에 텍스트를 추가하는 방법을 보여줍니다.

import com.aspose.pdf.Document;
import com.aspose.pdf.TextBuilder;
import com.aspose.pdf.TextParagraph;
import com.aspose.pdf.Rectangle;
import com.aspose.pdf.TextFormattingOptions;
import com.aspose.pdf.TextFragment;
import com.aspose.pdf.FontRepository;

public class AddTextToPdf {
    public static void main(String[] args) {
        String dataDir = "path/to/your/document/directory/";

// Open document
        Document doc = new Document(dataDir + "Conholdate.pdf");
        TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));

// Create text paragraph
        TextParagraph paragraph = new TextParagraph();
        // Set subsequent lines indent
        paragraph.setSubsequentLinesIndent(20);
        // Specify the location to add TextParagraph
        paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
        // Specify word wrapping mode
        paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);

// Create text fragment
        TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
        fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
        fragment1.getTextState().setFontSize(12);

// Add fragment to paragraph
        paragraph.appendLine(fragment1);
        // Add paragraph
        builder.appendParagraph(paragraph);

dataDir = dataDir + "AddText_out.pdf";

// Save resulting PDF document.
        doc.save(dataDir);
    }
}

참고: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에서 사용하기 전에 dataDir을 실제 문서 디렉터리( Conholdate.pdf 포함)로 지정하고, 모든 필수 종속성이 올바르게 설치되었는지 확인한 다음 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서를 참조하거나 지원 팀에 문의하십시오.

결론

이 튜토리얼에서는 강력한 기능을 제공하는 Conholdate.Total for Java를 사용하여 Java에서 PDF에 텍스트를 추가하는 방법을 보여줍니다. 단계별 안내를 따라 하면 TextBuilderTextParagraph를 사용하여 텍스트 단락을 안정적으로 만들고, TextFragment를 통해 글꼴 스타일을 제어하며, 수정된 문서를 저장할 수 있습니다. SDK는 PDF 페이지 좌표와 텍스트 렌더링을 내부적으로 처리하므로 비즈니스 로직에 집중할 수 있습니다. 프로덕션 사용을 위해 적절한 라이선스를 획득해야 함을 기억하세요; 임시 라이선스는 temporary license page에서, 가격 옵션은 pricing page에서 확인할 수 있습니다. 이러한 도구를 사용하면 맞춤 텍스트로 PDF를 향상시키는 것이 Java 애플리케이션에서 간단한 작업이 됩니다.

FAQs

  • Java에서 기존 내용을 덮어쓰지 않고 PDF에 텍스트를 추가하려면 어떻게 해야 하나요?
    예제에 표시된 대로 builder.appendParagraph(paragraph)를 사용하십시오; TextBuilder는 새 단락을 대상 페이지에 추가하여 기존 내용을 보존합니다.

  • Java에서 PDF에 사용자 지정 워터마크 텍스트를 추가할 수 있나요?
    예. 동일한 접근 방식이 워터마크에도 적용됩니다 — 원하는 워터마크 텍스트로 TextFragment를 생성하고, 적절한 글꼴과 크기(또는 텍스트 상태를 통한 투명도)를 설정한 다음, 각 페이지의 TextParagraph를 통해 추가합니다.

  • 삽입된 텍스트가 특정 언어에 대해 올바르게 표시되지 않을 경우 어떻게 해야 하나요?
    FontRepository.findFont()를 사용하여 필요한 문자 집합을 지원하는 글꼴을 선택하십시오. SDK는 getTextState()를 통해 적용된 글꼴 설정을 존중하며, 문서에서 다양한 스크립트를 처리하는 방법에 대한 안내를 제공합니다.

  • 여러 PDF를 한 번에 처리하여 동일한 텍스트를 추가할 수 있나요?
    물론입니다. 파일 경로 목록을 순회하는 루프 안에 코드를 넣고, 각 파일에 대해 동일한 Document/TextBuilder 로직을 재사용하십시오.

더 읽기