TypeScript에서 Core PDF API 사용 방법
이 가이드는 TypeScript용 Aspose.PDF FOSS를 사용하여 PDF 문서를 열고, 생성하고, 편집하고, 분할하고, 저장하는 방법을 보여줍니다. Document와 Page 클래스는 라이브러리의 모든 작업에 대한 진입점으로, 파일 열기 및 생성, 페이지를 제자리에서 편집, 문서 분할 및 결합, 결과 저장 등을 담당합니다. Node.js 22 이상만 있으면 됩니다.
단계별 가이드
1단계: 패키지 설치
git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run build패키지를 설치한 후 새 TypeScript 파일에 Document 클래스를 가져와 설치를 확인하십시오 — 패키지가 설치되면 이 줄은 오류 없이 해결되어야 합니다:
import { Document } from '@asposefoss/pdf';2단계: 필요한 클래스 가져오기
PDF를 로드하거나 생성하려면 Document를 가져오고, 문서를 처음부터 시작하려는 경우 PageFormat를 사용하십시오:
import { Document, PageFormat } from '@asposefoss/pdf';3단계: 기존 PDF 열기 및 페이지 편집
Document.OpenFile()는 파일 경로에서 PDF를 엽니다; Document.Open()은 메모리 내 Uint8Array를 받아들입니다. 페이지를 현장에서 검사하고 편집할 수 있으며, Document.WriteTo()는 결과를 다시 저장합니다.
import { Document } from '@asposefoss/pdf';
// Open from disk (or Document.Open(uint8array) for in-memory data)
const doc = Document.OpenFile('input.pdf');
// Inspect and edit pages
const pages = doc.Pages;
console.log(pages.length);
pages[0].Rotate = 90;
doc.RemovePage(2); // 1-based page number
doc.Reorder([3, 1, 2]);
// Save
doc.WriteTo('output.pdf'); // or: const bytes = doc.Save();
4단계: 처음부터 새 PDF 만들기
Document.New()는 지정된 PageFormat에서 빈 문서를 시작합니다. Page.AddText()는 위치 지정된 텍스트를 배치하고, Document.AddPage()는 추가 페이지를 추가합니다.
import { Document, PageFormat } from '@asposefoss/pdf';
const doc = Document.New(PageFormat.A4); // one blank A4 page
doc.Pages[0].AddText('Hello', 72, 720, { fontSize: 14 });
doc.AddPage(PageFormat.A4.landscape()); // append more as you go
doc.WriteTo('scratch.pdf');5단계: 페이지 분할, 추출 및 결합
Document.Split()는 페이지당 하나의 Document을 반환합니다. Document.ExtractPages()는 1부터 시작하는, 중복 허용 페이지 리스트를 받아 해당 페이지만 포함한 새로운 Document을 반환합니다. Document.Append()와 Document.InsertPage()는 문서 간 페이지를 복사하고, Document.Merge()는 여러 문서를 하나로 결합합니다.
const parts = doc.Split(); // one Document per page
const chapter = doc.ExtractPages([3, 4, 5]); // subset (1-based, repeats allowed) as a new Document
docA.Append(docB); // copy all of docB's pages onto docA
docA.InsertPage(1, docB.Pages[0]); // copy a single page across documents
일반적인 문제 및 해결 방법
Document.OpenFile() throws InvalidPasswordError. PDF가 암호로 보호되어 있으며 비밀번호가 제공되지 않았거나(또는 잘못된 비밀번호가) 제공되었습니다. Pass { password: '...' } to Document.OpenFile() / Document.Open().
RemovePage() or ExtractPages() 잘못된 페이지를 제거하거나 추출합니다. 이 메서드들은 1부터 시작하는 페이지 번호를 사용하고, 반면에 doc.Pages 는 순수 0부터 시작하는 배열입니다 — 두 인덱스 방식이 섞이기 쉽습니다.
WriteTo() 출력이 예상보다 큽니다. 기본 저장은 xref/object-stream 압축을 사용하지 않습니다. Pass { compressed: true } to Document.WriteTo() 이를 활성화하려면.
다음에 대한 편집 내용: doc.Pages[i] 저장된 파일에 나타나지 않습니다. 페이지 편집은 호출 전에 이루어져야 합니다. Document.WriteTo() / Document.Save() — 별도의 “commit” 단계는 없지만, 저장 후에 이루어진 편집은 이미 디스크에 기록된 파일에 반영되지 않습니다.
자주 묻는 질문
파일 경로 대신 메모리 버퍼에서 PDF를 로드하려면 어떻게 해야 하나요?
Document.OpenFile()에 대한 경로 대신 Uint8Array를 Document.Open()에 전달하십시오.
페이지를 회전하려면 어떻게 하나요?
page.Rotate를 90, 180, 또는 270으로 설정한 다음, Document.WriteTo()로 문서를 저장하십시오.
한 문서에서 다른 문서로 단일 페이지를 복사할 수 있나요?
예 — Document.InsertPage(at, sourcePage)는 전체 문서를 복사하지 않고, 지정된 1부터 시작하는 위치에서 다른 문서의 한 페이지를 복사합니다.
Document.ExtractPages()가 같은 페이지가 두 번 나타나는 것을 허용합니까?
예. Document.ExtractPages()에 전달되는 페이지 번호 목록은 중복을 허용하므로, 동일한 원본 페이지가 결과에 여러 번 나타날 수 있습니다.