Aspose.PDF FOSS for TypeScript Funkcje
Aspose.PDF FOSS dla TypeScript Funkcje
Ta strona przegląda główne obszary możliwości Aspose.PDF FOSS dla TypeScript oraz klasy, które pełnią ich punkty wejścia, abyś mógł znaleźć odpowiednią stronę przewodnika dewelopera dla bieżącego zadania. Każdy obszar jest szczegółowo opisany na osobnej stronie.
Zarządzanie dokumentami i stronami
Document jest punktem wejścia dla każdej operacji: Document.New() rozpoczyna pusty dokument w danym PageFormat, a Document.OpenFile() / Document.Open() ładują istniejący z ścieżki pliku lub z bajtów w pamięci. doc.Pages jest tablicą obiektów Page, a Document.WriteTo() / Document.Save() zapisują wynik z powrotem.
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');Zobacz Core API dla cyklu życia dokumentu, dzielenia, scalania i składania stron.
Konwersja formatów
Document.ToHtml(), Document.ToDocx() i Document.ToMarkdown() renderują każdą stronę dokumentu do innego formatu; te same metody istnieją w Page, aby renderować pojedynczą stronę, a dodatkowo Page.ToImage() dla wyjścia rastrowego PNG i Page.ToSvg() dla samodzielnego 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
Zobacz Conversion dla pełnego zestawu formatów eksportu i opcji.
Adnotacje
Page.AddHighlight() i jego pokrewna metoda Page.Add*() tworzą adnotacje znaczników i kształtów; każda zwraca żywy uchwyt Annotation. Annotation.Flatten() wbudowuje wygląd adnotacji bezpośrednio do strumienia zawartości strony i usuwa ją z /Annots, czyniąc ją trwałą i nieinteraktywną.
const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();Zobacz Annotations dla pełnego zestawu typów adnotacji oraz wyszukiwania tekstu adnotacji.
Formularze i spłaszczanie pól
AcroForm pola są tworzone poprzez doc.Form, fasadę Form, lub bezpośrednio na Page przy użyciu Page.AddTextField() / Page.AddCheckbox(). Form.AddTextField() i Form.AddCheckbox() zwracają uchwyt pola, którego własna metoda Flatten() wbudowuje go w treść statyczną w ten sam sposób, w jaki robi to Annotation.Flatten().
const field = doc.Form.AddTextField({
page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();Zobacz Forms dla pełnego zestawu typów pól.
Security
Document.OpenFile() i Document.Open() akceptują opcję password, aby otworzyć chronione dokumenty, a Document.Save() przyjmuje opcję encrypt, aby chronić dokument przy zapisie. Document.Sign() i Document.Certify() dodają podpisy cyfrowe, a Document.VerifySignatures() sprawdza każdy podpis już znajdujący się w dokumencie.
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;
}Zobacz Security dla szyfrowania, podpisywania i weryfikacji podpisu.
Redaction
Page.AddRedact() zaznacza prostokątny obszar do redakcji bez zmiany strony; Page.ApplyRedactions() następnie destrukcyjnie przepisuje strumień zawartości, trwale usuwając zaznaczoną treść i zwracając liczbę zastosowanych redakcji.
page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();Zobacz Redaction dla trybu zaznaczania vs. zastosowanych redakcji, bardziej szczegółowo.
Struktura dokumentu i dostępność
Document.AutoTag() wnioskowuje i tworzy /StructTreeRoot na podstawie układu strony — nagłówki na podstawie grupowania rozmiaru czcionki, akapity oraz (z opts.alt) rysunki — i zwraca AutoTagReport. Document.GetStructTree() odczytuje powstałe drzewo struktury, a Document.ValidatePdfUa() sprawdza dokument względem podzbioru PDF/UA-1 możliwego do sprawdzenia maszynowego.
const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);Zobacz Structure dla konspektów, tagowania i nazwanych miejsc docelowych.
Wskazówki i najlepsze praktyki
- Modyfikuj obiekty
Pageuzyskane przezdoc.Pagesbezpośrednio — adnotacja, pole lub strona przechowywana w osobnej zmiennej, która nie została pobrana z bieżącego dokumentu, nie jest odzwierciedlana, gdy wywołujeszSave()/WriteTo(). Flatten()jest dostępny zarówno wAnnotation, jak i w obsłudze pól formularza (TextField,CheckboxFieldi innych typów pól) — wywołaj go, gdy interaktywna treść ma stać się trwałą, nieedytowalną treścią strony.- Wywołaj
Page.ApplyRedactions()tylko po dodaniu wszystkich znacznikówPage.AddRedact()dla tej strony; znaczniki dodane po wywołaniu pozostaną niewykonane. - Przechwyć
InvalidPasswordErrorkonkretnie przed szerszym przechwyceniem, wywołującDocument.OpenFile()/Document.Open()na niepewnym wejściu. Document.AutoTag()generuje heurystyczne drzewo struktury — zawsze sprawdzaj wyniki za pomocąDocument.GetStructTree()lubValidatePdfUa(), zamiast zakładać pełną zgodność z dostępnością.
Typowe problemy
| Problem | Przyczyna | Naprawa |
|---|---|---|
Document.OpenFile() / Document.Open() rzuca InvalidPasswordError | Dokument jest zabezpieczony hasłem i nie podano hasła lub podano niewłaściwe hasło | Przekaż { password: '...' } do Document.OpenFile() / Document.Open() |
| Znacznik redakcji nie ma efektu | Page.ApplyRedactions() nigdy nie został wywołany, lub został wywołany przed dodaniem znacznika | Wywołaj Page.AddRedact() najpierw dla każdego znacznika, a następnie Page.ApplyRedactions() raz |
| Spłaszczone pole lub adnotacja nadal wyświetlane są jako interaktywne | Flatten() został wywołany na kopii, a nie na uchwycie zwróconym przez wywołanie Add*() | Wywołaj Flatten() na obiekcie zwróconym bezpośrednio przez AddTextField() / AddHighlight() / itp. |
ValidatePdfUa() nadal zgłasza brakującą strukturę po AutoTag() | AutoTag() jest heurystyczny i może nie oznaczyć każdej figury bez wywołania zwrotnego alt | Przekaż funkcję opts.alt do AutoTag(), aby dostarczyć tekst alternatywny dla obrazów |
FAQ
Czy Aspose.PDF FOSS dla TypeScript zależy od komercyjnego silnika PDF?
Nie. Jest udostępniony na licencji MIT, a jego logika renderowania, konwersji i podpisywania działa w pełni w TypeScript/JavaScript.
Czy mogę przekonwertować PDF bezpośrednio na HTML, Markdown lub DOCX?
Tak — Document.ToHtml(), Document.ToMarkdown() i Document.ToDocx() renderują każdą stronę dokumentu; równoważne metody Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx() renderują pojedynczą stronę.
Jaka jest różnica między oznaczeniem a zastosowaniem redakcji?
Page.AddRedact() tylko oznacza obszar — ukryta treść nadal istnieje i można ją kopiować, dopóki nie zostanie wywołane Page.ApplyRedactions(), które destrukcyjnie ją usuwa.
Jak uczynić adnotację lub pole formularza stałymi i nieedytowalnymi?
Wywołaj Flatten() na obiekcie zwróconym przez wywołanie Add*(), które go utworzyło — Annotation.Flatten() dla adnotacji lub własne Flatten() uchwytu pola dla pól AcroForm.
Dokąd mam iść dalej?
Rozpoczęcie obejmuje instalację i pierwszy działający przykład. Ten przewodnik dla deweloperów kontynuuje z dedykowanymi stronami dla każdego obszaru funkcjonalnego, wymienionego powyżej.
API Reference Podsumowanie
| Klasa/Metoda | Opis |
|---|---|
Document | Punkt wejścia — tworzenie, ładowanie, zapisywanie i zarządzanie plikiem PDF |
Document.New() / Document.OpenFile() / Document.Open() | Rozpocznij od pustego dokumentu lub załaduj go z ścieżki pliku lub z pamięci w postaci bajtów |
Document.WriteTo() / Document.Save() | Zapisz dokument do ścieżki pliku lub zwróć bajty |
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Renderuj każdą stronę do innego formatu |
Page.ToImage() / Page.ToSvg() | Renderuj pojedynczą stronę do formatu PNG lub SVG |
Page.AddHighlight() i inne metody adnotacji Page.Add*() | Utwórz adnotację, zwracając aktywny uchwyt |
Annotation.Flatten() | Zapisz wygląd adnotacji w statycznej treści strony |
Form / Form.AddTextField() / Form.AddCheckbox() | AcroForm fasada i tworzenie pól |
Document.Sign() / Document.Certify() / Document.VerifySignatures() | Dodaj lub zweryfikuj podpisy cyfrowe |
Page.AddRedact() / Page.ApplyRedactions() | Oznacz i zastosuj redakcję treści |
Document.AutoTag() / Document.GetStructTree() | Autor i odczytaj drzewo logicznej struktury dokumentu |