我复制了以前在我正在使用的整个系统中使用过的代码。但是,此代码会在word文档中打开内容。我希望用PDF格式打开它。
我已经尝试更改字符串声明' filename'结束(.pdf)而不是(.doc),但是当试图打开它时,它说" 无法打开文档,因为它不是一个支持的文件类型,或者因为文件已被损坏.... "
需要对此代码进行哪些更改才能将其作为adope pdf打开。我不会想象会有很多。
string content = sw.GetStringBuilder().ToString();
string fileName = "IRPBestPracticeArticle.doc";
Response.AppendHeader("Content-Type", "application/msword; charset=utf-8");
Response.AppendHeader("Content-disposition", "attachment; filename=" + fileName);
Response.Charset = "utf-8";
Response.Write(content);
答案 0 :(得分:1)
我不能肯定地说,但我假设您正在尝试将数据保存为pdf,并在系统用于读取pdf文件的任何应用程序中打开它?
//Note the change from application/msword to application/pdf
Response.AppendHeader("Content-Type", "application/pdf; charset=utf-8");
确保更改mime类型以及doc结尾(请参阅此处full list of mime types): 话虽如此,我无法保证它将在您的PDF阅读器中正确打开
答案 1 :(得分:1)
试试这组代码。
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "inline;filename=" + fileName);
Response.ContentType = "application/pdf";
Response.WriteFile("FullFilePath");
Response.Flush();
Response.Clear();
Response.End();
在打开文件之前,需要正确设置mime类型。
答案 2 :(得分:0)
安迪试试这个。您必须具有ItextSharp.dll才能使用此代码。从here下载。然后在页面中添加其引用。
尝试使用此代码从字符串创建pdf并下载
Document document = new Document(PageSize.A4);
using (MemoryStream ms = new MemoryStream())
{
PdfWriter.GetInstance(document, ms);
document.Open();
System.Xml.XmlTextReader _xmlr;
if (String.IsNullOrEmpty(errorMsg))
_xmlr = new System.Xml.XmlTextReader(new StringReader(GetTransferedData(content)));
else
_xmlr = new System.Xml.XmlTextReader(new StringReader(@"<html><body>Error Message:" + errorMsg + "</body></html>"));
iTextSharp.text.html.HtmlParser.Parse(document, _xmlr);
document.Close();
ms.Flush();
byte[] data = ms.ToArray();
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.Buffer = true;
Response.ContentType = "application/pdf";
Response.BinaryWrite(data);
Response.End();
ms.Close();
}
答案 3 :(得分:0)
首先,将.doc文件转换为PDF文件。以下是如何实现此目标的示例:Convert Doc file to PDF in VB.Net
获得PDF文件后,使用"application/pdf"
内容类型将其流式传输到浏览器。