我正在尝试在Rotativa库生成的PDF中指定页眉和页脚.正如作者在这里回答的那样,应该可以使用CSS(这里描述).但是,我无法做到这一点.
我在meta标签中加载了样式表:
<link href="print.css" rel="stylesheet" type="text/css" media="print" />
Run Code Online (Sandbox Code Playgroud)
在底部的样式表中:
@page {
@top-left {
content: "TOP SECRET";
color: red
}
@bottom-right {
content: counter(page);
font-style: italic
}
}
Run Code Online (Sandbox Code Playgroud)
然后通过以下方式生成PDF:
public ActionResult ShowPdf()
{
var model = new Model();
return new ViewAsPdf("view.cshtml", model)
{
FileName = "Report.pdf",
CustomSwitches = "--print-media-type"
};
}
Run Code Online (Sandbox Code Playgroud)
然后,PDF的页眉和页脚中没有任何内容.有任何想法吗?
我正在使用 Rotativa ActionasPDF() 从我的 MVC4 项目中的视图生成 pdf。它在我的本地实例上完美运行,但我只是将整个解决方案复制到我的服务器上,但它不起作用。我收到错误“系统找不到指定的文件”,但我不确定它在谈论什么文件。我假设它在谈论 Rotativa dll,但我的服务器上也有生成的 Rotativa 文件夹。该解决方案与我的本地副本完全相同。我的网站托管在 IIS 8、Windows 2012 服务器上。研究告诉我,某些文件夹可能存在权限问题,但我不确定它们会是哪些。我只是暂时将所有控制器和视图设置为 777 权限。没运气。关于我缺少什么的任何想法,或者我如何确保 dll 已在我的服务器上注册?
这是我的控制器操作方法:
public ActionResult DownloadFile(int id = 0)
{
var filename = string.Format("Invoice{0}.pdf", id);
return new ActionAsPdf("Invoice" + "/" + id, new { name = "Invoice" + id }) { FileName = filename, PageSize = Size.Letter, PageOrientation = Orientation.Portrait, PageMargins = new Margins(0, 0, 0, 0) };
}
Run Code Online (Sandbox Code Playgroud)
我有一个很好的操作(加载所有图像和CSS)作为一个正常的操作,但是当我使用Rotativa.MVC.ViewAsPdf生成PDF时,它不会加载CSS.并且应用程序不显示任何错误
public ActionResult DownloadNonProfessionalDeputy(int id)
{
Application_Attorney_NonProfessional oAP = db.Application_Attorney_NonProfessional.Find(id);
return new Rotativa.MVC.ViewAsPdf(oAP) { FileName = string.Format("DCM_Attorney_Non_Professional_Application.pdf", new { CustomSwitches = "--print-media-type --header-center \"text\"" }) };// { = "--header-right \"Page [page] of [toPage]\""};
//return View(oAP);
}
Run Code Online (Sandbox Code Playgroud)
帮助赞赏
来自PDF的图片
来自HTML视图的图像
风景
@model DCM_Intranet.Models.Application_Attorney_NonProfessional
@{
Layout = null;
int nPage = 0;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="~/images/gale_phillipson_corn.ico" type="image/x-icon">
<title>Attorney Non-Professional Application</title>
<link href="~/css/style.default.css" rel="stylesheet"> …
Run Code Online (Sandbox Code Playgroud) 嗨,谢谢你的期待!
我正在使用Rotativa pdf工具将视图(html)读入PDF.它工作得很好,但它本身并没有提供将PDF保存到文件系统的方法.相反,它仅作为操作的结果将文件返回给用户的浏览器.
这是代码的样子:
public ActionResult PrintQuote(FormCollection fc)
{
int revisionId = Int32.Parse(Request.QueryString["RevisionId"]);
var pdf = new ActionAsPdf(
"Quote",
new { revisionId = revisionId })
{
FileName = "Quote--" + revisionId.ToString() + ".pdf",
PageSize = Rotativa.Options.Size.Letter
};
return pdf;
}
Run Code Online (Sandbox Code Playgroud)
此代码调用另一个actionresult("Quote"),将其视图转换为PDF,然后将PDF作为文件下载返回给用户.
如何拦截文件流并将PDF保存到我的文件系统.将PDF发送给用户是完美的,但我的客户也希望PDF同时保存到文件系统.
有任何想法吗?
谢谢!
马特
我正在使用Rotativa工具来显示pdf.它可以正常使用以下代码:
public ActionResult PreviewDocument()
{
var htmlContent = Session["html"].ToString();
var model = new PdfInfo { Content = htmlContent, Name = "PDF Doc" };
return new ViewAsPdf(model);
}
Run Code Online (Sandbox Code Playgroud)
我想知道通过浏览器的"另存为"对话框下载pdf的方式,点击按钮而不是显示在某个iframe中."new ViewAsPdf(model)"只返回pdf数据.
提前致谢.
我有一个渲染的视图和一些更新某些字段的javascript / jquery。当我使用Rotativa时,它将渲染视图,但是在执行JS替换somw字段文本之前。
有没有办法延迟Rotativa或让它等待JS / JQuery
我正在尝试解决我的HTML中的表头在后续页面上无法正确呈现的问题.有关如何解决此问题的任何想法?
标题
<thead>
<tr>
<th></th>
<th>@Index.LastName</th>
<th>@Index.FirstName</th>
<th>@Index.Contact</th>
<th>@Index.Division</th>
<th>@Index.ClubName</th>
<th>@Index.Position</th>
</tr>
</thead>
Run Code Online (Sandbox Code Playgroud)
那个行动:
public ActionResult PrintResults(UserMemberSearchViewModel model)
{
model.Results = UserMemberSearchTasks.Search(model);
return new PartialViewAsPdf("ResultsPDF", model)
{
FileName = Resources.UserMemberSearch.Index.MemberDetails + ".pdf",
};
}
Run Code Online (Sandbox Code Playgroud)
结果
我知道这个主题已经在几篇文章中进行了讨论,但没有一个解决方案对我有帮助.
我有这个动作:
public ActionResult DownloadViewPDF(string userId)
{
var model = db.MyCvs.FirstOrDefault(u => u.UserId == userId);
if (model != null)
return new Rotativa.ViewAsPdf("ViewUserCv", model) { FileName = model.FirstName + model.LastName + "_CV.pdf" };
return Content("there is no Cv to download");
}
Run Code Online (Sandbox Code Playgroud)
使用上面的操作我正在下载一个视图作为pdf,一切都在我的计算机上按预期工作.
在服务器上部署项目后,此操作无效,返回错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
我正在使用Visual Studio Community 2015.在服务器上,我有Rotativa.dll
名为Rotativa的根目录中的文件夹,文件名为wkhtmltopdf.exe
.
我不知道如何处理这个错误,你能给我一些消息吗?
在MVC 6中使用Rotativa 1.6.3通过ActionAsPdf从View生成PDF。
目的是使用CSS3 multi-col生成报纸样式的报告,这可以使用chrome中的打印功能来工作(请参见所需的图像输出)
我试图通过将列数替换为CSS来使用工作环境:
-webkit-column: 0 0;
width:50%
Run Code Online (Sandbox Code Playgroud)
该工作机制会生成列,但是在分页符处流不会改变,它仅在首页上起作用。
的HTML
<body>
<div class="newspaper">
<P>
Sed ut perspiciatis e quam nihil ............. molestiae consequatur, vel illum qui
dolorem eum fugiat quo voluptas nulla pariatur?
</P>
<P>
Sed ut perspiciatis e quam nihil ............. molestiae consequatur, vel illum qui
dolorem eum fugiat quo voluptas nulla pariatur?
</P>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
的CSS
.newspaper
{
-moz-column-count: 2; /* Firefox */
-moz-column-gap: 10px; /* Firefox */
-moz-column-rule-style: solid; /* Firefox */
-webkit-column-count: 2; /* …
Run Code Online (Sandbox Code Playgroud) 我有一个使用 Windows 身份验证的 MVC 5 项目。为了添加 pdf 导出支持,我尝试设置 Rotativa lib。第一次尝试是Controller方法
public ActionResult PrintViewToPdf()
{
return new ActionAsPdf("myAction");
}
Run Code Online (Sandbox Code Playgroud)
这会导致 pdf 文件中出现错误 401.2 页面。据我了解(请让我知道是否有其他解决方案!!!),有唯一的解决方法:
public ActionResult PrintViewToPdf()
{
return new ViewAsPdf("myView");
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我得到一个 pdf 文件,但它内容是一个没有完成 javascript 脚本的网页!
那么,问题是:除了替换之外还有其他解决方案ActionAsPdf
吗ViewAsPdf
?如果不是,是否可以包含ViewAsPdf
javascript 执行结果?