C# プロジェクトの Resources フォルダーに保存されている画像を参照するタグのsrc
属性に渡す正しいパスを見つけるのに問題があります。<img>
(ビルド アクション: コンテンツ。出力ディレクトリにコピー: 新しい場合はコピー)
URL の ID に基づいて請求書 PDF を生成する RESTFUL サービスがあります。PDF を生成するために、サービスは Handlebars.Net を使用して請求書の HTML を生成し、Select.HtmlToPdf を使用してその HTML を PDF に変換します。
コードをステップ実行すると、Select.HtmlToPdf を使用して PDF を生成するプロジェクトの現在の作業ディレクトリがC:\Program Files (x86)\IIS
. (クイックウォッチを設定することで、次のことがわかりました:System.IO.Directory.GetCurrentDirectory()
.
結果の PDF には、表示したい画像が表示されません。私はコンソール アプリケーションで期待どおりにこの作業を行ったので、src
このプロジェクトでは HTML の引数に渡すパスが正しくないことが問題であると思われます。
ビルドすると、画像ファイルが に表示され\bin\Resources\
ます。そのタグのsrc
属性に渡す必要があるその画像リソースへの相対パスは何ですか?<img>
更新 05/16
PDF を生成するのではなく、コントローラーに HTML をブラウザーに返させて、正しく表示されるかどうかを確認しました。やった。この場合、タグのsrc
属性はでした。ブラウザーが を呼び出して画像を取得しようとすると、コントローラーがそのパスを正しく変換するようです。<img>
\Resources\image.png
<baseurl>\Resources\image.png
だから私の問題は、 Select.HtmlToPdf が画像を取得するためのWebリクエストを作成していないことです。そのsrc
引数を、ロードする必要がある画像ファイルへのローカルパスとして取っているため、私のResourcesフォルダーにアクセスする方法を見つける必要がありますIIS 環境がセットアップする仮想ディレクトリ経由で bin ディレクトリ。