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 build
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]);

// 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

FormaatExtensieLezenSchrijven
PDFpdf✓✓
Markdownmd✓✓
SVGsvg✓✓
TIFFtiff✓✓
DOCXdocx—✓
HTMLhtml—✓
PNGpng—✓
EPUBepub—✓

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.


Aan de slag

Gerelateerde bronnen