איך למחוק תוכן PDF ב-TypeScript

איך למחוק תוכן PDF ב-TypeScript

מדריך זה מראה כיצד לטשטש תוכן PDF באמצעות Aspose.PDF FOSS עבור TypeScript. Page.AddRedact() מסמן אזור; Page.ApplyRedactions() משכתב באופן הרסני את זרם התוכן כך שהגלפיים מתחת לכל אזור מסומן נעלמים. סימונים שלא יושמו נשארים כהערות רגילות שניתן להעתיק ולבחור. נדרש Node.js 22 או גרסה מאוחרת יותר.

מדריך שלב אחר שלב

שלב 1: התקנת החבילה

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

אמת את ההתקנה על-ידי ייבוא המחלקה Document בקובץ TypeScript חדש — שורת קוד זו אמורה להיפתר ללא שגיאה לאחר שהחבילה מותקנת:

import { Document } from '@asposefoss/pdf';

שלב 2: ייבוא מחלקות נדרשות

ייבא את Document כדי לפתוח את הקובץ; AddRedact() ו-ApplyRedactions() נקראים ישירות על מופעי ה-Page שהם מחזירים:

import { Document } from '@asposefoss/pdf';

שלב 3: סימון אזור למחיקה

Page.AddRedact(opts) מצייר RedactAnnotation מעל rect. fill מגדיר את הצבע שמצופה על האזור לאחר היישום, ו-overlayText (עם align, fontSize, textColor) מדפיס תווית החלפה כגון [REDACTED]:

const doc = Document.OpenFile('memo.pdf');
const page = doc.Pages[0];

page.AddRedact({
  rect: [216, 548, 460, 566],
  fill: [0, 0, 0],
  overlayText: '[REDACTED]',
  align: 'center',
  fontSize: 9,
  textColor: [1, 1, 1],
});

שלב 4: יישום מחיקות

Page.ApplyRedactions() משכתב באופן הרסני את זרם התוכן — הגליפים שבתוך כל RedactAnnotation המסומנים על הדף נעלמים לצמיתות, והסימונים שהוחלו מוסרים. סימונים שנוספו לאחר קריאה זו נותרים ללא יישום: הערך מתחתיהם עדיין קריא וניתן עדיין להעתקה:

page.ApplyRedactions();
doc.WriteTo('memo-redacted.pdf');

בעיות נפוצות ותיקונים

סימן מחיקה מציג את התיבה השחורה אך הטקסט שמתחתיו עדיין ניתן להעתקה. Page.ApplyRedactions() מעולם לא נקרא (או נקרא לפני שהסימן נוסף). סימון עם AddRedact() לבד רק מצייר anotation על האזור — התוכן מתחתיו נהרס רק פעם אחת ApplyRedactions() מתבצע.

ApplyRedactions() הסיר תוכן של הסימן rect לא כיסה. rect הוא האזור המדויק שנכתב מחדש — טקסט או תמונות שחופפות אותו חלקית עדיין יכולות להיהרס חלקית בגבול. סימוני גודל בנדיבות סביב תוכן היעד.

אין אפשרות להעביר תוצאות חיפוש ישירות אל Page.AddRedact(). התאמה מ Page.SearchAnnotationText() נושאת מטא-נתוני אנוטציה, ולא גאומטריית דף — היא אינה באותה צורה כמו ה rect an AddRedact() הסימון מצפה. Page.MarkRedactText(find, opts) and Page.RedactText(find, opts) הם נקודות הכניסה למחיקה לפי חיפוש טקסט, ושניהם זמינים גם ב- Document רמה כדי לסרוק כל דף בקריאה אחת.

מחיקה נשארת אחרי הצפנה באופן בלתי צפוי. מחיקה והצפנה הן פעולות בלתי תלויות — יש להחיל מחיקות לפני שמירה עם encrypt אפשרויות אם המטרה היא גם להסיר את התוכן וגם להגביל גישה למה שנשאר; יישום בסדר הפוך אינו מבטל שמירה שכבר הוצפנה.

שאלות נפוצות

מה ההבדל בין סימון ליישום של redaction?

AddRedact() רק יוצר אנוטציה המתארת היכן מתוכננת redaction — התוכן המכוסה נשאר ללא שינוי וניתן עדיין לבחירה/העתקה עד ש-ApplyRedactions() רץ ומשכתב את העמוד באופן הרסני.

האם אפשר לבצע redaction על-ידי חיפוש טקסט במקום לציין מלבן?

כן — Page.MarkRedactText(find, opts) מסמן כל התאמה של find ליישום מאוחר יותר, ו-Page.RedactText(find, opts) מסמן ומיישם בקריאה אחת. שניהם קיימים גם ב-Document כדי לסרוק את כל המסמך.

האם ApplyRedactions() משפיע על אנוטציות מלבד סימוני המחיקה?

לא — הוא משכתב את זרם התוכן מתחת לסימני RedactAnnotation שלו; סוגי אנוטציה אחרים בדף אינם מושפעים מהקריאה הזו.

האם מחיקה ניתנת להפיכה?

לא — ApplyRedactions() הוא הרסני. שמור את הקובץ המקורי אם יש צורך לשחזר את התוכן הלא מחולץ מאוחר יותר.

ראה גם

 עברית