Troubleshooting

Denna sida samlar lösningar för de vanligaste problemen som uppstår i Aspose.PDF FOSS för TypeScript s signering, annotering, redigering, ritning, konvertering och text-API:er.

Asynkrona metoder (Sign, Certify, VerifySignatures) verkar inte göra någonting

Document.Sign(), Document.Certify() och Document.VerifySignatures() returnerar alla en Promise. Att anropa en utan await låter körningen fortsätta omedelbart — en efterföljande doc.WriteTo() eller doc.Save() kan köras innan signaturen faktiskt har skrivits, och en efterföljande console.log() på verifieringsresultatet loggar en olöst Promise istället för SignatureReport[]-arrayen:

// 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');

Se Security guide för hela certifiera-sedan-signera-flödet.

SearchAnnotationText() och SearchAnnotations() returnerar olika resultat för samma text

Dessa två sökmetoder är disjunkta i båda riktningarna på samma sida. SearchAnnotationText() matchar bokstavlig annoteringsmetadata (/Contents, /T, /Subj); SearchAnnotations() matchar rendered text som ritas av en markup-annoterings egna utseende (till exempel en FreeText kropp). Ett värde som bara lagras i /Contents hittas av den ena och missas av den andra:

const metadataHits = page.SearchAnnotationText('confidential'); // matches /Contents, /T, /Subj
const renderedHits = page.SearchAnnotations('confidential');    // matches rendered markup text

Ingen av metoderna söker i vanlig sidtext — använd Page.GetText() or Page.Search() för det. Se Anmärkningar guide för den fullständiga annoteringen API.

En Redaction Mark ensam tar inte bort innehållet

Page.AddRedact() ritar bara en RedactAnnotation över ett område — innehållet under är orört och kan fortfarande kopieras och markeras tills Page.ApplyRedactions() körs och destruktivt skriver om innehållsströmmen. Tillagda markeringar after ApplyRedactions() har redan körts och förblir oapplikerad på obestämd tid:

page.AddRedact({ rect: [216, 548, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
page.ApplyRedactions(); // only now is the content actually destroyed

Se Redaction guide för mark-vs-apply-detaljer och text-sökning redigering.

PageGraphics ritningsanrop visas aldrig på sidan

Page.Graphics() returnerar en PageGraphics som buffrar varje moveTo()/rect()/circle()/stroke()/fill()-anrop tills apply() skickar dem till sidan. En sekvens som saknar sitt apply()-anrop ritar ingenting:

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

Se Images guide för den kompletta ritningen och valfritt innehållslager API.

Document.ToHtml() och Hand-Tagging beror båda på ett strukturträd

Semantic-mode Document.ToHtml() omflödar innehåll genom att gå igenom strukturträdet; i ett otaggat dokument faller det tyst tillbaka på en heuristisk kropp och exporten förlorar sin rubrikstruktur. Samma träd är vad hand-skriven taggning (StructTreeRoot.Append() / StructElement.MarkContent()) skriver in i och vad Document.GetStructTree() returnerar — anropa Document.CreateStructTree() eller Document.AutoTag() innan någon av dem:

const root = doc.GetStructTree();
if (!root) throw new Error('document is not tagged yet');

Se Conversion and Structure guider för export- och taggnings-API:erna respektive.

AddTextBlock() Klipper tyst text vid dess omgivande rektangel.

Page.AddTextBlock(text, rect, options) omsluter text inom rect och returnerar allt som inte fick plats (eller null om allt fick plats) — den växer inte rektangeln eller kastar ett fel när innehållet överskrider. Ett returvärde som ignoreras betyder att den överskjutande texten helt enkelt aldrig ritas:

const rest = page.AddTextBlock(longText, [72, 600, 200, 150], { fontSize: 11 });
if (rest) page.AddTextBlock(rest, [300, 600, 200, 150]); // route the overflow somewhere

Se Text guide för fullständig textplacering och extraktion API.

Se även

 Svenska