Troubleshooting
Deze pagina verzamelt oplossingen voor de meest voorkomende problemen die zich voordoen in Aspose.PDF FOSS voor de ondertekenings-, annotatie-, redactie-, teken-, conversie- en tekst-API’s van TypeScript.
Async-methoden (Sign, Certify, VerifySignatures) lijken niets te doen
Document.Sign(), Document.Certify() en Document.VerifySignatures() geven allemaal een Promise terug. Een van hen aanroepen zonder await laat de uitvoering onmiddellijk doorgaan — een opvolgende doc.WriteTo() of doc.Save() kan worden uitgevoerd voordat de handtekening daadwerkelijk is geschreven, en een opvolgende console.log() op het verificatieresultaat logt een onopgeloste Promise in plaats van de SignatureReport[]-array:
// 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');Zie de Security handleiding voor de volledige certify-then-sign flow.
SearchAnnotationText() en SearchAnnotations() geven verschillende resultaten voor dezelfde tekst.
Deze twee zoekmethoden zijn in beide richtingen disjunct op dezelfde pagina. SearchAnnotationText() komt overeen met letterlijke annotatiemetadata (/Contents, /T, /Subj); SearchAnnotations() komt overeen met de rendered tekst die wordt getekend door de eigen weergave van een markup-annotatie (bijvoorbeeld een FreeText body). Een waarde die alleen is opgeslagen in /Contents wordt door de een gevonden en door de ander gemist:
const metadataHits = page.SearchAnnotationText('confidential'); // matches /Contents, /T, /Subj
const renderedHits = page.SearchAnnotations('confidential'); // matches rendered markup text
Geen van beide methoden zoekt gewone paginatekst — gebruik Page.GetText() or Page.Search() daartoe. Zie de Annotaties handleiding voor de volledige annotatie API.
Een Redaction Mark alleen verwijdert de inhoud niet
Page.AddRedact() tekent alleen een RedactAnnotation over een gebied — de onderliggende inhoud blijft onaangetast en nog steeds kopieerbaar tot Page.ApplyRedactions() uitvoert en de inhoudsstroom destructief herschrijft. Toegevoegde markeringen after ApplyRedactions() die al is uitgevoerd, blijven onuitgevoerd voor onbepaalde tijd:
page.AddRedact({ rect: [216, 548, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
page.ApplyRedactions(); // only now is the content actually destroyed
Zie de Redaction handleiding voor mark-vs-apply-details en tekst-zoek-redactie.
PageGraphics tekenaanroepen verschijnen nooit op de pagina
Page.Graphics() retourneert een PageGraphics die elke moveTo()/rect()/circle()/stroke()/fill() oproep buffert totdat apply() ze naar de pagina commit. Een reeks die zijn apply() oproep mist, tekent niets:
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
Zie de Images handleiding voor de volledige tekening en optionele-inhoud-laag API.
Document.ToHtml() en Hand-Tagging zijn beide afhankelijk van een structuurboom
Semantic-mode Document.ToHtml() herflowt de inhoud door de structuurboom te doorlopen; bij een niet-getagd document valt het stilletjes terug op een heuristische body en verliest de export zijn kopstructuur. Dezelfde boom is wat hand-authored tagging (StructTreeRoot.Append() / StructElement.MarkContent()) erin schrijft en wat Document.GetStructTree() retourneert — roep Document.CreateStructTree() of Document.AutoTag() aan vóór een van beiden:
const root = doc.GetStructTree();
if (!root) throw new Error('document is not tagged yet');Zie de Conversion and Structure handleidingen voor respectievelijk de export- en tag-API’s.
AddTextBlock() knipt stilzwijgend tekst af bij zijn begrenzende rechthoek.
Page.AddTextBlock(text, rect, options) wikkelt tekst in rect en retourneert alles wat niet past (of null als alles past) — het vergroot de rechthoek niet en gooit geen fout wanneer de inhoud overlapt. Een geretourneerde waarde die wordt genegeerd betekent dat de overlappende tekst simpelweg nooit wordt getekend:
const rest = page.AddTextBlock(longText, [72, 600, 200, 150], { fontSize: 11 });
if (rest) page.AddTextBlock(rest, [300, 600, 200, 150]); // route the overflow somewhere
Zie de Text handleiding voor de volledige tekstplaatsing en extractie API.