.NET에서 PDF에 주석 및 양식 추가하는 방법

.NET에서 PDF에 주석 및 양식 추가하는 방법

.NET에서 주석 및 양식 추가 방법

이 가이드는 Aspose.PDF FOSS for .NET을 사용하여 PDF 문서에 주석 및 대화형 양식 필드를 추가하는 방법을 보여줍니다.


전제 조건

요구 사항세부 정보
런타임.NET 8.0 이후
패키지dotnet add package Aspose.Pdf.Foss
라이선스MIT — 라이선스 키가 필요 없음

1단계: 텍스트 주석 추가

텍스트 주석은 페이지에 스티키 노트 형태로 표시됩니다. 경계 사각형을 제공하고, 노트 내용과 작성자 제목을 제공합니다. open: true을 설정하여 노트를 문서가 열릴 때 확장된 상태로 표시합니다.

using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
var page = doc.Pages[1];

page.Annotations.AddTextAnnotation(
    new Rectangle(72, 720, 200, 740),
    contents: "Review this section",
    title: "Editor",
    open: true);

doc.Save("annotated.pdf");

2단계: 링크 주석 추가

링크 주석은 사각형 영역을 클릭 가능하게 합니다. Rectangle
PdfAction.CreateUri 호출을 결합하여 클릭 시 사용자를 외부 URL로 이동시킵니다.

var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
    new Rectangle(50, 700, 200, 720), action);

3단계: 강조 및 도형 주석 추가

하이라이트 주석은 텍스트 영역을 반투명 오버레이로 표시합니다. 도형 주석은 사각형 및 원과 같이 페이지에 기하학적 윤곽선을 그립니다. 두 주석 모두 색상 배열과 선택적 선 너비 매개변수를 허용합니다.

page.Annotations.AddHighlightAnnotation(
    new Rectangle(72, 680, 300, 700),
    quadPoints: null,
    color: new double[] { 1, 1, 0 });

page.Annotations.AddSquareAnnotation(
    new Rectangle(72, 640, 200, 680),
    borderColor: new double[] { 0, 0, 1 },
    fillColor: null,
    lineWidth: 1.5);

4단계: 양식 필드 값 읽기

AcroForm 필드는 Document.Form을 통해 액세스됩니다. Form.Fields을 반복하여 각 필드의 이름과 현재 값을 문서를 수정하지 않고 읽습니다.

using var doc = Document.Open(pdfBytes);
foreach (var field in doc.Form.Fields)
{
    Console.WriteLine($"{field.FullName}: {field.Value}");
}

5단계: 주석 평탄화

foreach (var annot in doc.Pages[1].Annotations)
{
    annot.Flatten();
}
doc.Save("flattened.pdf");

핵심 클래스

ClassPurpose
AnnotationCollection페이지 주석 추가 및 관리
LinkAnnotation하이퍼링크 주석
TextAnnotation스티키 노트 주석
FormAcroForm 필드 액세스
Field폼 필드용 기본 클래스
PdfAction.CreateUriURI 링크 동작 생성
AnnotationSelector유형별 주석 필터링

문제 해결

ProblemSolution
Annotation not visible사각형 좌표가 페이지 경계 내에 있는지 확인하십시오
Link URI is null링크가 GoTo 동작을 사용할 수 있습니다 — ActionType을 확인하십시오
Form field value empty필드에 /V 항목이 없을 수 있습니다 — 필드 이름을 확인하십시오

또 보기

 한국어