Redaction
Redaction
דף זה מתאר הסרת תוכן באופן קבוע מדף PDF. Aspose.PDF FOSS עבור TypeScript מציע שני זרמי עבודה של הסתרה: זרם דו-שלבי של סימון-לאחר-יישום שאתה סוקר לפני המחויבות, וזרם מיידי של קריאה אחת. שניהם זמינים ב-Page עבור דף יחיד וב-Document עבור המסמך כולו.
סימון ויישום הסתרות
Page.AddRedact() מסמן אזור מלבני עם אנוטציה /Redact — התוכן מתחתיו נשאר ללא שינוי וניתן עדיין להעתקה. שום דבר אינו מוסר בפועל עד ש-Page.ApplyRedactions() פועל: הוא משכתב בצורה הרסנית את זרם התוכן עבור כל סימון /Redact על הדף, מצייר את שכבת העל של כל סימון (המילוי /IC שלו ו-/OverlayText), מסיר את הסימונים, ומחזיר את מספר ההסתרות שהוחלו. סימונים שנוספו לאחר שהקריאה ל-ApplyRedactions() בוצעה נשארים ללא יישום.
page.AddRedact({
rect: [220, 550, 460, 566],
fill: [0, 0, 0],
overlayText: '[REDACTED]',
align: 'center',
fontSize: 9,
textColor: [1, 1, 1],
});
const applied = page.ApplyRedactions();
console.log('Redactions applied:', applied);הסתרה מיידית
Page.Redact() ו-Page.RedactText() משלבנים סימון ויישום בקריאה אחת: הם באמת מסירים טקסט ותמונות מכוסות, מסלקים משאבים שההסרה משאירה יתומים, ומציירים קופסת סימון אטומה על כל אזור — ללא שלב ApplyRedactions() נפרד ושום דבר אינו נשאר לסקירה תחילה. Page.Redact() מקבל רשימה מפורשת של אזורים Rect; Page.RedactText() מוצא ומסיר כל מופע של מחרוזת חיפוש או RegExp, באותה צורה שבה Page.SearchAnnotationText() מחפש. שניהם מקבלים אובייקט RedactOptions השולט ב-color של הסמן, האם ל-scrubMetadata, והאם ל-keepAnnotations שמתחילים על אזור מוסתר.
מכיוון שהם מסירים תוכן מיידית ללא שלב סקירה, עדיף להשתמש ב-AddRedact() + ApplyRedactions() כאשר סימון צריך להיות ניתנת לבחינה לפני המחויבות, ו-Redact() / RedactText() כאשר האזורים או מונחי החיפוש כבר ידועים כבטוחים להסרה.
הסתרת מסמך שלם
אותן שתי זרימות עבודה קיימות ב-Document, המופעלות על כל העמודים בבת אחת: Document.MarkRedactText() מסמנת כל מופע של מונח חיפוש בכל העמודים, Document.ApplyRedactions() מיישמת כל סימון במסמך, ו-Document.Redact() / Document.RedactText() מסתרות אזורים של עמוד יחיד או מונח חיפוש לכל המסמך מיידית, ומשקפות את המקבילים שלהם ב-Page.
טיפים ושיטות מומלצות
- השתמש ב-
AddRedact()+ApplyRedactions()כאשר הסתרה צריכה להיות ניתנת לבחינה לפני שהיא נכנסת לתוקף; השתמש ב-Redact()/RedactText()כאשר האזורים כבר אושרו כבטוחים להסרה מיידית. - הוסף כל סימון
AddRedact()עבור דף לפני קריאתApplyRedactions()— סימונים שמתווספים לאחר מכן אינם נכללים באותה קריאה ונשארים לא מוחלים. - עבור את
scrubMetadata: trueב-RedactOptions/ApplyRedactionsOptionsכאשר התוכן המוסתר עשוי גם להופיע במטא-דאטה של המסמך (/Infoאו XMP). RedactText()ו-MarkRedactText()מחפשים באותם כללי התאמה כמוSearchAnnotationText()/Search, ולכן מחרוזת חיפוש שלא תתאים שם תיכשל גם בהסתרה.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
| סימן מחיקה אינו משפיע | Page.ApplyRedactions() מעולם לא נקרא | קרא ל-Page.AddRedact() עבור כל סימן תחילה, ואז קרא ל-Page.ApplyRedactions() פעם אחת |
| התוכן עדיין ניתן לשחזור לאחר סימן | הסימן השתמש ב-AddRedact() (סימון-בלבד) ללא קריאה ל-ApplyRedactions() אחריה | הפעל ApplyRedactions(), או השתמש ב-Redact() / RedactText() להסרת קריאה אחת |
| טקסט מוסתר חוזר במטא-דאטה של המסמך המופק | scrubMetadata לא הוגדר | העבר את { scrubMetadata: true } באובייקט האפשרויות |
ApplyRedactions() מחזיר 0 | לא היו סימני /Redact בעמוד כאשר הוא נקרא | אשר ש-AddRedact() (או MarkRedactText()) רץ ראשון ומכוון לאותו דף |
FAQ
מה ההבדל בין AddRedact ל-Redact?
AddRedact() מסמן רק אזור — התוכן עדיין קיים וניתן להעתקה עד ש-ApplyRedactions() פועל. Redact() מסיר את התוכן באותו קריאה, ללא שלב יישום נפרד.
האם אני יכול למחוק על-ידי חיפוש טקסט במקום לציין קואורדינטות?
כן. RedactText() מוצא ומסיר מייד כל הופעה של מחרוזת חיפוש או RegExp; MarkRedactText() עושה זאת גם הוא, אך רק מסמן את ההתאמות, ומשאיר אותן לקריאה מאוחרת יותר של ApplyRedactions().
האם המחיקה פועלת על כל המסמך, או רק על דף אחד בכל פעם?
שניהם. Page.Redact() / Page.ApplyRedactions() והקבוצות שלהם פועלים על דף אחד; Document.Redact() / Document.ApplyRedactions() והקבוצות שלהם פועלים על כל הדפים.
האם ההערות הסמוכות לאזור שנמחק מוסרות גם הן?
רק אם תתן להם להיות. העבר את keepAnnotations: true באובייקט האפשרויות כדי לשמר את ההערות שחופפות אזור מושמט במקום להסיר אותן יחד איתו.
API Reference סיכום
| מחלקה/מתודה | תיאור |
|---|---|
Page.AddRedact() | סמן אזור מלבני עם הערת /Redact, מבלי להסיר את התוכן עדיין |
Page.ApplyRedactions() | הסר באופן הרסני כל אזור מסומן בדף והחזר את הספירה המוחלת |
Page.Redact() | הסר מיידית תוכן באזורים הנתונים, ללא שלב יישום נפרד |
Page.RedactText() | מצא והסתר מיידית כל הופעה של מחרוזת חיפוש או RegExp |
Page.MarkRedactText() | מצא וסמן (בלי להחיל) כל מופע של מחרוזת חיפוש או RegExp |
Document.ApplyRedactions() | החל כל סימון /Redact על כל המסמך |
Document.Redact() / Document.RedactText() | הסתר מייד אזורים בעמוד אחד, או מונח חיפוש בכל העמודים |
Document.MarkRedactText() | סמן כל מופע של מונח חיפוש בכל העמודים |