ניהול מסמכים
ניהול מסמכים
Document הוא האובייקט השורש ב‑Aspose.PDF FOSS עבור .NET. הוא מייצג
קובץ PDF שלם ומספק גישה לעמודים, מטא‑נתונים, שדות טופס, ולכל
המבנים האחרים של PDF. פתח קבצים קיימים עם Document.Open וצור חדשים
עם הקונסטרוקטור Document.
פתיחה ויצירת מסמכים
// Open from a byte array
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
// Open from a file path
using var doc2 = new Document("input.pdf");
// Create a new empty document
using var newDoc = new Document();
newDoc.Pages.Add();
newDoc.Save("new.pdf");עבודה עם דפים
PageCollection מנהל את העמודים של המסמך. ניתן לגשת לעמודים לפי אינדקס מבוסס 1, להוסיף עמודים חדשים או להסיר קיימים.
using var doc = Document.Open(pdfBytes);
// Access first page
var page = doc.Pages[1];
// Add a blank page
var newPage = doc.Pages.Add();
// Get page count
int count = doc.Pages.Count;גיאומטריית דף
כל דף מגדיר מספר תיבות גבול. השתמש בשיטות ה‑setter על Page כדי להתאים אותן.
var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);שמירת מסמכים
שמור לנתיב קובץ, לזרם או למערך בתים.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);קבצים מצורפים
FileSpecification מייצג קבצים מצורפים משובצים ב-PDF.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);חותמות תמונה
ImageStamp מציב תמונת רסטר על דף במיקום שצוין.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");אוספי מפעילים
OperatorCollection בכל דף מחזיק במפעילי זרם התוכן הגולמי. השתמש בו לבחינה או מניפולציה של תוכן ברמה נמוכה.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}טיפים ושיטות מומלצות
- עטוף את
Documentבהצהרתusingכדי לשחרר מידית את ידיות הקבצים. - השתמש ב
Document.Open(byte[])עבור זרימות עבודה בזיכרון כדי למנוע בעיות נעילת קבצים. - שנה את תיבות העמוד (MediaBox, CropBox) לפני הוספת תוכן כדי להבטיח מרחב קואורדינטות נכון.
- קרא ל
Saveרק פעם אחת לאחר כל השינויים — שמירות חוזרות איטיות יותר אך בטוחות. - השתמש ב
PageCollection.Accept(AnnotationSelector)לעיבוד קבוצתי של ההערות בכל העמודים.
בעיות נפוצות
| Issue | Cause | Fix |
|---|---|---|
Document.Open זורק שגיאה על PDF תקין | הקובץ מוצפן עם סיסמה | ספק את פרמטר הסיסמה בבונה |
| ספירת העמודים היא 0 לאחר הבנייה | Document() החדש מתחיל ריק | קרא ל‑doc.Pages.Add() כדי להוסיף עמוד ריק |
| הקובץ השמור גדול יותר מהצפוי | תמונות או גופנים משובצים מספר פעמים | השתמש באופטימיזציה (ראה מדריך המרה ואופטימיזציה) |
Pages[0] זורק שגיאת אינדקס | העמודים ממוספרים מ‑1, לא מ‑0 | השתמש ב‑Pages[1] עבור העמוד הראשון |
שאלות נפוצות
איך למזג שני מסמכי PDF?
השתמש בPdfFileEditor.Concatenate מ‑API של Facades, או העתק ידנית דפים ממסמך אחד לאחר באמצעות PageCollection.
האם ניתן לפתוח PDF מכתובת URL או מזרם?
כן. קרא את תוכן ה-URL לתוך byte[] תחילה, ואז העבר אותו ל
Document.Open(byte[]).
איך אני מוחק דף?
קרא doc.Pages.Delete(pageNumber) כאשר pageNumber הוא מבוסס על 1.
האם Document בטוח לשימוש מרובה‑תהליכים?
לא. כל חוט צריך לעבוד עם המופע שלו של Document.
סיכום התיעוד של API
| Class / Method | Description |
|---|---|
Document | אובייקט PDF ראשי; מכיל דפים, מטא-נתונים ושדות טופס |
Document.Open | מתקן סטטי לפתיחת PDF ממערך בתים |
Document.Save | סיריאליזציה של המסמך לקובץ או זרם |
Page | דף PDF יחיד עם תוכן, הערות וגאומטריה |
Page.SetMediaBox | הגדרת תיבת המדיה של הדף |
Page.SetCropBox | הגדרת אזור החיתוך הגלוי |
Page.SetRotation | סיבוב הדף ב-0, 90, 180 או 270 מעלות |
PageCollection | אוסף מסודר של דפים במסמך |
PageCollection.Add | הוספת דף ריק |
OperatorCollection | אופרטורים גולמיים של זרם תוכן לדף |
FileSpecification | מתאר קובץ מצורף משובץ |
ImageStamp | חותמת שכבת על תמונה לדפים |
XFormCollection | XObjects של טופס לשימוש חוזר במסמך |