ABCPdfを使用してページをPDFとしてレンダリングするときに、簡単なDOM操作を実行しようとしています。私は彼らがここに文書化したものに従いました:http ://www.websupergoo.com/helppdf9net/source/5-abcpdf/xhtmloptions/2-properties/usescript.htm
しかし、私が次のような単純なことを試してみると:
var doc = new Doc();
doc.HtmlOptions.UseScript = true;
doc.HtmlOptions.UseNoCache = true;
doc.HtmlOptions.PageCachePurge();
doc.HtmlOptions.OnLoadScript = @"var reportElms = document.getElementsByClassName(""report"");";
doc.Page = doc.AddPage();
doc.AddImageUrl(Url.Action("TestPdf", "Pdf", new { }, "http"));
例外が発生します:
Unable to render HTML. Unable to apply JScript.
COM error 80020101.
Script 'var reportElms = document.getElementsByClassName("report");'.
私が間違っていることについて何か考えはありますか?
組み込み関数でさえ機能しません
次のスクリプトでも同じ例外が発生します。
doc.HtmlOptions.OnLoadScript = @"
window.ABCpdf_RenderWait();
window.ABCpdf_RenderComplete();";
ところで、私はバージョン8を使用しています。これは、バージョン8のライセンスがあるためです。
編集:
との呼び出しがありませんでした.external
。それらを適切に参照すると機能します(想像してみてください)。ABCpdf_RenderWait()
ABCpdf_RenderComplete()
doc.HtmlOptions.OnLoadScript = @"
window.external.ABCpdf_RenderWait();
window.external.ABCpdf_RenderComplete();";
私の答えで述べたように、IEについてもジャンプする必要のあるセキュリティフープがたくさんあります。