Aspose.PDF FOSS for TypeScript 기능

Aspose.PDF FOSS for TypeScript 기능

Aspose.PDF FOSS for TypeScript 기능

이 페이지에서는 Aspose.PDF FOSS for TypeScript의 주요 기능 영역과 해당 영역의 진입점 역할을 하는 클래스들을 살펴보며, 이를 통해 현재 작업에 맞는 개발자 가이드 페이지를 찾을 수 있습니다. 각 영역은 별도의 페이지에서 자세히 다룹니다.


문서 및 페이지 관리

Document은 모든 작업의 진입점입니다: Document.New()은 지정된 PageFormat에서 빈 문서를 시작하고, Document.OpenFile() / Document.Open()는 파일 경로나 메모리 바이트에서 기존 문서를 로드합니다. doc.Pages은 Page 객체들의 배열이며, Document.WriteTo() / Document.Save()은 결과를 다시 기록합니다.

import { Document, PageFormat } from '@asposefoss/pdf';

const doc = Document.New(PageFormat.A4);
doc.Pages[0].AddText('Hello from Aspose.PDF FOSS!', 72, 720, { fontSize: 14 });
doc.WriteTo('hello.pdf');

참조 Core API 문서 수명 주기, 분할, 병합 및 페이지 조립에 대해.


형식 변환

Document.ToHtml(), Document.ToDocx(), 및 Document.ToMarkdown()는 문서의 모든 페이지를 다른 형식으로 렌더링합니다; 동일한 메서드가 Page에도 존재하여 단일 페이지를 렌더링하며, Page.ToImage()는 PNG 래스터 출력, Page.ToSvg()는 독립형 SVG를 위해 사용됩니다.

const doc = Document.OpenFile('report.pdf');
const html = doc.ToHtml();                       // standalone HTML, all pages
const png = doc.Pages[0].ToImage({ scale: 2 });   // PNG bytes for page 1

참조 Conversion 전체 내보내기 형식 및 옵션에 대해.


주석

Page.AddHighlight()와 그 형제 메서드인 Page.Add*()는 마크업 및 도형 주석을 생성합니다; 각각은 실시간 Annotation 핸들을 반환합니다. Annotation.Flatten()은 주석의 외관을 페이지의 콘텐츠 스트림에 직접 삽입하고 /Annots에서 제거하여 영구적이고 비대화형으로 만듭니다.

const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();

참조 Annotations 전체 주석 유형 및 주석 텍스트 검색에 대해.


양식 및 필드 평탄화

AcroForm 필드는 doc.Form을 통해, Form 파사드로, 또는 Page에 Page.AddTextField()/Page.AddCheckbox()와 함께 직접 생성됩니다. Form.AddTextField()와 Form.AddCheckbox()은 필드 핸들을 반환하며, 해당 핸들의 Flatten() 메서드는 Annotation.Flatten()이 수행하는 방식과 동일하게 정적 콘텐츠에 삽입합니다.

const field = doc.Form.AddTextField({
  page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();

참조 Forms 전체 필드 유형 세트에 대해.


Security

Document.OpenFile()와 Document.Open()은 보호된 문서를 열기 위한 password 옵션을 허용하고, Document.Save()은 저장 시 보호를 위한 encrypt 옵션을 허용합니다. Document.Sign()와 Document.Certify()은 디지털 서명을 추가하며, Document.VerifySignatures()은 문서에 이미 존재하는 모든 서명을 검사합니다.

import { Document, InvalidPasswordError } from '@asposefoss/pdf';

try {
  const doc = Document.OpenFile('secret.pdf', { password: 'hunter2' });
  doc.WriteTo('decrypted.pdf');
} catch (e) {
  if (e instanceof InvalidPasswordError) console.error('wrong password');
  else throw e;
}

참조 Security 암호화, 서명 및 서명 검증을 위해.


Redaction

Page.AddRedact()은 아직 페이지를 변경하지 않고 가리기용 사각형 영역을 표시합니다; Page.ApplyRedactions()은 이후 내용 스트림을 파괴적으로 다시 작성하여 표시된 내용을 영구적으로 제거하고 적용된 가리기 횟수를 반환합니다.

page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();

참조 Redaction mark-mode와 applied redactions에 대해 자세히.


문서 구조 및 접근성

Document.AutoTag()은 페이지 레이아웃—글꼴 크기 클러스터링에 의한 제목, 단락, 그리고 (opts.alt)와 함께 도표—을 기반으로 /StructTreeRoot을 추론하고 생성하며 AutoTagReport을 반환합니다. Document.GetStructTree()는 생성된 구조 트리를 다시 읽어들이고, Document.ValidatePdfUa()는 문서를 PDF/UA-1의 기계 검증 가능한 하위 집합에 대해 검사합니다.

const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);

참조 Structure outlines, tagging 및 named destinations에 대해.


팁 및 모범 사례

  • 라이브 문서에서 가져오지 않은 별도의 변수에 보관된 주석, 필드 또는 페이지와 같은 Page 객체를 직접 수정하십시오 — Save() / WriteTo()을 호출하면 반영되지 않습니다.
  • Flatten()은 Annotation와 양식 필드 핸들(TextField, CheckboxField 및 기타 필드 유형) 모두에서 사용할 수 있습니다 — 인터랙티브 콘텐츠가 영구적이고 편집 불가능한 페이지 콘텐츠가 되어야 할 때 한 번 호출하십시오.
  • 그 페이지에 대한 모든 Page.AddRedact() 마크가 추가된 후에만 Page.ApplyRedactions()을 호출하십시오; 호출 이후에 추가된 마크는 적용되지 않은 상태로 남습니다.
  • 신뢰할 수 없는 입력에 대해 Document.OpenFile() / Document.Open()를 호출할 때, 더 넓은 범위의 예외 처리 전에 InvalidPasswordError을 명시적으로 잡으십시오.
  • Document.AutoTag()은 휴리스틱 구조 트리를 생성합니다 — 완전한 접근성 준수를 가정하지 말고 항상 Document.GetStructTree()이나 ValidatePdfUa()로 결과를 샘플 검증하십시오.

일반적인 문제

문제원인해결
Document.OpenFile() / Document.Open() 예외를 발생시킵니다 InvalidPasswordError문서가 비밀번호로 보호되어 있으며 비밀번호가 제공되지 않았거나 잘못된 비밀번호가 제공되었습니다{ password: '...' }를 Document.OpenFile() / Document.Open()에 전달
Redaction mark는 효과가 없습니다Page.ApplyRedactions()가 호출되지 않았거나, 마크가 추가되기 전에 호출되었습니다각 마크마다 먼저 Page.AddRedact()를 호출하고, 그 다음 Page.ApplyRedactions()를 한 번 호출하십시오
플래튼된 필드 또는 주석이 여전히 대화형으로 표시됩니다Flatten()이 복사본에 대해 호출되었으며, Add*() 호출이 반환한 핸들이 아닙니다Flatten()을(를) AddTextField() / AddHighlight() 등에서 직접 반환된 객체에 호출하십시오.
ValidatePdfUa()이 AutoTag() 이후에도 구조가 누락되었다고 보고합니다AutoTag()은 휴리스틱이며 alt 콜백이 없는 모든 그림에 태그를 붙이지 않을 수 있습니다이미지에 대한 대체 텍스트를 제공하기 위해 AutoTag()에 opts.alt 함수를 전달하십시오

FAQ

Aspose.PDF FOSS for TypeScript은(는) 상용 PDF 엔진에 의존합니까?

아니요. MIT 라이선스로 배포되며 렌더링, 변환 및 서명 로직이 전적으로 TypeScript/JavaScript에서 실행됩니다.

PDF를 바로 HTML, Markdown 또는 DOCX로 변환할 수 있나요?

예 — Document.ToHtml(), Document.ToMarkdown(), Document.ToDocx()가 문서의 모든 페이지를 렌더링합니다; 대응되는 Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx() 메서드는 단일 페이지를 렌더링합니다.

마킹과 레다션 적용의 차이점은 무엇인가요?

Page.AddRedact()은(는) 영역을 단순히 표시할 뿐이며, 기본 콘텐츠는 Page.ApplyRedactions()이 호출될 때까지 여전히 존재하고 복사 선택이 가능합니다; Page.ApplyRedactions()은(는) 이를 파괴적으로 제거합니다.

주석이나 양식 필드를 영구적이고 편집 불가능하게 만들려면 어떻게 해야 하나요?

이를 생성한 Add*() 호출이 반환한 객체에 Flatten()을 호출하세요 — 주석의 경우 Annotation.Flatten(), AcroForm 필드의 경우 필드 핸들의 자체 Flatten()을 사용합니다.

다음에는 어디로 가야 하나요?

시작하기에서는 설치와 첫 번째 작업 예제를 다룹니다. 이 개발자 가이드는 위에 링크된 각 기능 영역별 전용 페이지로 이어집니다.


API Reference 요약

클래스/메서드설명
Document진입점 — PDF를 생성, 로드, 저장 및 관리
Document.New() / Document.OpenFile() / Document.Open()빈 문서를 시작하거나 파일 경로나 메모리 내 바이트에서 로드합니다
Document.WriteTo() / Document.Save()문서를 파일 경로에 쓰거나 바이트를 반환합니다
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()각 페이지를 다른 형식으로 렌더링합니다
Page.ToImage() / Page.ToSvg()단일 페이지를 PNG 또는 SVG로 렌더링
Page.AddHighlight() 및 기타 Page.Add*() 주석 방법주석을 생성하고 실시간 핸들을 반환
Annotation.Flatten()주석의 외관을 정적 페이지 콘텐츠에 베이킹합니다
Form / Form.AddTextField() / Form.AddCheckbox()AcroForm 파사드 및 필드 생성
Document.Sign() / Document.Certify() / Document.VerifySignatures()디지털 서명 추가 또는 확인
Page.AddRedact() / Page.ApplyRedactions()콘텐츠 검열을 표시하고 적용하세요
Document.AutoTag() / Document.GetStructTree()작성하고 문서의 논리 구조 트리를 읽으세요

참조

 한국어