פעולות תוכן
פעולות תוכן
עמודי PDF מוצגים על ידי רצף של מפעילים המאוחסנים בזרם תוכן.
Aspose.PDF FOSS for .NET חושף את המפעילים האלה דרך OperatorCollection
בכל Page, ומספק ContentStreamBuilder לבניית תוכן חדש
תכנותית.
קריאת מפעילי זרם תוכן
לכל Page יש מאפיין Contents שמחזיר OperatorCollection. חזור עליו כדי לבדוק כל מפעיל.
using var doc = Document.Open(pdfBytes);
var page = doc.Pages[1];
foreach (var op in page.Contents)
{
Console.WriteLine(op.ToString());
}בניית זרמי תוכן
ContentStreamBuilder מספק API רהוט לבניית רצפי מפעילי זרם תוכן כולל ניהול מצב גרפיקה, בניית נתיבים, פלט טקסט והגדרות צבע.
var builder = new ContentStreamBuilder();
builder.SaveState();
builder.SetFillColor(1.0, 0.0, 0.0); // Red fill
builder.SetMatrix(1, 0, 0, 1, 72, 700); // Translate
// ... add drawing or text operators
builder.RestoreState();מצב גרפי
GraphicsState עוקב אחרי מטריצת ההמרה הנוכחית, מצב הטקסט, וערכי הצבע כאשר המפעילים מתבצעים. פעולות מפתח:
var gs = new GraphicsState();
gs.Save();
gs.ConcatMatrix(new Matrix(1, 0, 0, 1, 100, 200));
gs.Restore();אופרטורים של צבע
SetColor ו-SetColorStroke מגדירים את צבע המילוי וקו המתאר בהתאמה. הם מקבלים רכיבי RGB, CMYK או גווני אפור.
// RGB fill color (blue)
var fill = new SetColor(0, 0, 1);
// RGB stroke color (red)
var stroke = new SetColorStroke(1, 0, 0);אופרטורים של טקסט
ShowText מציג מחרוזת טקסט במיקום הטקסט הנוכחי תוך שימוש בגופן ובגודל הנוכחיים ממצב הגרפיקה.
var textOp = new ShowText("Hello, PDF!");SetTextMatrix ממקם טקסט על‑ידי הגדרת מטריצת שינוי עבור מרחב הטקסט.
מצב גרפי מורחב
ExtGState שולט בתכונות רינדור מתקדמות כמו מילוי וקו מתאר, אלפא (שקיפות) ומצב מיזוג.
טיפים ושיטות מומלצות
- תמיד לצמד
SaveState/RestoreState(אוq/Q) כדי למנוע פגיעה בערימת מצב הגרפיקה. - השתמש ב‑
ContentStreamBuilderלתוכן חדש במקום לבנות אובייקטי מפעילים באופן ידני. - בדוק את
OperatorCollectionבמצב קריאה בלבד לפני שינוי — רצפי מפעילים בלתי צפויים יכולים לגרום לבעיות בתצוגה. - מפעילי הצבע חייבים להתאים למרחב הצבע הנוכחי (RGB, CMYK, או grayscale).
- השתמש ב‑
SetAdvancedColorלמרחבי צבע מבוססי תבנית ו‑ICC.
בעיות נפוצות
| Issue | Cause | Fix |
|---|---|---|
| הטקסט אינו נראה לאחר הוספת מפעילים | לא הוגדר גופן במצב הטקסט | הוסף מפעיל SetFont לפני ShowText |
| הצבעים מופיעים באופן שגוי | אי התאמה במרחב הצבע (RGB לעומת CMYK) | השתמש במפעיל המתאים למרחב הצבע הפעיל |
| גלישת מחסנית מצב גרפיקה | זוגות Save / Restore לא מאוזנים | ודא שלכל SaveState יש התאמה עם RestoreState |
| התוכן מופיע במיקום שגוי | המרת מטריצה חסרה או שגויה | אמת ערכי SetMatrix או ConcatMatrix |
שאלות נפוצות
מהו זרם תוכן של PDF?
זרם תוכן הוא רצף של מפעילים המתארים כיצד לעבד דף — ציור נתיבים, הצבת טקסט, הגדרת צבעים וניהול מצב גרפי.
האם אני יכול להוסיף תוכן חדש לדף קיים?
כן. גש לpage.Contents והוסף מפעילים חדשים, או השתמש
בContentStreamBuilder כדי לבנות רצף ולהוסיף אותו.
איך אני עושה טקסט שקוף?
השתמש ב-ExtGState כדי להגדיר את אלפא המילוי (ca) לערך בין 0 (שקוף לחלוטין) ל‑1 (אטום לחלוטין).
API סיכום הפניות
| Class / Method | Description |
|---|---|
OperatorCollection | רצף של מפעילי זרם תוכן בעמוד |
ContentStreamBuilder | בונה רהוט לבניית רצפי מפעילים |
ContentStreamBuilder.SaveState | דחיפת מצב הגרפיקה הנוכחי למחסנית |
ContentStreamBuilder.RestoreState | שליפת מצב הגרפיקה מהמחסנית |
ContentStreamBuilder.SetFillColor | הגדרת צבע המילוי במרחב הצבע הנוכחי |
ContentStreamBuilder.SetMatrix | החלת שינוי קואורדינטות |
GraphicsState | עוקב אחרי מטריצת השינוי, הצבע ומצב הטקסט |
SetColor | מפעיל המגדיר את צבע הלא‑קו (מילוי) |
SetColorStroke | מפעיל המגדיר את צבע הקו |
SetAdvancedColor | מפעיל למרחבי צבע מבוססי תבנית / ICC |
ShowText | מפעיל הממחיש מחרוזת טקסט |
SetTextMatrix | מפעיל הממקם טקסט באמצעות מטריצה |
ExtGState | מצב גרפיקה מורחב (אלפא, מצב מיזוג) |