1

作業中のシステム全体で以前に使用されていたコードをコピーしました。ただし、このコードはコンテンツを Word 文書で開きます。PDFで開くようにしています。

文字列宣言 'filename' を (.doc) ではなく (.pdf) で終わるように変更しようとしましたが、それを開こうとすると、「サポートされているファイルの種類ではないか、ドキュメントを開けませんでした」と表示されます。ファイルが破損しています.... ".

このコードを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

この一連のコードを試してみてください。

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 に答える
1

確かなことは言えませんが、データをpdfとして保存しようとしていて、システムがpdfファイルを読み取るために使用するアプリケーションでそれを開こうとしていると思いますか?

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

ドキュメントの末尾だけでなく、MIME タイプも必ず変更してください ( MIME タイプの完全なリストについては、こちらを参照してください)。

于 2013-08-26T11:59:58.877 に答える
0

まず、.doc ファイルを PDF ファイルに変換します。これを実現する方法のサンプルを次に示します。VB.Net で Doc ファイルを PDF に変換する

PDF ファイルを取得したら、"application/pdf"コンテンツ タイプを使用してブラウザにストリーミングします。

于 2013-08-26T15:28:52.363 に答える
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 に答える