Introductie
Aspose.PDF FOSS voor TypeScript is een nieuwe open-source bibliotheek voor het werken met PDF-documenten vanuit Node.js-code. Het wordt uitgebracht onder de MIT-licentie en wordt geleverd als het @asposefoss/pdf-pakket, dat alleen Node.js (>=22) vereist tijdens uitvoering — er zijn geen andere runtime-afhankelijkheden.
De bibliotheek is georganiseerd rond de Document- en Page-klassen. Document.OpenFile() en Document.Open() laden een PDF van schijf of uit in-memory bytes, en Document.New() start een leeg document; elke pagina in doc.Pages biedt methoden voor het toevoegen van tekst, afbeeldingen, annotaties en AcroForm-velden, evenals het converteren naar andere formaten. Vanaf daar behandelt de API het splitsen, samenvoegen en herschikken van pagina’s, het converteren van documenten naar HTML, Markdown, DOCX, SVG en raster-afbeeldingen, het toevoegen en flattenen van annotaties, het bouwen van interactieve formulieren, en het versleutelen, ondertekenen of redigeren van het resultaat.
Deze release is bedoeld voor ontwikkelaars die PDF-verwerking nodig hebben binnen een Node.js- of TypeScript-codebase zonder commerciële licentie: document-assemblage-pijplijnen, publicatietools die PDF’s renderen naar web-klare formaten, automatisering van formulierinvulling, en services die gevoelige PDF’s moeten redigeren of versleutelen vóór distributie. Het project bevindt zich momenteel op versie 0.1.0 en is in actieve vroeg-fase ontwikkeling, waardoor API’s en functionaliteitsdekking kunnen evolueren vóór een stabiele release.
Wat er inbegrepen is
Document- en paginabeheer
Document.OpenFile() / Document.Open() laden een PDF van schijf of een in-memory Uint8Array; Document.New() start een leeg document. Pagina’s kunnen worden gesplitst in afzonderlijke documenten met Document.Split(), geëxtraheerd met Document.ExtractPages(), samengevoegd met Document.Merge(), of toegevoegd aan een bestaand document met Document.Append(). Document.WriteTo() schrijft het resultaat terug, eventueel gecomprimeerd.
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();
Formaatconversie
Volledige documenten renderen naar HTML met Document.ToHtml() en naar GitHub-geïmpregneerde Markdown met Document.ToMarkdown(). Individuele pagina’s renderen naar zelfstandige SVG met Page.ToSvg() of raster PNG-bytes met Page.ToImage(). Document.ToDocx() / Page.ToDocx() produceren gereflowde of vaste-lay-out .docx output.
import { Document } from '@asposefoss/pdf';
const doc = Document.OpenFile('in.pdf');
const png = doc.Pages[0].ToImage({ scale: 2 }); // Uint8Array of PNG bytes @144 DPI
const html = doc.ToHtml(); // standalone semantic HTML, all pages
const md = doc.ToMarkdown(); // GFM Markdown, all pages
const docx = doc.ToDocx(); // .docx bytes, reflowed, images in the package
Annotaties
Elke Page biedt annotatiemethoden direct: Page.AddHighlight(), Page.AddUnderline(), Page.AddSquiggly() en Page.AddStrikeOut() voegen tekstmarkering toe; Page.AddTextNote(), Page.AddFreeText() en Page.AddStamp() voegen plaknotities, vrijstaande tekst en rubber-stamp-annotaties toe. Getypte subtypes zoals MarkupAnnotation en StampAnnotation bieden een Flatten()-methode om de annotatie in de paginainhoud te verwerken.
AcroForms
De Form-klasse bouwt interactieve velden direct: AddTextField(), AddCheckbox(), AddRadioGroup(), AddComboBox(), AddListBox() en AddPushButton() retourneren elk een getypeerde Field-subklasse. Het aanroepen van SetStyle() of GenerateAppearance() op een veld ververst de gerenderde weergave, en Document.FlattenForm() verwerkt de huidige waarde van elk veld in statische paginainhoud.
function addFormFields(doc: Document, page: Page): void {
const form = doc.Form;
const pageNum = page.Number;
// Text field
form.AddTextField({
page: pageNum, rect: [200, 670, 450, 690], name: 'FullName', value: 'Alice Sample',
});
// Checkbox
form.AddCheckbox({
page: pageNum, rect: [200, 630, 218, 648], name: 'Subscribe',
checked: true,
});
}
Beveiliging en Redactie
Document.WriteTo() accepteert een encrypt-optie die AES-128, AES-256 of RC4 ondersteunt, met een afzonderlijk gebruiker- en eigenaar-wachtwoord en granulaire Permissions. Gevoelige regio’s of overeenkomende tekst kunnen permanent worden verwijderd met Document.Redact(), Document.RedactText() en Page.ApplyRedactions(), geconfigureerd via RedactOptions.
import { Document } from '@asposefoss/pdf';
const doc = Document.OpenFile('in.pdf');
doc.WriteTo('locked.pdf', {
encrypt: {
userPassword: 'open-me', // required to open (default '')
ownerPassword: 'full-rights', // default: same as userPassword
algorithm: 'aes256', // 'aes256' (default) | 'aes128' | 'rc4'
permissions: { copying: false, modifying: false },
encryptMetadata: true,
},
});
Snelstart
Installeer het pakket, open vervolgens een bestaande PDF, bewerk de pagina’s en metadata, en sla het resultaat op:
git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run buildimport { 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]);
// Metadata
doc.SetMetadata({ title: 'Report', author: 'Jane', custom: { Dept: 'R&D' } });
// Save
doc.WriteTo('output.pdf'); // or: const bytes = doc.Save();
doc.WriteTo('small.pdf', { compressed: true }); // xref stream + object streams
Ondersteunde formaten
| Formaat | Extensie | Lezen | Schrijven |
|---|---|---|---|
| ✓ | ✓ | ||
| Markdown | md | ✓ | ✓ |
| SVG | svg | ✓ | ✓ |
| TIFF | tiff | ✓ | ✓ |
| DOCX | docx | — | ✓ |
| HTML | html | — | ✓ |
| PNG | png | — | ✓ |
| EPUB | epub | — | ✓ |
Open source & licensering
Aspose.PDF FOSS voor TypeScript wordt uitgebracht onder de MIT-licentie, met de broncode gepubliceerd op GitHub. Er is geen evaluatiewatermerk, gebruikslimiet, of apart licentiebestand om te beheren, en de bibliotheek mag in commerciële producten worden gebruikt zonder royalty’s.
Het pakket bevindt zich momenteel op versie 0.1.0, wat duidt op actieve ontwikkeling in een vroeg stadium. Node.js (>=22) is de enige runtime-vereiste, en het pakket heeft geen andere externe afhankelijkheden.