文件正由另一个进程使用 [英] File being used by another process

查看:87
本文介绍了文件正由另一个进程使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我正在做的是,我正在打开一个模板PDF文件,添加我所需的更改并保存这个新文件。我正在使用Itextsharp从模板文件中读取并修改新文件。



第一次生成文件时,一切顺利。但是,如果我尝试再次生成此文件,我会看到一条错误消息,指出新文件正被另一个进程使用。但是,如果我刷新页面并再试一次,这将成功。



我知道我应该释放所有对象,但是我相信要么这还不够或者我做错了什么。任何帮助将不胜感激!



  string  fileName = Path。合并(System.Web.HttpContext.Current.Server.MapPath(  data),company.ID .ToString(),  myNewFile.PDF); 
string templateFile = Path.Combine(System.Web.HttpContext.Current.Server.MapPath( data \\templates), template.pdf);

使用 var ms = new FileStream(fileName,FileMode.Create))
{
using var doc = new Document())
{
using var copy = new PdfCopy(doc,ms))
{
doc 。打开();
PdfReader reader = null ;

尝试
{
reader = new PdfReader (templateFile);
var pages = 2 ; // reader.NumberOfPages;

for int pageNumber = 1 ; pageNumber < = pages; ++ pageNumber)
{
var page = copy.GetImportedPage(reader,pageNumber);
var stamp = copy.CreatePageStamp(page);

var f = new 字体(Font.FontFamily.TIMES_ROMAN,9f) ;
f.Color = BaseColor.BLACK;
var p = new 短语();

switch (pageNumber)
{

case 1
// 第1页上进行更改的代码
break ;

case 2
// 第二页进行更改的代码
break ;
}

stamp.AlterContents();
copy.AddPage(page);
}
}
catch (例外情况)
{
_log.Error( SUFGenerateFSkattDocument时出错。错误消息: + ex.Message);
_log.Error( 完整错误详细信息: + ex.ToString());
}
最后
{
if (读者) != null
reader.Close();
}

doc.CloseDocument();
doc.Close();
doc.Dispose();

copy.Close();
copy.Dispose();
}
}
ms.Close();
ms.Dispose();
}





完整代码清单:

  string  fileName = Path.Combine(System.Web.HttpContext.Current.Server.MapPath(  data),company.ID.ToString(),FSkattDocument); 
string templateFile = Path.Combine(System.Web.HttpContext.Current.Server.MapPath( data \\templates),FSkattDocument);

PdfReader.unethicalreading = true ;

if (File.Exists(fileName))
File.Delete(fileName);

CheckFolderExists(fileName);

使用 var ms = new FileStream(fileName,FileMode.Create))
{
using var doc = new Document())
{
using var copy = new PdfCopy(doc,ms))
{
doc 。打开();
PdfReader reader = null ;

尝试
{
reader = new PdfReader (templateFile);
var pages = 2 ; // reader.NumberOfPages;

for int pageNumber = 1 ; pageNumber < = pages; ++ pageNumber)
{
var page = copy.GetImportedPage(reader,pageNumber);
var stamp = copy.CreatePageStamp(page);

var f = new 字体(Font.FontFamily.TIMES_ROMAN,9f) ;
f.Color = BaseColor.BLACK;
var p = new 短语();

switch (pageNumber)
{

case 1
#region Page 1

float xPoint = 68f;

if ((fskatt.FSkattType& 1 )!= 0
{
p = new 短语( X,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,68f,740f,0f);
}
if ((fskatt.FSkattType& 2 )!= < span class =code-digit> 0 )
{
p = new 短语( X,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,161f,740f,0f);
}
if ((fskatt.FSkattType& 4 )!= < span class =code-digit> 0 )
{
p = new 短语( X,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,261f,740f,0f);
}
if ((fskatt.FSkattType& 8 )!= < span class =code-digit> 0 )
{
p = new 短语( X,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,455f,740f,0f);
}

p = new 短语(company.Name.ToUpperInvariant(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,695f,0f);

p = new 短语(ceo.SocialSecurityNumber,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,455f,695f,0f);

p = new 短语(company.Address.ToUpperInvariant(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,671f,0f);

p = new 短语(company.ZipCode.ToUpperInvariant(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,658f,0f);

p = new 短语(company.City.ToUpperInvariant(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,645f,0f);

p = new 短语( X,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,261f,596f,0f);

p = new 短语( String .Format( 1 / 1- {0} -31 / 12- {0},DateTime.Today.Year),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,455f,575f,0f);

p = new 短语(company.Address.ToUpperInvariant(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,550f,0f);

p = new 短语(company.ZipCode.ToUpperInvariant()+ < span class =code-string> + company.City.ToUpperInvariant(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,537f,0f);

p = new 短语(fskatt.ActivityDesc1,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,430f,0f);

p = new 短语(fskatt.ActivityPct1.ToString(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,455f,430f,0f);

p = new 短语(fskatt.ActivityDesc2,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,407f,0f);

p = new 短语(fskatt.ActivityPct2.ToString(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,455f,407f,0f);

p = new 短语(fskatt.ActivityDesc3,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,382f,0f);

p = new 短语(fskatt.ActivityPct3.ToString(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,455f,382f,0f);

var lines = App_Code.CHelper.FormatString(company.Description, 140 );
float yPoint = 285 ;

foreach var line 行)
{
p = new 短语(line,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,yPoint,0f);

yPoint - = 11f;
}

yPoint = 118f;

foreach var sh in personShareHolders)
{
p = new 短语(sh.Name,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,yPoint,0f);

p = new 短语(sh.SocialSecurityNumber,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,390f,yPoint,0f);

var shareAmount = sharesPerHolder.First(x = > x.ShareHolderID == sh.ID).Shares.ToString();

p = new 短语(shareAmount,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,520f,yPoint,0f);

yPoint - = 24f;
}

foreach var sh in companyShareHolders)
{
p = new 短语(sh.Name,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,yPoint,0f);

p = new 短语(sh.CompanyNumber,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,390f,yPoint,0f);

var shareAmount = sharesPerHolder.First(x = > x.ShareHolderID == sh.ID).Shares.ToString();

p = new 短语(shareAmount,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,520f,yPoint,0f);

yPoint - = 24f;
}

#endregion
break ;

case 2
#region $ 2

if ((fskatt.FSkattType& 4 )!= 0 // 填充部分F
{
p = new 短语(fskatt.FirstSalary.ToString(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,812f,0f);

p = new 短语( 12,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,787f,0f);

p = new 短语(fskatt.AmountOfEmployees.ToString(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,250f,787f,0f);

p = new 短语(fskatt.SalaryAmount.ToString(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,422f,787f,0f);
}

if ((fskatt.FSkattType& 8 )!= 0 // 填充部分G
{
p = new 短语(fskatt.VatStartDate.Value.ToString( dd / MM / yyyy),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,695f,0f);

p = new 短语(fskatt.Turnover.ToString(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,205f,695f,0f);

xPoint = 69f;

if (fskatt.AccountingPeriod == 1
xPoint = 140f;
else if (fskatt.AccountingPeriod == 2
xPoint = 219f;

p = new 短语( X,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,xPoint,655f,0f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,69f,620f,0f);
}

p = new 短语(fskatt.Profit.ToString(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,513f,0f);

p = new 短语(ceo.Name.ToUpperInvariant(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,178f,0f);

p = new 短语(ceo.Telephone,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,350f,200f,0f);

p = new 短语(ceo.Email,f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,350f,178f,0f);

p = new 短语(DateTime.Today.ToString( dd / MM / yyyy),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,70f,45f,0f);

p = new 短语(ceo.Name.ToUpperInvariant(),f);

ColumnText.ShowTextAligned(
stamp.GetOverContent(),Element.ALIGN_LEFT,
p,162f,45f,0f);

#endregion
break ;
}

stamp.AlterContents();
copy.AddPage(page);
}
}
catch (例外情况)
{
_log.Error( SUFGenerateFSkattDocument时出错。错误消息: + ex.Message);
_log.Error( 完整错误详细信息: + ex.ToString());
}
最后
{
if (读者) != null
reader.Close();
}

ms.Flush( true );
copy.Close();
copy.Dispose();
}

doc.CloseDocument();
doc.Close();
doc.Dispose();
}


ms.Close();
ms.Dispose();
}

解决方案

请参阅我以前的回答:如何压缩错误'它已被vb.net中的另一个进程'使用 [ ^ ]。



-SA

Hi Everyone,

What I'm doing is that, I'm opening a template PDF file, adding my required changes and saving this new file. I'm making use of Itextsharp to read from the template file and to modify the new file.

The first time I generate the file, all goes well. However, if I try to generate again this file in succession, I see an error message stating that the new file is being used by another process. However, if I refresh the page and try again, this will succeed.

I know that I should release all objects, however I believe that either this is not enough or I'm doing something wrong. Any help would be greatly appreciated!

string fileName = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("data"), company.ID.ToString(), "myNewFile.PDF");
string templateFile = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("data\\templates"), "template.pdf");

using (var ms = new FileStream(fileName, FileMode.Create))
{
	using (var doc = new Document())
	{
		using (var copy = new PdfCopy(doc, ms))
		{
			doc.Open();
			PdfReader reader = null;
			
			try
			{
				reader = new PdfReader(templateFile);
				var pages = 2;// reader.NumberOfPages;

				for (int pageNumber = 1; pageNumber <= pages; ++pageNumber)
				{
					var page = copy.GetImportedPage(reader, pageNumber);
					var stamp = copy.CreatePageStamp(page);

					var f = new Font(Font.FontFamily.TIMES_ROMAN, 9f);
					f.Color = BaseColor.BLACK;
					var p = new Phrase();

					switch (pageNumber)
					{

						case 1:
							//code to make changes on page one
							break;

						case 2:
							//code to make changes on page two
							break;
					}

					stamp.AlterContents();
					copy.AddPage(page);
				}
			}
			catch (Exception ex)
			{
				_log.Error("Error while SUFGenerateFSkattDocument. Error Message: " + ex.Message);
				_log.Error("Full Error Details: " + ex.ToString());
			}
			finally
			{
				if (reader != null)
					reader.Close();
			}
			
			doc.CloseDocument();
			doc.Close();
			doc.Dispose();

			copy.Close();
			copy.Dispose();
		}
	}
	ms.Close();
	ms.Dispose();
}



Full Code Listing:

string fileName = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("data"), company.ID.ToString(), FSkattDocument);
            string templateFile = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("data\\templates"), FSkattDocument);

            PdfReader.unethicalreading = true;

            if (File.Exists(fileName))
                File.Delete(fileName);

            CheckFolderExists(fileName);

            using (var ms = new FileStream(fileName, FileMode.Create))
            {
                using (var doc = new Document())
                {
                    using (var copy = new PdfCopy(doc, ms))
                    {
                        doc.Open();
                        PdfReader reader = null;

                        try
                        {
                            reader = new PdfReader(templateFile);
                            var pages = 2;// reader.NumberOfPages;

                            for (int pageNumber = 1; pageNumber <= pages; ++pageNumber)
                            {
                                var page = copy.GetImportedPage(reader, pageNumber);
                                var stamp = copy.CreatePageStamp(page);

                                var f = new Font(Font.FontFamily.TIMES_ROMAN, 9f);
                                f.Color = BaseColor.BLACK;
                                var p = new Phrase();

                                switch (pageNumber)
                                {

                                    case 1:
                                        #region Page 1

                                        float xPoint = 68f;

                                        if ((fskatt.FSkattType & 1) != 0)
                                        {
                                            p = new Phrase("X", f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 68f, 740f, 0f);
                                        }
                                        if ((fskatt.FSkattType & 2) != 0)
                                        {
                                            p = new Phrase("X", f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 161f, 740f, 0f);
                                        }
                                        if ((fskatt.FSkattType & 4) != 0)
                                        {
                                            p = new Phrase("X", f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 261f, 740f, 0f);
                                        }
                                        if ((fskatt.FSkattType & 8) != 0)
                                        {
                                            p = new Phrase("X", f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 455f, 740f, 0f);
                                        }

                                        p = new Phrase(company.Name.ToUpperInvariant(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 695f, 0f);

                                        p = new Phrase(ceo.SocialSecurityNumber, f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 455f, 695f, 0f);

                                        p = new Phrase(company.Address.ToUpperInvariant(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 671f, 0f);

                                        p = new Phrase(company.ZipCode.ToUpperInvariant(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 658f, 0f);

                                        p = new Phrase(company.City.ToUpperInvariant(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 645f, 0f);

                                        p = new Phrase("X", f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 261f, 596f, 0f);

                                        p = new Phrase(String.Format("1/1-{0}-31/12-{0}", DateTime.Today.Year), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 455f, 575f, 0f);

                                        p = new Phrase(company.Address.ToUpperInvariant(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 550f, 0f);

                                        p = new Phrase(company.ZipCode.ToUpperInvariant() + " " + company.City.ToUpperInvariant(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 537f, 0f);

                                        p = new Phrase(fskatt.ActivityDesc1, f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 430f, 0f);

                                        p = new Phrase(fskatt.ActivityPct1.ToString(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 455f, 430f, 0f);

                                        p = new Phrase(fskatt.ActivityDesc2, f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 407f, 0f);

                                        p = new Phrase(fskatt.ActivityPct2.ToString(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 455f, 407f, 0f);

                                        p = new Phrase(fskatt.ActivityDesc3, f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 382f, 0f);

                                        p = new Phrase(fskatt.ActivityPct3.ToString(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 455f, 382f, 0f);

                                        var lines = App_Code.CHelper.FormatString(company.Description, 140);
                                        float yPoint = 285;

                                        foreach (var line in lines)
                                        {
                                            p = new Phrase(line, f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 70f, yPoint, 0f);

                                            yPoint -= 11f;
                                        }

                                        yPoint = 118f;

                                        foreach (var sh in personShareHolders)
                                        {
                                            p = new Phrase(sh.Name, f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 70f, yPoint, 0f);

                                            p = new Phrase(sh.SocialSecurityNumber, f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 390f, yPoint, 0f);

                                            var shareAmount = sharesPerHolder.First(x => x.ShareHolderID == sh.ID).Shares.ToString();

                                            p = new Phrase(shareAmount, f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 520f, yPoint, 0f);

                                            yPoint -= 24f;
                                        }

                                        foreach (var sh in companyShareHolders)
                                        {
                                            p = new Phrase(sh.Name, f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 70f, yPoint, 0f);

                                            p = new Phrase(sh.CompanyNumber, f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 390f, yPoint, 0f);

                                            var shareAmount = sharesPerHolder.First(x => x.ShareHolderID == sh.ID).Shares.ToString();

                                            p = new Phrase(shareAmount, f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 520f, yPoint, 0f);

                                            yPoint -= 24f;
                                        }

                                        #endregion
                                        break;

                                    case 2:
                                        #region Page 2

                                        if ((fskatt.FSkattType & 4) != 0) //fill section F
                                        {
                                            p = new Phrase(fskatt.FirstSalary.ToString(), f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 70f, 812f, 0f);

                                            p = new Phrase("12", f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 70f, 787f, 0f);

                                            p = new Phrase(fskatt.AmountOfEmployees.ToString(), f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 250f, 787f, 0f);

                                            p = new Phrase(fskatt.SalaryAmount.ToString(), f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 422f, 787f, 0f);
                                        }

                                        if ((fskatt.FSkattType & 8) != 0) //fill section G
                                        {
                                            p = new Phrase(fskatt.VatStartDate.Value.ToString("dd/MM/yyyy"), f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 70f, 695f, 0f);

                                            p = new Phrase(fskatt.Turnover.ToString(), f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 205f, 695f, 0f);

                                            xPoint = 69f;

                                            if (fskatt.AccountingPeriod == 1)
                                                xPoint = 140f;
                                            else if (fskatt.AccountingPeriod == 2)
                                                xPoint = 219f;

                                            p = new Phrase("X", f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, xPoint, 655f, 0f);

                                            ColumnText.ShowTextAligned(
                                                stamp.GetOverContent(), Element.ALIGN_LEFT,
                                                p, 69f, 620f, 0f);
                                        }

                                        p = new Phrase(fskatt.Profit.ToString(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 513f, 0f);

                                        p = new Phrase(ceo.Name.ToUpperInvariant(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 178f, 0f);

                                        p = new Phrase(ceo.Telephone, f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 350f, 200f, 0f);

                                        p = new Phrase(ceo.Email, f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 350f, 178f, 0f);

                                        p = new Phrase(DateTime.Today.ToString("dd/MM/yyyy"), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 70f, 45f, 0f);

                                        p = new Phrase(ceo.Name.ToUpperInvariant(), f);

                                        ColumnText.ShowTextAligned(
                                            stamp.GetOverContent(), Element.ALIGN_LEFT,
                                            p, 162f, 45f, 0f);

                                        #endregion
                                        break;
                                }

                                stamp.AlterContents();
                                copy.AddPage(page);
                            }
                        }
                        catch (Exception ex)
                        {
                            _log.Error("Error while SUFGenerateFSkattDocument. Error Message: " + ex.Message);
                            _log.Error("Full Error Details: " + ex.ToString());
                        }
                        finally
                        {
                            if (reader != null)
                                reader.Close();
                        }

                        ms.Flush(true);
                        copy.Close();
                        copy.Dispose();
                    }

                    doc.CloseDocument();
                    doc.Close();
                    doc.Dispose();
                }

                
                ms.Close();
                ms.Dispose();
            }

解决方案

Please see my past answer: how to compress the error 'it is already used by another process' in vb.net[^].

—SA


这篇关于文件正由另一个进程使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆