2016-08-11 2 views
0

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が取得する他のページを持っています完璧に生成されます。私がこれを調べたところ、EngineTypeMSHtmlに設定するとページがレンダリングされるが、スタイリングが正しくないことが判明した。これはGeckoエンジンの問題です。 私は生成されたすべてのCSSリンクを調べて、すべての正当なリンクであることを確認しました。私はCSSを正常にPDFをレンダリングしている私のページにCSSのリンクを比較し、2つのページは全く同じCSSのリンクを使用しています。

私はこれを理解するのに必要なコードや情報は不明ですが、誰かが正しい方向に向けることができれば、助けに感謝します。私は今どこへ行くのか迷っている。

答えて

0

問題が何かを発見しました。

私はテーブルの上に<tfoot>を持っていた、と<tfoot><tbody>の下にあるので、私は<thead><tfoot>セクションを移動し、私のhtmlをPDFに変換することができたとき、何らかの理由で、abcPDFはそれが好きではありません。

関連する問題