问题标签 [rotativa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc-4 - Rotativa 1.6.1 图像“重影”,但仅在 QA 上,而不是在开发或集成服务器上
我正在运行 ac# MVC 4 app ,使用 Rotativa 将 Razor 视图转换为 Pdfs。Rotativa 基本上是 wkhtmltopdf 的包装器。
我升级到 Rotativa 1.6.1,以修复 wkhtmltopdf 中的分页问题,并且我的图像是“重影”。我回滚到 1.5.0,问题就消失了(但分页符又被打破了)。
看起来就像在这个 wkhtmltopodf 错误 http://code.google.com/p/wkhtmltopdf/issues/detail?id=788
他们声称它固定在尖端。(我尝试手动更新到最新的稳定版本,它仍然发生)
奇怪的是,这个问题只发生在我们的 QA 服务器上,而不是我们的 DEV 服务器或我们的 IT 组声称与 QA“相同”的集成服务器上......
任何想法可能导致此问题?还有人得到它吗?
这个问题: https://github.com/webgio/Rotativa/issues/51 和这个 https://github.com/webgio/Rotativa/issues/26
暗示有一些权限问题可能导致 Rotativa 出现问题。谁能给我指出更多关于哪种权限可能有问题的信息,这样我就可以在两个盒子上进行比较?
谢谢,
埃里克-
asp.net - 无法在 MVC4 中使用 Rotativa 下载 PDF 文件
我正在使用 Rotativa 将 Razor 视图转换为 PDF。
PDF 文件未下载。
我可以在 Fiddler 中看到它,但浏览器没有提示下载 - 我在 IE 和 Chrome 上都试过了。
我还尝试使用此问题中的解决方案将文件下载到物理路径。但这也不起作用,因为系统无法访问该文件夹(拒绝访问)。
这是我的代码:
我想知道为什么会发生这种情况——我单击按钮,它调用 print ActionResult 方法——没有错误消息(我将它包装在 try 和 catch 块中)。我在同事的电脑上试过了,还是一样的问题!
非常感谢。
asp.net-mvc - Rotativa 和 wkhtmltopdf 在 iis6 上通过 HTTPS 没有 CSS 或图像,但在 HTTP 上很好
使用 Rotativa,一个 wkhtmltopdf 的 .net 包装器。如果我通过 HTTPS 连接,我无法在 PDF 中呈现 CSS 或图像。我之前使用 HTTPS(SSL)在 2008r2 iis7 服务器上设置了这个我确实遇到了 css 和 webfonts 的类似问题,但我只是将所有路径更改为绝对路径并且它有效。
该作业部署在 ii6 windows 2003 服务器上。昨天它只是产生“发生了未处理的异常”。使用 HTTPS 时,我将 wkhtmltopdf 升级到 V 0.12.0,现在 PDF 将使用 ViewAsPdf 生成,没有 CSS 或图像。并使用 ActionAsPdf 呈现“您无权查看此页面”错误的 PDF。但是,如果我关闭 HTTPS,它会按应有的方式呈现。
我添加了一些测试操作结果、一个视图和一个视图布局,只是为了隔离问题。
我确定它与绝对路径无关。这是我在 _TestCssFromPath.cshtml 视图布局的标题中尝试的 5 种绝对路径组合方式,它们都可以在非 HTTPS 下工作
_TestCssFromPath.cshtml:
_TestInlineCss.cshtml:只是将内容从 .css 中取出,这确实可以正确呈现 CSS,没有图像或 webfonts。
家庭控制器:
PDF.cshtml
访问以下 URL 会产生以下结果:
- /Home/TestViewAsPdf/1 ------> CSS 有效(只要它已经在 html 中),没有图像
- /Home/TestViewAsPdf/2 ------> 没有 CSS,没有图像
- /Home/TestActionAsPdf/1 ---->“您无权查看此页面”的 PDF
- /Home/TestActionAsPdf/2 ---->“您无权查看此页面”的 PDF
我已经通过了文件夹权限,它们接缝很好......我错过了什么?
jquery - 除首页外的所有带有页眉的页面 - RotativaPDF
我正在尝试使用 RotativaPDF 创建一个可导出/可打印的页面,其中这些页面必须有一小部分,其中包含来自客户的一些数据、带有客户信用和付款的表格,并且每个页面都必须有页脚和页眉(不包括第一页)。
我的控制器的操作:
注意:我定义的 CustomSwitches 就像在这个链接中描述的那样。
使用我的代码,所有页面都显示一个标题。我应该怎么做才能不在第一页上显示标题?
预期结果:
asp.net-mvc-3 - 使用 rotativa 下载pdf-在生产中花费很长时间
我在 MVC3 中使用 rotativa 下载 pdf 格式的多个视图。它在我的本地系统中运行良好。但是当我将它移到生产环境时,它需要将近 2-3 分钟才能下载。请建议任何选项以使其在生产中更快。
我在 rotativa 中使用 ViewAsPdf。
谢谢。
asp.net-mvc - Rotativa ViewAsPDF CSS 大小/尺寸
我正在使用 RotativaViewAsPdf
方法将 ASP.Net MVC 中的 HTML 视图渲染为 PDF。我通过设置将输出设置为 A4 尺寸、纵向且无边距:
然后在 CSS 中,我将一个元素设置为具有210mm
宽度,它应该扩展页面的整个宽度,但在输出 PDF 中,210mm
宽度并不代表 PDF 的整个宽度,而是更少。通过反复试验,生成的 PDF 的总宽度似乎约为246mm
.
任何想法为什么会发生这种情况?
rotativa - Rotativa 图像和 css 在 localhost 上工作正常,但在实时服务器中被忽略
在本地工作,css 和图像正确加载为 pdf。但是一旦我在服务器上迁移代码,这些就不会加载到生成的 pdf 中。
我正在使用 ViewAsPDF()。我的代码中有一些部分视图,所以我不能使用 Server.Map。
非常感谢您的帮助。
问候
rotativa - 如何让 Rotativa 等待 javascript/jquery 执行
我有一个呈现的视图和一些更新某些字段的 javascript/jquery。当我使用 Rotativa 时,它会渲染视图,但在执行 JS 以替换某些字段文本之前。
有没有办法延迟 Rotativa 或让它等待 JS/JQuery?
c# - ASP.NET c#创建PDF(Rotativa和ITextSharp)如何修改ViewerPreferences字典以关闭adobe reader中的打印缩放
我们通过几种不同的方式从 Web 应用程序生成 PDFS,ItextASharp、Html->Rotativa 和 RDLC...
这些工具中是否有任何方法可以修改 PDF 中的 ViewerPreferences 字典,以禁用“缩小以适应”选项。
PDF 格式支持此选项,我找到了相关文档...
我知道并非所有观众都遵守不缩小以适应的要求,但我们正在全面使用库存 adobe 阅读器,所以没关系。
我能够在 ITextSharp 中找到它来阅读、修改并保存它,所以我必须相信有一种方法可以在生成之前设置它......但我找不到它......
在 iTextSharp 中确定 PDF 是 Simplex 还是 Duplex 等属性
如果 Rotativa 也有办法,那就太棒了……因为我们将它用于一些报告
如果有办法在那里做的话,我们也有一些 RDLC 风格的工作......
我们必须这样做的原因是我们的一个应用程序打印标签,并且数据量没有留下任何捏造的空间。即使我们控制了生态系统,从 Web 应用程序打印它们也是有问题的。
不幸的是,我们的 IT 团队不会使用 reg 设置来更改机器上的默认设置。我们必须通过代码来完成。
c# - Rotativa [Win32Exception (0x80004005): 访问被拒绝]
我正在使用 Rotativa 生成 PDF 格式的视图,它可以在我的 localhost 上完美运行/工作。但是,当部署到 GoDaddy 上的共享主机或我的 Azure 网站实例时,我收到以下错误。
我尝试授予 Rotativa 文件夹中 .exe 的权限,但没有成功,还尝试使用完全信任运行,但仍然出现错误。
错误/堆栈跟踪
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ComponentModel.Win32Exception:访问被拒绝
源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[Win32Exception (0x80004005): Access is denied]
System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) +1789 System.Diagnostics.Process.Start() +6735098
Rotativa.WkhtmltopdfDriver.Convert(String wkhtmltopdfPath, String switch, String html) + 226
Rotativa.AsPdfResultBase.CallTheDriver(ControllerContext context) +26 Rotativa.AsPdfResultBase.BuildPdf(ControllerContext context) +128
Rotativa.AsPdfResultBase.ExecuteResult(ControllerContext context) +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +56
1 个过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult) +420
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList 1.CallEndDelegate(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResultBase 1 .CallEndDelegate(IAsyncResult asyncResult) +36 System.Web.Mvc.Async.WrappedAsyncResultBase 1.CallEndDelegate(IAsyncResult asyncResult) +28 System.Web.Mvc.Async.WrappedAsyncResultBase 1.CallEndDelegate(IAsyncResult asyncResult) +36 System.Web.Mvc。 Async.WrappedAsyncResultBase`1.End() +541 filters, ActionResult actionResult) +52
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +173 System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
System.Web.Mvc.Async.WrappedAsyncResult1.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.WrappedAsyncVoid1.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.WrappedAsyncVoid1.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
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +31 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult 结果) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep。 Execute() +9514928 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
控制器
权限我试图通过完全控制设置整个文件夹“Rotativa”的权限,现在我得到了这个......
该程序被组策略阻止。有关详细信息,请联系您的系统管理员
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ComponentModel.Win32Exception:此程序被组策略阻止。有关详细信息,请联系您的系统管理员
源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[Win32Exception (0x80004005):此程序被组策略阻止。有关详细信息,请联系您的系统管理员]
System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) +1789 System.Diagnostics.Process.Start() +6735098
Rotativa.WkhtmltopdfDriver.Convert(String wkhtmltopdfPath, Stringswitches, String html) +226
Rotativa.AsPdfResultBase.CallTheDriver(ControllerContext context) +26 Rotativa.AsPdfResultBase.BuildPdf(ControllerContext context) +128
Rotativa.AsPdfResultBase.ExecuteResult(ControllerContext context) +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) + 13
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult) +420 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext,IList 1.CallEndDelegate(IAsyncResult asyncResult) + 10 System.Web.Mvc.Async.WrappedAsyncResultBase 1.CallEndDelegate(IAsyncResult asyncResult) +36 System.Web.Mvc.Async.WrappedAsyncResultBase 1.CallEndDelegate(IAsyncResult asyncResult) +28 System.Web.Mvc.Async.WrappedAsyncResultBase 1.CallEndDelegate( IAsyncResult asyncResult) +361 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +56
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, ActionResult actionResult) +52
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +173 System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
System.Web.Mvc.Async.WrappedAsyncResult1.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.WrappedAsyncVoid1.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.WrappedAsyncVoid1.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
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 结果) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9514928 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
2015 年 1 月 13 日更新
我最终切换到 TuesPechkin,这是一个更容易使用的解决方案。GoDaddy 和 Azure 一样支持 FullTrust,但是 Azure 在运行调用 GDI 的进程方面存在一个已知问题,大多数 wkhtmltopdf 库都会这样做。TuesPechkin 也无法在 Azure 上运行,因此我从未找到 Azure 网站的解决方案,但 TuesPechkin 在我的 web.config 中设置的 GoDaddy 托管上运行良好。