Introducere

Aspose.PDF FOSS pentru TypeScript este o bibliotecă nouă open-source pentru lucrul cu documente PDF din cod Node.js. Este lansată sub licența MIT și este livrată ca pachetul @asposefoss/pdf, necesitând doar Node.js (>=22) la rulare — nu există alte dependențe la runtime.

Biblioteca este organizată în jurul claselor Document și Page. Document.OpenFile() și Document.Open() încarcă un PDF de pe disc sau din bytes în memorie, iar Document.New() pornește un document gol; fiecare pagină din doc.Pages expune metode pentru adăugarea de text, imagini, adnotări și câmpuri AcroForm, precum și pentru convertirea sa în alte formate. De acolo, API acoperă divizarea, îmbinarea și reordonarea paginilor, convertirea documentelor în HTML, Markdown, DOCX, SVG și imagini raster, adăugarea și aplatizarea adnotărilor, crearea de formulare interactive și criptarea, semnarea sau redactarea rezultatului.

Această versiune este destinată dezvoltatorilor care au nevoie de procesare PDF în interiorul unui cod Node.js sau TypeScript fără o licență comercială: fluxuri de asamblare a documentelor, instrumente de publicare care redau PDF-uri în formate pregătite pentru web, automatizare a completării formularelor și servicii care trebuie să redacteze sau să cripteze PDF-uri sensibile înainte de distribuție. Proiectul este în prezent la versiunea 0.1.0 și se află în dezvoltare activă în stadiu incipient, astfel încât API-urile și acoperirea funcționalităților pot evolua înainte de o versiune stabilă.


Ce este inclus

Gestionarea documentelor și a paginilor

Document.OpenFile() / Document.Open() încarcă un PDF de pe disc sau un Uint8Array în memorie; Document.New() pornește un document gol. Paginile pot fi divizate în documente separate cu Document.Split(), extrase cu Document.ExtractPages(), îmbinate cu Document.Merge() sau adăugate la un document existent cu Document.Append(). Document.WriteTo() scrie rezultatul înapoi, opțional comprimat.

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();

Conversie de format

Documentele întregi se redau în HTML cu Document.ToHtml() și în Markdown cu aromă GitHub cu Document.ToMarkdown(). Paginile individuale se redau în SVG independent cu Page.ToSvg() sau în octeți raster PNG cu Page.ToImage(). Document.ToDocx() / Page.ToDocx() produc ieșire .docx reflowed sau cu layout fix.

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

Anotări

Fiecare Page expune direct metode de adnotare: Page.AddHighlight(), Page.AddUnderline(), Page.AddSquiggly(), și Page.AddStrikeOut() adaugă marcaj de text; Page.AddTextNote(), Page.AddFreeText() și Page.AddStamp() adaugă notițe lipicioase, text liber și adnotări tip ștampilă de cauciuc. Subtipurile tipizate precum MarkupAnnotation și StampAnnotation expun o metodă Flatten() pentru a integra adnotarea în conținutul paginii.

AcroForms

Clasa Form construiește câmpuri interactive direct: AddTextField(), AddCheckbox(), AddRadioGroup(), AddComboBox(), AddListBox() și AddPushButton() fiecare returnează o subclasă Field tipizată. Apelarea lui SetStyle() sau GenerateAppearance() pe un câmp reîmprospătează aspectul său redat, iar Document.FlattenForm() integrează valoarea curentă a fiecărui câmp în conținutul static al paginii.

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,
  });
}

Securitate și Redactare

Document.WriteTo() acceptă o opțiune encrypt care suportă AES-128, AES-256 sau RC4, cu o parolă separată pentru utilizator și proprietar și Permissions granular. Regiuni sensibile sau text potrivit pot fi eliminate permanent cu Document.Redact(), Document.RedactText() și Page.ApplyRedactions(), configurate prin 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,
  },
});

Pornire rapidă

Instalați pachetul, apoi deschideți un PDF existent, editați paginile și metadatele sale și salvați rezultatul:

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

Formate acceptate

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

Open Source & Licențiere

Aspose.PDF FOSS pentru TypeScript este lansat sub licența MIT, cu sursa publicată pe GitHub. Nu există filigran de evaluare, limită de utilizare sau fișier de licență separat de gestionat, iar biblioteca poate fi utilizată în produse comerciale fără redevențe.

Pachetul este în prezent la versiunea 0.1.0, reflectând o dezvoltare activă în stadiu incipient. Node.js (>=22) este singura cerință de runtime, iar pachetul nu are alte dependențe terțe.


Începeți

Resurse conexe