.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");핵심 클래스
| Class | Purpose |
|---|---|
AnnotationCollection | 페이지 주석 추가 및 관리 |
LinkAnnotation | 하이퍼링크 주석 |
TextAnnotation | 스티키 노트 주석 |
Form | AcroForm 필드 액세스 |
Field | 폼 필드용 기본 클래스 |
PdfAction.CreateUri | URI 링크 동작 생성 |
AnnotationSelector | 유형별 주석 필터링 |
문제 해결
| Problem | Solution |
|---|---|
| Annotation not visible | 사각형 좌표가 페이지 경계 내에 있는지 확인하십시오 |
| Link URI is null | 링크가 GoTo 동작을 사용할 수 있습니다 — ActionType을 확인하십시오 |
| Form field value empty | 필드에 /V 항목이 없을 수 있습니다 — 필드 이름을 확인하십시오 |