1

我已经复制了以前在我正在处理的系统中使用的代码。但是,此代码会在 word 文档中打开内容。我希望它以 PDF 格式打开。

我已经尝试将字符串声明“文件名”更改为以(.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

4 回答 4

1

我不能肯定地说,但我会假设您正在尝试将您的数据保存为 pdf 并在系统用于读取 pdf 文件的任何应用程序中打开它?

//Note the change from application/msword to application/pdf
Response.AppendHeader("Content-Type", "application/pdf; charset=utf-8");

确保更改 mime 类型和文档结尾(请参阅此处以获取mime 类型的完整列表):话虽如此,我不能保证它会在您的 PDF 阅读器中正确打开

于 2013-08-26T11:59:58.877 回答
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 类型。

于 2013-08-26T12:01:13.097 回答
0

安迪试试这个。您必须拥有 ItextSharp.dll 才能使用此代码。从这里下载。然后在您的页面中添加其引用。

尝试使用此代码从字符串创建 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();
            }
于 2013-08-26T15:22:18.317 回答
0

首先,将 .doc 文件转换为 PDF 文件。以下是如何实现此目的的示例:Convert Doc file to PDF in VB.Net

"application/pdf"获得 PDF 文件后,使用内容类型将它们流式传输到浏览器。

于 2013-08-26T15:28:52.363 回答