私のWebメソッドは、%temp%フォルダーにPDFファイルを作成します。これは機能します。次に、以下のコードを使用して、そのファイルにいくつかのカスタムフィールド(メタ)を追加します。
そのメソッドを使用するか、ブロックが終了するかに関係なく、クラスPdfStamper
はを生成します。ファイルハンドルを保持しているプロセスは、webdev Webサーバー自体です(VS2010 SP1でデバッグしています)。IOException
.Close()
using
private string AddCustomMetaData(string guid, int companyID, string filePath)
{
try
{
PdfReader reader = new PdfReader(filePath);
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
{
PdfStamper st = new PdfStamper(reader, fs);
Dictionary<string, string> info = reader.Info;
info.Add("Guid", guid);
info.Add("CompanyID", companyID.ToString());
st.MoreInfo = info;
st.Close();
}
reader.Close();
return guid;
}
catch (Exception e)
{
return e.Message;
}
}
私が何をしようとしても、st.Close();
正確には、で例外をスローし続けます。
別のプロセスで使用されているため、プロセスはファイル'C:\ Users [my username] \ AppData \ Local \ Temp\53b96eaf-74a6-49d7-a715-6c2e866a63c3.pdf'にアクセスできません。
明らかな何かを見落としているかPdfStamper
、まだ気付いていないクラスに問題があります。使用されるitexsharpのバージョンは5.3.3.0と5.4.0.0で、問題は同じです。
任意の洞察をいただければ幸いです。
編集:私は現在問題を「コーディング」していますが、解決策が見つかりません。