Troubleshooting

このページは、TypeScript の署名、注釈、編集、描画、変換、テキスト API に関する、Aspose.PDF FOSS 全体で遭遇する最も一般的な問題の修正を集めています。

非同期メソッド(Sign、Certify、VerifySignatures)は何も行っていないように見える

Document.Sign()、Document.Certify()、および Document.VerifySignatures() はすべて Promise を返します。await なしで呼び出すと、実行はすぐに続行され、続く doc.WriteTo() や doc.Save() が署名が実際に書き込まれる前に実行される可能性があり、検証結果に対する続く console.log() は、SignatureReport[] 配列の代わりに未解決の Promise をログに記録します。

// 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 完全な certify-then-sign フローのガイド。

SearchAnnotationText() と SearchAnnotations() は同じテキストに対して異なる結果を返す

これら2つの検索方法は、同じページ上で両方向において重複しません。 SearchAnnotationText() リテラル注釈メタデータに一致します(/Contents, /T, /Subj); SearchAnnotations() 一致します rendered マークアップ注釈自身の外観によって描画されたテキスト(例として 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 redaction に関するガイド。

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 完全な drawing と optional-content-layer 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 export と tagging API に関するガイド(それぞれ)。

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 完全な text-placement と extraction API に関するガイド。

参照

 日本語