2016-08-15 3 views
1

私はの.NET 4.0フレームワークをWindowsフォームアプリケーションで使用しています。私は文書を作成するときに円グラフの画像をPieChart.SaveImage(Path,ChartImageFormat.Png)ファイルはMicrosoft.Office.Interop.Wordです。その画像にその画像を貼り付けます。それは非常によく、初めてを続行し、.DOCが正常に作成され、私はそれがSystem.IO.ExceptionPieChart.SaveImage(path、imageFormate)は画像の保存時に例外を表示します。

を与える実行勝利フォーム中に円グラフ第二の時間を節約しようと、「ファイル 『パス』ためにアクセスすることはできませんプロセスそれは 別のプロセスによって使用されています。

私はプログラムを終了し、ライト前の画像の上に再びそれを実行しますが、私は実行中のプログラム中に画像第二の時間を節約したいとき、それは同じ例外に

を与えるときこれは私がイメージに

private Void SavePieChart() 
{ 
    string PieChartPath= Application.StartupPath + @"\Chart.png"; 
    PieChart.SaveImage(PieChartPath, ChartImageFormat.Png); 
} 
を保存しています方法です

私は何が間違っている場合は親切に私のミスを指摘する、またはこれを解決するための任意の助けのリンク 、検索が、私の問題を解決する任意の効率的な解決策を見つけることができませんでした。 。 DOCファイル内

EDIT 1

私はその画像を貼り付けています場所です

System.Drawing.Image PieChart =System.Drawing.Image.FromFile(PieChartPath); 
oHeader1 = oDoc.Content.Paragraphs.Add(ref oMissing); 
Logothread = new Thread(() => Clipboard.SetImage(PieChart)); 
Logothread.SetApartmentState(ApartmentState.STA); //Set the thread to STA 
Logothread.Start(); 
Logothread.Join(); 
oHeader1.Range.Paste(); 
oHeader1.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; 
oHeader1.Range.InsertParagraphAfter(); 

+1

2回保存すると問題なく動作します。あなたはC#でそれを開きますか?もしもその言葉がまだ画像に注がれていると疑われなければ? 2回目に保存する前に単語を閉じると機能しますか?それは単語に貼り付けることなく動作しますか? – TaW

+0

保存されたすべてのpngファイルに一意の名前を付けるようにしてください。 – LoekD

+0

@TaW:まず画像を保存してからDocファイルに貼り付けます。作成が終わったら、文書を閉じてアプリケーションを終了しても問題ありません。それは例外を示しているいくつかの時間の後に2度目のdocファイルを作成しようとするとき –

答えて

1

問題は、私がDOCファイルに貼り付けた画像をWASTとき、私が取るたです事前に感謝イメージのような

System.Drawing.Image PieChart =System.Drawing.Image.FromFile(PieChartPath); 

レザとTAWはFROMFILEが()私は画像第二の時間を節約しようとすると、それはファイルがすでに実行中で例外を示し理由ですので、使用中のファイル、

のIはFromStramを(使用)私のコードにこれを追加し続けて説明

byte[] DataBytes= System.IO.File.ReadAllBytes(PieChartPath); 
System.IO.MemoryStream ms = new System.IO.MemoryStream(DataBytes); 

System.Drawing.Image PieChart = System.Drawing.Image.FromStream(ms); 
関連する問題