C# 在新浏览器选项卡中查看PDF文档
我正在尝试使用Asp.net mvc控制器在新选项卡中打开pdf。 它在“新”选项卡中正确打开,但未显示文档名称 这是我的密码C# 在新浏览器选项卡中查看PDF文档,c#,jquery,asp.net-mvc,pdf,C#,Jquery,Asp.net Mvc,Pdf,我正在尝试使用Asp.net mvc控制器在新选项卡中打开pdf。 它在“新”选项卡中正确打开,但未显示文档名称 这是我的密码 public ActionResult ViewDocument() { byte[] docFileArr=...... var cntdn = new System.Net.Mime.ContentDisposition { FileName = DocumentName,
public ActionResult ViewDocument()
{
byte[] docFileArr=......
var cntdn = new System.Net.Mime.ContentDisposition
{
FileName = DocumentName,
Inline = true,
};
Response.AppendHeader("Content-Disposition", cntdn .ToString());
return File(docFileArr, "application/pdf");
}
文档在新窗口中正确打开,但它只显示控制器名称,而不显示文档名称。请看附件
提前谢谢你的帮助
Web浏览器实际上使用PDF文件中包含的元数据来显示标题。这样,您的文件将具有相同的标题,而不考虑其加载方式(从.NET应用程序、下载后从桌面等)
请参阅这篇关于如何使用Acrobat查看和编辑Adobe元数据的文章:实现这一点的一种方法是在PDF元数据中设置标题(在创建PDF期间或在下载开始之前对其进行操作)。这已包含在已给出的SO问题中 另一种方法是打开一个新选项卡,加载由ASP.NET MVC视图生成的自己的HTML页面,该页面本身嵌入了由ViewDocument操作提供的PDF文件(更合适的名称是DownloadDocument) HTML页面的HTML标题中会有一个标题,由浏览器显示。例如,视图可能看起来像(仅给出想法):
@{
布局=空;
}
@模型.标题
.pdfobject容器{
高度:96vh;
宽度:99vw;
}
PDFObject.embed(“@Model.DownloadUrl”,“#pdf”);
它使用该库使PDF嵌入更容易,更不容易出错。您可以使用中的方法或使用Adobe的其他元数据手动执行此操作:。
@{
Layout = null;
}
<!DOCTYPE html>
<html height="100%">
<head>
<meta charset="utf-8" />
<title>@Model.Caption</title>
<script src="/js/pdfobject.js"></script>
<style>
.pdfobject-container {
height: 96vh;
width: 99vw;
}
</style>
</head>
<body height="100%">
<div id="pdf" height="100%"></div>
<script>PDFObject.embed("@Model.DownloadUrl", "#pdf");</script>
</body>
</html>