如何用C#写代码,浏览器进行下载服务器中PDF文件
有MemoryStream 流
Document document = new Document(PageSize.A4.Rotate(), 70, 70, 70, 0);
var memoryStream = new MemoryStream();
PdfWriter pw = PdfWriter.GetInstance(document, memoryStream);
document.Open();
// pdf内容生成...
byte[] fileByte = memoryStream.GetBuffer();
string fileName = Request.PhysicalApplicationPath +"1111.pdf";
FileStream fs = new FileStream(fileName, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(fileByte);
bw.Close();
fs.Close();
StringBuilder script = new StringBuilder();
script.Append("<script type='text/javascript'> \n");
script.AppendFormat("window.open ('../../pdf/{0}','newwindow','height=800,width=1200,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=yes,location=no, status=no') ", fileName);
script.Append("</script>");
ScriptManager.RegisterStartupScript(this,this.GetType(), "execSctipt_" + DateTime.Now.ToString("yyyyMMddHHmmss"),
script.ToString(),false);
用itext 5 生成pdf
【以下回答由 GPT 生成】
首先,你可以通过以下步骤来实现使用C#编写代码,供浏览器下载服务器中的PDF文件:
using System.Web;
public HttpResponseMessage DownloadPDF()
{
// 假设你已经拥有一个名为pdfStream的MemoryStream流
MemoryStream pdfStream = GetPDFStream();
// 创建一个HttpResponseMessage对象
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
// 设置ContentType为"application/pdf",以便浏览器知道返回的是PDF文件
response.Content = new StreamContent(pdfStream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
// 设置文件下载的名称
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.FileName = "yourfilename.pdf";
return response;
}
// 示例代码仅针对ASP.NET MVC
routes.MapRoute(
name: "DownloadPDF",
url: "DownloadPDF",
defaults: new { controller = "YourControllerName", action = "DownloadPDF" }
);
请注意,这只是使用C#编写代码实现下载服务器中的PDF文件的一种方式,具体实现可能会因项目需求而有所不同。如果你有特殊的项目需求,你可以根据具体情况进行修改和调整。
【相关推荐】