[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>

MVC,PDFASP.NET,MVC,PDF,VB.NET

Posted by itblogks