Hogyan dolgozzunk a Core PDF API -val TypeScriptben

Hogyan dolgozzunk a Core PDF API -val TypeScriptben

Ez az útmutató bemutatja, hogyan lehet megnyitni, létrehozni, szerkeszteni, felosztani és menteni a PDF-dokumentumokat a Aspose.PDF FOSS segítségével TypeScript számára. A Document és Page osztályok a könyvtár minden műveletének belépési pontjai – fájlok megnyitása és létrehozása, oldalak helyben szerkesztése, dokumentumok felosztása és egyesítése, valamint az eredmény mentése. Csak a Node.js 22 vagy újabb verziója szükséges.

Lépésről-lépésre útmutató

1. lépés: A csomag telepítése

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

Ellenőrizze a telepítést úgy, hogy importálja a Document osztályt egy új TypeScript fájlba – ennek a sornak hiba nélkül kell feloldódnia, miután a csomag telepítve van:

import { Document } from '@asposefoss/pdf';

2. lépés: A szükséges osztályok importálása

Importálja a(z) Document -t PDF betöltéséhez vagy létrehozásához, és a(z) PageFormat -t, ha egy dokumentumot a semmiből szeretne kezdeni:

import { Document, PageFormat } from '@asposefoss/pdf';

3. lépés: Létező PDF megnyitása és oldalak szerkesztése

Document.OpenFile() megnyit egy PDF-et egy fájlútvonalból; Document.Open() elfogad egy memóriában lévő Uint8Array-t. Az oldalakat helyben lehet megtekinteni és szerkeszteni, a(z) Document.WriteTo() pedig visszaírja az eredményt.

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

4. lépés: Új PDF létrehozása a semmiből

Document.New() egy üres dokumentumot indít egy adott PageFormat esetén. Page.AddText() pozícionált szöveget helyez el, és a(z) Document.AddPage() további oldalakat fűz hozzá.

import { Document, PageFormat } from '@asposefoss/pdf';
const doc = Document.New(PageFormat.A4);          // one blank A4 page
doc.Pages[0].AddText('Hello', 72, 720, { fontSize: 14 });
doc.AddPage(PageFormat.A4.landscape());           // append more as you go
doc.WriteTo('scratch.pdf');

5. lépés: Oldalak szétválasztása, kinyerése és összekapcsolása

Document.Split() oldalanként egy Document-t ad vissza. Document.ExtractPages() egy 1-től kezdődő, ismétléseket megengedő oldallistát fogad, és egy új Document-t ad vissza csak ezekkel az oldalakkal. A(z) Document.Append() és a(z) Document.InsertPage() oldalakat más dokumentumokba másolják, a(z) Document.Merge() pedig több dokumentumot egybevon egybe.

const parts = doc.Split();                       // one Document per page
const chapter = doc.ExtractPages([3, 4, 5]);     // subset (1-based, repeats allowed) as a new Document

docA.Append(docB);                               // copy all of docB's pages onto docA
docA.InsertPage(1, docB.Pages[0]);               // copy a single page across documents

Gyakori problémák és megoldások

Document.OpenFile() throws InvalidPasswordError. A PDF jelszóval védett, és nem adták meg a jelszót (vagy rossz jelszót). Pass { password: '...' } to Document.OpenFile() / Document.Open().

RemovePage() or ExtractPages() eltávolítja vagy kicsomagolja a rossz oldalt. Ezek a módszerek 1-alapú oldal számokat használnak, míg doc.Pages egy egyszerű 0-alapú tömb — a két indexelési séma könnyen összekeverhető.

WriteTo() a kimenet nagyobb a vártnál. Az alapértelmezett mentés nem használ xref/object-stream tömörítést. Pass { compressed: true } to Document.WriteTo() a bekapcsolásához.

Módosítások, amelyek a doc.Pages[i] nem jelennek meg a mentett fájlban. Az oldal szerkesztéseinek a hívás előtt kell megtörténniük Document.WriteTo() / Document.Save() — nincs külön “commit” lépés, de a mentés után végzett szerkesztések nem jelennek meg egy már lemezre írt fájlban.

Gyakran ismételt kérdések

Hogyan tölthetem be a PDF-et egy memóriában tárolt pufferből a fájlútvonal helyett?

Adjon át egy Uint8Array a Document.Open() számára a Document.OpenFile() elérési útja helyett.

Hogyan forgathatom el egy oldalt?

Állítsa be a page.Rotate értékét 90, 180 vagy 270 értékre, majd mentse a dokumentumot a Document.WriteTo() használatával.

Másolhatok egyetlen oldalt egy dokumentumból egy másikba?

Igen — a Document.InsertPage(at, sourcePage) egy oldalt másol egy másik dokumentumból a megadott 1-alapú pozíción, anélkül, hogy az egész dokumentumot másolná.

Lehetővé teszi a Document.ExtractPages(), hogy ugyanaz az oldal kétszer megjelenjen?

Igen. A Document.ExtractPages() számára átadott oldalszám-lista megengedi az ismétléseket, így ugyanaz a forrásoldal többször is megjelenhet az eredményben.

Lásd még:

 Magyar