Javascript ASP.net将PDF从服务器复制到客户端源
我目前正在开发一个系统,我想将一个PDF文件从我的服务器复制到客户端的源代码中,这样就可以在Javascript ASP.net将PDF从服务器复制到客户端源,javascript,c#,asp.net,pdf,extjs,Javascript,C#,Asp.net,Pdf,Extjs,我目前正在开发一个系统,我想将一个PDF文件从我的服务器复制到客户端的源代码中,这样就可以在嵌入标记中打开它 到目前为止,我有以下服务器代码 [HttpGet("printpdf")] public HttpResponse getPDF() { System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; response.ClearContent(); response.Clea
嵌入
标记中打开它
到目前为止,我有以下服务器代码
[HttpGet("printpdf")]
public HttpResponse getPDF()
{
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "application/pdf";
response.AddHeader("Content-Disposition", "attachment; filename=preview.pdf;");
response.TransmitFile("preview.pdf");
response.Flush();
response.End();
return response;
}
它通过extJS
这样从客户端调用
Ext.define('RibbonMenu.view.dialogues.Print', {
extend: 'Ext.window.Window',
mixins: {
controlDisabler: 'RibbonMenu.view.ribbon.controls.ControlDisabler'
},
title: 'Print Preview',
height: 800,
width: 800,
layout: 'fit',
constrain: true,
items: [{
xtype: 'component',
autoEl: {
tag: 'embed',
type: 'application/pdf',
src: Ext.Ajax.request({
url: "/printpdf?",
method: "GET",
success: function (response, opts) {
console.log("Receieved PDF");
var pdf = response;
console.log(pdf)
return pdf
},
failure: function (response, opts) {
console.log("Failed to receive PDF")
console.log(response.status);
}
})
}}]
});
很明显,这是不对的,因为我的嵌入标记的src属性
src="id:1;xhr:[object XMLHttpRequest];headers:[object Object];options:[object Object];async:true;binary:false;timeout:26;"
所以,我希望找到一种方法,将这个pdf从服务器复制到客户端的源代码中,而不是仅仅传递一个pdf对象
编辑
值得一提的是,此功能旨在通过让用户的浏览器处理pdf的打印/查看来用于打印预览。考虑到这一点,这个文件拷贝给用户意味着是一个临时拷贝,它只存在于页面上的会话中,只有试图打印的用户才能看到它
编辑
我想把PDF复制到源文件中。在下图中的文件结构的某个地方,我可以创建一个硬URL来指向嵌入标记
您需要在某个公共场所托管pdf,并用文件的url填充src属性
<embed src="https://your.domain/pdf/your_pdf_file.pdf">
并将url返回到响应中的文件
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.Write(targetPath);
response.Flush();
response.End();
return response;
我明白。这就是我正在努力实现的目标。请参阅我的编辑这会使PDF仅对单个用户可用吗?无论我提出哪种解决方案,都需要让每个用户只看到与他们相关的PDF。不,任何知道url的人都可以使用它。你应该用这些新信息更新你的问题
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.Write(targetPath);
response.Flush();
response.End();
return response;