מבוא

Aspose.PDF FOSS עבור TypeScript הוא ספרייה קוד פתוח חדשה לעבודה עם מסמכי PDF מקוד Node.js. הוא משוחרר תחת רישיון MIT ומשווק כחבילה @asposefoss/pdf, ודורש רק Node.js (>=22) בזמן ריצה — אין תלות אחרות בזמן ריצה.

הספרייה מאורגנת סביב המחלקות Document ו-Page. Document.OpenFile() ו-Document.Open() טוענים PDF מהדיסק או מבייטים בזיכרון, ו-Document.New() מתחילה מסמך ריק; כל עמוד ב-doc.Pages מציג שיטות להוספת טקסט, תמונות, הערות, ושדות AcroForm, וכן להמרה לפורמטים אחרים. משם, API מכסה פיצול, מיזוג וסידור מחדש של עמודים, המרת מסמכים ל-HTML, Markdown, DOCX, SVG ותמונות רסטר, הוספה והשטחת הערות, בניית טפסים אינטראקטיביים, והצפנה, חתימה או מחיקה של התוצאה.

הגרסה הזו מיועדת למפתחים שצריכים עיבוד PDF בתוך קוד Node.js או TypeScript ללא רישיון מסחרי: צינורות הרכבת מסמכים, כלי פרסום שממירים PDFs לפורמטים מוכנים לאינטרנט, אוטומציה למילוי טפסים, ושירותים שצריכים למחוק או להצפין PDFs רגישים לפני הפצה. הפרויקט נמצא כעת בגרסה 0.1.0 ובפיתוח פעיל בשלבי מוקדמים, ולכן ה-APIs וכיסוי הפיצ’רים עשויים להתפתח לפני שחרור יציב.


מה נכלל

ניהול מסמכים ועמודים

Document.OpenFile() / Document.Open() טוענים PDF מהדיסק או מ-Uint8Array בזיכרון; Document.New() מתחיל מסמך ריק. ניתן לפצל עמודים למסמכים נפרדים עם Document.Split(), לחלץ עם Document.ExtractPages(), למזג עם Document.Merge(), או לצרף למסמך קיים עם Document.Append(). Document.WriteTo() כותב את התוצאה חזרה, באופן אופציונלי דחוס.

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

המרת פורמט

מסמכים שלמים נרשמים ל-HTML עם Document.ToHtml() ול-Markdown בסגנון GitHub עם Document.ToMarkdown(). דפים בודדים נרשמים ל-SVG עצמאי עם Page.ToSvg() או לבייטים של PNG רסטר עם Page.ToImage(). Document.ToDocx() / Page.ToDocx() מייצרים פלט .docx עם זרימה מחדש או פריסת קבועה.

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

הערות

כל Page חושף ישירות שיטות הערה: Page.AddHighlight(), Page.AddUnderline(), Page.AddSquiggly(), ו-Page.AddStrikeOut() מוסיפים סימון טקסט; Page.AddTextNote(), Page.AddFreeText() ו-Page.AddStamp() מוסיפים פתקיות, טקסט חופשי והערות חותמת גומי. תתי-סוגים מתועדים כגון MarkupAnnotation ו-StampAnnotation חושפים שיטת Flatten() לאפיית ההערה לתוך תוכן העמוד.

AcroForms

המחלקה Form בונה שדות אינטראקטיביים ישירות: AddTextField(), AddCheckbox(), AddRadioGroup(), AddComboBox(), AddListBox() ו-AddPushButton() כל אחת מחזירה תת-מחלקה מתועדת של Field. קריאה ל-SetStyle() או GenerateAppearance() על שדה מרעננת את המראה המוצג שלו, ו-Document.FlattenForm() אפייה של הערך הנוכחי של כל שדה לתוך תוכן עמוד סטטי.

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

אבטחה והסתרה

Document.WriteTo() מקבל אפשרות encrypt התומכת ב-AES-128, AES-256 או RC4, עם סיסמת משתמש ובעל נפרדות והגדרות Permissions מדורגות. אזורים רגישים או טקסט תואם יכולים להיות מוסרים לצמיתות באמצעות Document.Redact(), Document.RedactText() ו-Page.ApplyRedactions(), המוגדרים דרך 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,
  },
});

התחלה מהירה

התקן את החבילה, לאחר מכן פתח קובץ PDF קיים, ערוך את העמודים והמטא-נתונים שלו, ושמור את התוצאה:

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

פורמטים נתמכים

פורמטהרחבהקריאהכתיבה
PDFpdf✓✓
Markdownmd✓✓
SVGsvg✓✓
TIFFtiff✓✓
DOCXdocx—✓
HTMLhtml—✓
PNGpng—✓
EPUBepub—✓

קוד פתוח ורישוי

Aspose.PDF FOSS עבור TypeScript משוחרר תחת רישיון MIT, עם קוד מקור המתפרסם ב-GitHub. אין סימן מים של הערכה, מגבלת שימוש, או קובץ רישיון נפרד לניהול, והספרייה ניתנת לשימוש במוצרים מסחריים ללא תמלוגים.

החבילה נמצאת כעת בגרסה 0.1.0, מה שמציין פיתוח פעיל בשלב מוקדם. Node.js (>=22) הוא דרישת הריצה היחידה, ואין לחבילה תלות חיצונית נוספת.


התחלת עבודה

משאבים קשורים