Troubleshooting
דף זה אוסף תיקונים לבעיות הנפוצות ביותר שנפגשו ב-Aspose.PDF FOSS עבור החתימה, ההערה, המחיקה, הציור, ההמרה ו-APIs של הטקסט של TypeScript.
שיטות אסינכרוניות (Sign, Certify, VerifySignatures) נראות כאילו אינן עושות דבר
Document.Sign(), Document.Certify() ו-Document.VerifySignatures() כולם מחזירים Promise. קריאה לאחת ללא await מאפשרת להמשך הביצוע מייד — doc.WriteTo() או doc.Save() הבא(ים) יכולים לרוץ לפני שהחתימה נכתבה בפועל, ו-console.log() הבא על תוצאת האימות רושם Promise לא פתור במקום מערך ה-SignatureReport[]:
// Wrong — WriteTo can race ahead of Sign:
approving.Sign(identity, opts);
approving.WriteTo('signed.pdf');
// Correct:
await approving.Sign(identity, opts);
approving.WriteTo('signed.pdf');ראה את Security מדריך לזרימת האישור-לאחר-חתימה המלאה.
SearchAnnotationText() ו-SearchAnnotations() מחזירים תוצאות שונות עבור אותו טקסט
שתי שיטות החיפוש הללו אינן חופפות בשני הכיוונים באותו הדף. SearchAnnotationText() מתאים למטא-נתוני ההערה המילוליים (/Contents, /T, /Subj); SearchAnnotations() מתאים ל rendered הטקסט שנוצר על ידי המראה של ההערה המסומנת עצמה (למשל a FreeText גוף). ערך שנשמר רק ב /Contents נמצא על ידי אחת ונפסד על ידי השנייה:
const metadataHits = page.SearchAnnotationText('confidential'); // matches /Contents, /T, /Subj
const renderedHits = page.SearchAnnotations('confidential'); // matches rendered markup text
אף אחת מהשיטות אינה מחפשת בטקסט הרגיל של העמוד — השתמש ב Page.GetText() or Page.Search() בשביל זה. ראה את הערות מדריך עבור ההערה המלאה API.
סימון מחיקה לבד אינו מסיר תוכן
Page.AddRedact() מצייר רק RedactAnnotation על פני אזור — התוכן מתחתיו אינו נגע בו ונותר ניתן להעתקה עד ש Page.ApplyRedactions() מתבצע ומשכתב בצורה הרסנית את זרם התוכן. סימנים שנוספו after ApplyRedactions() כבר הורץ ונשאר לא מוחל ללא גבול:
page.AddRedact({ rect: [216, 548, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
page.ApplyRedactions(); // only now is the content actually destroyed
ראה את Redaction מדריך לפרטים של mark-vs-apply והסתרת text-search.
קריאות ציור של PageGraphics אף פעם אינן מופיעות בעמוד
Page.Graphics() מחזיר PageGraphics שמאגר כל קריאת moveTo()/rect()/circle()/stroke()/fill() עד ש-apply() מתחייבת אל העמוד. רצף שחסר את קריאת apply() שלו אינו מצייר דבר:
const g = page.Graphics();
g.setStrokeColor([0.2, 0.2, 0.2]).setLineWidth(1).rect(80, 300, 200, 100).stroke();
g.apply(); // required — nothing above is visible without this call
ראה את Images מדריך לציור המלא ושכבת תוכן אופציונלית API.
Document.ToHtml() ותיוג ידני תלויים שניהם בעץ מבנה
מצב סמנטי Document.ToHtml() מסדר מחדש את התוכן על ידי הליכה בעץ המבנה; במסמך ללא תיוג הוא נופל בשקט לגוף הומוריסטי והייצוא מאבד את מבנה הכותרות. אותו עץ הוא מה שתיוג ידני (StructTreeRoot.Append() / StructElement.MarkContent()) כותב אליו ומה ש-Document.GetStructTree() מחזיר — קראו Document.CreateStructTree() או Document.AutoTag() לפני כל אחד מהם:
const root = doc.GetStructTree();
if (!root) throw new Error('document is not tagged yet');ראה את Conversion and Structure מדריכים ל-APIs של יצוא ותיוג בהתאמה.
AddTextBlock() חותך טקסט בשקט במסגרת התיחום שלו
Page.AddTextBlock(text, rect, options) עוטף טקסט בתוך rect ומחזיר כל מה שלא נכנס (או null אם הכל נכנס) — הוא לא מרחיב את המסגרת ולא זורק שגיאה כאשר התוכן חורג. ערך החזרה שמוזנח משמעותו שהטקסט העולה פשוט לא מצויר:
const rest = page.AddTextBlock(longText, [72, 600, 200, 150], { fontSize: 11 });
if (rest) page.AddTextBlock(rest, [300, 600, 200, 150]); // route the overflow somewhere
ראה את Text מדריך למיקום טקסט מלא והוצאת API.