abcPDF Geckoエンジンで自分のページの1つにPDFをレンダリングできます。ただし、自分のcssに絶対パスを追加すると<link>
要素は、レンダリングに失敗します。
しかし、私はPDFをうまくレンダリングできる他のページを持っていて、同じJavaScriptを使用して、css <link>
要素に絶対パスを追加しています。cssに絶対パスを追加すると、Gecko Engineはページのレンダリングに失敗します
javascriptを使用して、各CSS要素のHFSを動的に変更しています。できるだけ早く私は、このコード行を追加すると
//Give css files full paths
var domain = window.location.protocol + "//" + window.location.host;
html.find("link").each(function(index, item){
var linkPath = domain + $(item).attr("href");
$(item).attr("href", linkPath);
});
、私は次の例外を取得:
WebSupergoo.ABCpdf8.Doc.AddImageHtml(String html, Boolean paged, Int32 width, Boolean disableCache) +209
WebSupergoo.ABCpdf8.Doc.AddImageHtml(String html) +64
DocuMatix_Complete_Suite.Classes.Helpers.ConvertToPDF.ExportToPDF(String companyId, String name, String pHtmlorUrl, Boolean pIsUrl, Boolean useCohesion, EngineType engine, Orientation orientation) +530
DocuMatixPageBase.PdfContent(String filename, String html, Boolean useCohesion, EngineType engine, Orientation orientation) +244
DocuMatix_Complete_Suite.ReportCenter.Controllers.ReportCenterController.CreateSubscriberActivityReportPDF(SubscriberActivityReportPDFModel model, String orientation) +109
lambda_method(Closure , ControllerBase , Object[]) +147
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +156
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22
System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225
System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +39
System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +28
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +29
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +31
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9651532
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155er code here
私はjavascriptを/ jQueryの行を実装し、そのページのPDFが取得する他のページを持っています完璧に生成されます。私がこれを調べたところ、EngineType
をMSHtml
に設定するとページがレンダリングされるが、スタイリングが正しくないことが判明した。これはGeckoエンジンの問題です。 私は生成されたすべてのCSSリンクを調べて、すべての正当なリンクであることを確認しました。私はCSSを正常にPDFをレンダリングしている私のページにCSSのリンクを比較し、2つのページは全く同じCSSのリンクを使用しています。
私はこれを理解するのに必要なコードや情報は不明ですが、誰かが正しい方向に向けることができれば、助けに感謝します。私は今どこへ行くのか迷っている。