[VB.NET] ASP.NET(MVC)でPDFファイルを表示する
ASP.NET(MVC)でPDFファイルを表示またはダウンロードするサンプルです。
PDFファイルを直接表示する
ここで紹介するのは、PDFファイルを直接表示、バイト配列に読み込んで表示、バイト配列に読み込んでダウンロード の3パターンです。
以下はコントローラーのコード 。
Imports System.Web.Mvc
Namespace Controllers
Public Class ViewTestController
Inherits Controller
' GET: ViewTest
Function Index() As ActionResult
Return View()
End Function
' GET: PdfDirectView
''' <summary>
''' PDFを直接表示
''' </summary>
''' <returns></returns>
<HttpGet>
Function PdfDirectView() As ActionResult
Dim filePath As String = Server.MapPath("~/App_Data/test.pdf")
Return New FilePathResult(filePath, "application/pdf")
End Function
' GET: PdfView
''' <summary>
''' PDFを読み込んでから表示
''' </summary>
''' <returns></returns>
<HttpGet>
Function PdfView() As ActionResult
Dim filePath As String = Server.MapPath("~/App_Data/test.pdf")
Dim data() As Byte = System.IO.File.ReadAllBytes(filePath)
Return New FileContentResult(data, "application/pdf")
End Function
' GET: PdfDownload
''' <summary>
''' PDFを読み込んでからダウンロード
''' </summary>
''' <returns></returns>
<HttpGet>
Function PdfDownload() As ActionResult
Dim filePath As String = Server.MapPath("~/App_Data/test.pdf")
Dim data() As Byte = System.IO.File.ReadAllBytes(filePath)
Return File(data, "application/octet-stream", "テストファイル.pdf")
End Function
End Class
End Namespace
以下はビュー側のコード。
それぞれのリンクをクリックすると、PDFファイルを表示/ダウンロードします。
PDF表示は新規タブを開いて表示しています。
@Code
ViewData("Title") = "index"
End Code
<h2>index</h2>
<a href="@Url.Action("PdfDirectView", "ViewTest")" target="_blank">PDFを新規タブで表示</a>
<br />
<a href="@Url.Action("PdfView", "ViewTest")" target="_blank">PDFを読み込んでから新規タブで表示</a>
<br />
<a href="@Url.Action("PdfDownload", "ViewTest")">PDFを読み込んでからダウンロード</a>