2017-10-25 9 views
-3

私はMigraDocを使用しており、文書に画像を挿入したいと考えています。これを行う最も簡単な方法は、イメージファイルのパスをリソースに入れるのではなく、そのパスを提供することです。だから私がしたいのは、画像をファイルとして、ビルド内の他のファイルと一緒に含めることです。その後、MigraDocは相対パスに基づいてイメージを使用できます。ビルドによる出力画像

しかし、これをどうやって行うのか、それが可能なのかわかりません。私のプロジェクトに画像ファイルの外にのリソースを含めることができます。

P.S.私はMigraDocがそれを使用しなければならない前に一時的なフォルダにそれを保存して、リソースにイメージを含めることができます。画像が常に利用可能な場合は、よりシンプルなデザインのように見えます。

P.P.S. MigraDocにプロジェクトリソースの画像を使用させるための回避策があります(受け入れられた回答を参照)。

答えて

2

MigraDocサイトでは、画像を使用してbyte[]としてPDFファイルを作成できます。これは、リソースからのイメージ(サイトに示されているように)で簡単に使用できます。

イメージリソースを特別な文字列に変換し、その文字列をMigraDocがファイル名を必要とする場所に渡すだけです。公式MigraDocサイトへ

static string MigraDocFilenameFromByteArray(byte[] image) 
{ 
    return "base64:" + 
      Convert.ToBase64String(image); 
} 

リンク:
http://www.pdfsharp.net/wiki/MigraDoc_FilelessImages.ashx

そしてMigraDocはまたあなたのアセンブリにプログラムフォルダに保存された画像を使用することができます。 Assemblyクラスを使用して、アセンブリが格納されている場所を探し、そこにあるイメージを見つけることができます。これはMigraDocとは関係なく、基本的な.NET機能の一部です。

+0

ありがとうございます。私の質問はMigraDocに直接関係していないことは間違いありません。タグが追加されました。なぜなら、それは私の問題の根本原因の一部だったからです。 – Noceo

+0

MigraDocタグは適切ですが、「サポートしていません」は誤解を招く可能性があります。 "base64:"接頭辞とリソースを使用するソリューションと、MigraDocには関係しないが、それでも他のMigraDocユーザーに関係するソリューションがあります。 –

+0

それは良い点です。私は私の質問の文言を変更しました。ありがとうございました。 – Noceo

関連する問題