Aspose.PDF FOSS for TypeScript Functies
Aspose.PDF FOSS voor TypeScript Functies
Deze pagina geeft een overzicht van de belangrijkste capaciteitsgebieden van Aspose.PDF FOSS voor TypeScript en de klassen die als toegangspunten fungeren, zodat je de juiste ontwikkelaarsgids-pagina voor de taak kunt vinden. Elk gebied wordt uitgebreid behandeld op een eigen pagina.
Document- en paginabeheer
Document is het toegangspunt voor elke bewerking: Document.New() start een leeg document op een gegeven PageFormat, en Document.OpenFile() / Document.Open() laden een bestaande vanaf een bestandspad of in-memory bytes. doc.Pages is een array van Page objecten, en Document.WriteTo() / Document.Save() schrijven het resultaat terug.
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');Zie Core API voor documentlevenscyclus, splitsen, samenvoegen en paginamontage.
Formaatconversie
Document.ToHtml(), Document.ToDocx() en Document.ToMarkdown() renderen elke pagina van een document naar een ander formaat; dezelfde methoden bestaan op Page om een enkele pagina te renderen, plus Page.ToImage() voor PNG-rasteroutput en Page.ToSvg() voor zelfstandige 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
Zie Conversion voor de volledige set exportformaten en opties.
Annotaties
Page.AddHighlight() en zijn verwante Page.Add*() methoden creëren markup- en vormannotaties; elk retourneert een live Annotation handle. Annotation.Flatten() verwerkt het uiterlijk van een annotatie direct in de contentstream van de pagina en verwijdert het uit /Annots, waardoor het permanent en niet-interactief wordt.
const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();Zie Annotations voor de volledige set annotatietypen en het zoeken van annotatietekst.
Formulieren en Veldafvlakken
AcroForm velden worden aangemaakt via doc.Form, een Form façade, of direct op een Page met Page.AddTextField() / Page.AddCheckbox(). Form.AddTextField() en Form.AddCheckbox() retourneren een veldhandle waarvan de eigen Flatten() methode het in statische content verwerkt op dezelfde manier als Annotation.Flatten().
const field = doc.Form.AddTextField({
page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();Zie Forms voor de volledige set veldtypen.
Security
Document.OpenFile() en Document.Open() accepteren een password optie om beveiligde documenten te openen, en Document.Save() accepteert een encrypt optie om er een te beveiligen bij opslaan. Document.Sign() en Document.Certify() voegen digitale handtekeningen toe, en Document.VerifySignatures() controleert elke handtekening die al in een document aanwezig is.
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;
}Zie Security voor versleuteling, ondertekening en verificatie van handtekeningen.
Redaction
Page.AddRedact() markeert een rechthoekig gebied voor redactie zonder de pagina nog te wijzigen; Page.ApplyRedactions() herschrijft vervolgens destructief de contentstream, verwijdert de gemarkeerde inhoud definitief en geeft het aantal toegepaste redacties terug.
page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();Zie Redaction voor mark-modus versus toegepaste redactie in meer detail.
Documentstructuur en toegankelijkheid
Document.AutoTag() inferreert en maakt een /StructTreeRoot op basis van paginalay-out — koppen door lettergrootte-clustering, alinea’s, en (met opts.alt) figuren — en retourneert een AutoTagReport. Document.GetStructTree() leest de resulterende structuurboom terug, en Document.ValidatePdfUa() controleert het document tegen een machine-controleerbare subset van PDF/UA-1.
const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);Zie Structure voor outlines, tagging en benoemde bestemmingen.
Tips en best practices
- Wijzig de
Page-objecten die viadoc.Pagesworden bereikt direct — een annotatie, veld of pagina die in een aparte variabele wordt gehouden en niet uit het live document is verkregen, wordt niet weergegeven wanneer jeSave()/WriteTo()aanroept. Flatten()is beschikbaar op zowelAnnotationals formulierveld-handles (TextField,CheckboxFielden de andere veldtypes) — roep het één keer aan wanneer interactieve inhoud permanente, niet-bewerkbare paginainhoud moet worden.- Roep
Page.ApplyRedactions()alleen aan nadat elkePage.AddRedact()-markering voor die pagina is toegevoegd; markeringen die na de aanroep worden toegevoegd, blijven onverwerkt. - Vang
InvalidPasswordErrorspecifiek op vóór een bredere algemene vangst wanneer jeDocument.OpenFile()/Document.Open()aanroept op niet-vertrouwde invoer. Document.AutoTag()genereert een heuristische structuurbomen — controleer het resultaat altijd steekproefsgewijs metDocument.GetStructTree()ofValidatePdfUa()in plaats van volledige toegankelijkheidsconformiteit aan te nemen.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
Document.OpenFile() / Document.Open() gooit InvalidPasswordError | Het document is beveiligd met een wachtwoord en er is geen wachtwoord, of een verkeerd wachtwoord, opgegeven. | Geef { password: '...' } door aan Document.OpenFile() / Document.Open() |
| Redactie-markering heeft geen effect | Page.ApplyRedactions() is nooit aangeroepen, of is aangeroepen voordat de markering werd toegevoegd | Roep eerst Page.AddRedact() aan voor elke markering, daarna Page.ApplyRedactions() één keer |
| Vlak gemaakt veld of annotatie wordt nog steeds als interactief weergegeven | Flatten() werd aangeroepen op een kopie in plaats van de handle die werd geretourneerd door de Add*()-aanroep | Roep Flatten() aan op het object dat rechtstreeks wordt geretourneerd door AddTextField() / AddHighlight() / enz. |
ValidatePdfUa() meldt nog steeds een ontbrekende structuur na AutoTag() | AutoTag() is heuristisch en tagt mogelijk niet elke afbeelding zonder een alt callback | Geef een opts.alt-functie door aan AutoTag() om alt-tekst voor afbeeldingen te leveren |
FAQ
Is Aspose.PDF FOSS voor TypeScript afhankelijk van een commerciële PDF-engine?
Nee. Het is uitgebracht onder de MIT-licentie en de render-, conversie- en ondertekeningslogica draait volledig in TypeScript/JavaScript.
Kan ik een PDF direct omzetten naar HTML, Markdown of DOCX?
Ja — Document.ToHtml(), Document.ToMarkdown() en Document.ToDocx() renderen elke pagina van het document; de equivalente Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx() methoden renderen één enkele pagina.
Wat is het verschil tussen markeren en het toepassen van een redactie?
Page.AddRedact() markeert alleen een gebied — de onderliggende inhoud is nog aanwezig en kan gekopieerd en geselecteerd worden totdat Page.ApplyRedactions() wordt aangeroepen, wat het destructief verwijdert.
Hoe maak ik een annotatie of formulierveld permanent en niet-bewerkbaar?
Roep Flatten() aan op het object dat wordt geretourneerd door de Add*() oproep die het heeft gemaakt — Annotation.Flatten() voor annotaties, of de eigen Flatten() van de veld-handle voor AcroForm velden.
Waar ga ik daarna naartoe?
Getting Started behandelt de installatie en een eerste werkend voorbeeld. Deze ontwikkelaarsgids gaat verder met toegewijde pagina’s voor elk capaciteitsgebied die hierboven zijn gelinkt.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
Document | Instappunt — maak, laad, sla op en beheer een PDF |
Document.New() / Document.OpenFile() / Document.Open() | Begin een leeg document, of laad er één vanaf een bestandspad of uit geheugenbytes |
Document.WriteTo() / Document.Save() | Schrijf het document naar een bestandspad of geef bytes terug |
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Render elke pagina naar een ander formaat |
Page.ToImage() / Page.ToSvg() | Render een enkele pagina naar PNG of SVG |
Page.AddHighlight() en andere Page.Add*() annotatiemethoden | Creëer een annotatie, die een live handle teruggeeft |
Annotation.Flatten() | Verwerk het uiterlijk van een annotatie in statische paginainhoud |
Form / Form.AddTextField() / Form.AddCheckbox() | AcroForm façade en veldcreatie |
Document.Sign() / Document.Certify() / Document.VerifySignatures() | Digitale handtekeningen toevoegen of verifiëren |
Page.AddRedact() / Page.ApplyRedactions() | Markeer en pas inhoudsredactie toe |
Document.AutoTag() / Document.GetStructTree() | Auteur en lees de logische structuurboom van het document |