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 buildEllenő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.