2017-01-13 108 views
1

Asp.net mvc controllerを使用して新しいタブでpdfを開こうとしています。 それは正しく新しいタブで開いているが、文書名がここに を示していないが、私のコードPDFファイルを新しいブラウザタブで開く

public ActionResult ViewDocument() 
{ 
byte[] docFileArr=...... 
var cntdn = new System.Net.Mime.ContentDisposition 
       { 
        FileName = DocumentName, 
        Inline = true, 
       }; 
       Response.AppendHeader("Content-Disposition", cntdn .ToString()); 
       return File(docFileArr, "application/pdf"); 

} 

正しく新しいウィンドウでドキュメントの開口部であるが、それはコントローラ名だけでなく、文書名を示します。添付ファイルをご覧ください。助けを事前に

おかげ enter image description here

+0

http://stackoverflow.com/questions/1465434/edit-metadata-of-pdf-file-with-c-sharpのメソッドを使用するか、アドビの追加メタデータを使用して手動で行うことができます。http:// stackoverflow .com/questions/22136043/change-pdf-title-in-browser-window –

答えて

0

は、Webブラウザは、実際にタイトルを表示するために、PDFファイルに含まれるメタデータを使用します。そうすれば、ファイルの読み込み方法(.NETアプリケーション、ダウンロード後のデスクトップなど)に関係なく、ファイルのタイトルは同じになります。

のAcrobatを使用して、アドビからメタデータを表示および編集する方法については、この記事を参照してください。これを達成するhttps://helpx.adobe.com/acrobat/using/pdf-properties-metadata.html

0

一つの方法は、PDFの作成中または操作のいずれか(PDFのメタデータにタイトルを設定することですそれは、ダウンロードが始まる前に)。これは既に与えられたSOの質問によってカバーされています。

もう1つの方法は、新しいタブを開き、ViewDocumentアクション(より適切な名前はDownloadDocument)によって提供される、自分自身がPDFファイルを埋め込んだ独自のHTMLページをロードすることです。

HTMLページのHTMLヘッダーには、ブラウザによって表示されるタイトルが付いています。例えば。ビューは、(単にアイデアを与える)のようになります。

@{ 
    Layout = null;   
} 
<!DOCTYPE html> 
<html height="100%"> 
<head> 
    <meta charset="utf-8" /> 
    <title>@Model.Caption</title> 
    <script src="/js/pdfobject.js"></script> 
    <style> 
     .pdfobject-container { 
      height: 96vh; 
      width: 99vw; 
     }     
    </style> 
</head> 
    <body height="100%"> 

    <div id="pdf" height="100%"></div> 
    <script>PDFObject.embed("@Model.DownloadUrl", "#pdf");</script> 
    </body> 
</html> 

それが発生しやすい簡単かつ少ない誤差を埋め込むPDFを作成するPDObject.jsライブラリを使用しています。

関連する問題