打开PDF文档而不是单词按钮单击时打开文档

时间:2013-08-26 11:33:01

标签: c# asp.net

我复制了以前在我正在使用的整个系统中使用过的代码。但是,此代码会在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);

4 个答案:

答案 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"内容类型将其流式传输到浏览器。