1

mvc アプリケーションで PDF ビューア機能を実行しようとしています。ユーザーが「pdf を読む」リンクをクリックすると、新しいタブ/ウィンドウが開き、ユーザーは pdf ファイルを表示できるはずです。そのため、例を確認しましたが、見つかりませんでした。記事や例を教えてください。

4

2 に答える 2

4

最初のビューでアンカー タグを表示し、ID を渡します (表示する PDF を識別するため)

@Html.ActionLink("read the pdf","view","doc",new { @id=123},null)

ドキュメントコントローラーで、呼び出されたパラメーターを持つアクションメソッドを持ち、メソッドをid使用してそこにpdfを返しますFile

public ActionResult View(int id)
{
  byte[] byteArrayOfFile=GetFieInByteArrayFormatFromId(id);
  return File(byteArrayOfFile,"application/pdf");
}

仮定GetFileInByteArrayFormatFromIdはPDFファイルのバイト配列形式を返すメソッドです。

このオーバーロードを使用して、物理的に保存されている PDF ファイルへのフル パスがわかっている場合は、PDF を返すこともできます。

public ActionResult Show()
{
  string path="FullPAthTosomePDFfile.pdf";
  return File(path, "application/pdf","someFriendlyName.pdf");
}

PDF をダウンロードせずにブラウザーで表示する

上記のソリューションでは、エンド ユーザーのブラウザ設定に基づいて、ファイルをダウンロードまたは開くか、単にファイルをダウンロードして開くかをユーザーに尋ねます。ファイルの内容をユーザーのコンピューターにダウンロードせずにブラウザーに直接表示したい場合は、ファイルストリームをブラウザーに送信できます。

public ActionResult Show(int id)
{
    // to do : Using the id passed in,build the path to your pdf file

    var pathToTheFile=Server.MapPath("~/Content/Downloads/sampleFile.pdf");
    var fileStream = new FileStream(pathToTheFile,
                                        FileMode.Open,
                                        FileAccess.Read
                                    );
    return  new FileStreamResult(fileStream, "application/pdf");           
}

上記のコードではsampleFile.pdf~/Content/Downloads/場所に という名前の pdf ファイルがあることを想定しています。別の名前/命名規則でファイルを保存する場合は、渡された Id から一意のファイル名/パスを作成するようにコードを更新できます。

于 2012-11-04T15:12:18.517 に答える
0

PDF コンテンツをブラウザで表示する場合は、iTextShare dll を使用できます。

リンクhttp://www.codeproject.com/Tips/387327/Convert-PDF-file-content-into-string-using-Csharpを参照してください。

VB.NET または C# で itextsharp dll を使用して PDF コンテンツを読み取る

于 2012-11-05T01:17:45.273 に答える