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() | 작성하고 문서의 논리 구조 트리를 읽으세요 |