问题描述
谁能告诉我如何使用 iText 7 将 HTML 文件转换为 PDF?
进程无法访问文件 'C:\...\Management_d5423f50-4cf0-4613-b274-f743ce806863.pdf' 因为它是 正在被另一个进程使用
在这条线上
HtmlConverter.ConvertToPdf(html,new FileStream(dest,FileMode.Create),properties);
我的完整代码如下
string filename;
string html;
string dest;
Paragraph contents;
protected void Page_Load(object sender,EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[]
{
new DataColumn("sID"),new DataColumn("contents"),new DataColumn("sUnity"),new DataColumn("sID_content_image")
});
dt.Rows.Add(1,"Set 1","Q400",@"~\Images\Chrysanthemum.jpg");
dt.Rows.Add(2,"- Par 1.1",@"~\Images\Desert.jpg");
dt.Rows.Add(3,"<b>bold text</b>",@"~\Images\Hydrangeas.jpg");
dt.Rows.Add(4,"<i>italic text</i>",@"~\Images\Jellyfish.jpg");
dt.Rows.Add(5,"<u>underline text</u>",@"~\Images\Koala.jpg");
filename = @"C:\Users\developer4\Desktop\Management_" + Guid.NewGuid() + ".pdf";
PdfWriter writer = new PdfWriter(filename);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
contents = new Paragraph(dt.Rows[i]["contents"].ToString())
.SetTextAlignment(TextAlignment.JUSTIFIED)
.SetFontSize(12);
if (dt.Rows[i]["contents"].ToString().StartsWith("Set"))
{
contents
.SetFontSize(12)
.SetBold()
.SetFontColor(ColorConstants.BLUE);
document.Add(new Lineseparator(new SolidLine()));
}
else if (dt.Rows[i]["contents"].ToString().StartsWith("- "))
{
contents
.SetFontSize(10)
.SetBold()
.SetFontColor(ColorConstants.BLACK);
document.Add(new Lineseparator(new SolidLine()));
}
else
{
contents
.SetFontSize(10)
.SetFontColor(ColorConstants.BLACK);
}
if (!String.IsNullOrEmpty(dt.Rows[i]["sID_content_image"].ToString()))
{
iText.Layout.Element.Image image_path = new iText.Layout.Element.Image(ImageDataFactory
.Create(dt.Rows[i]["sID_content_image"].ToString()))
.SetTextAlignment(TextAlignment.CENTER);
image_path.SetAutoScale(false);
image_path.SetBorderLeft(new SolidBorder(ColorConstants.DARK_GRAY,2));
image_path.SetBorderRight(new SolidBorder(ColorConstants.DARK_GRAY,2));
image_path.SetBorderTop(new SolidBorder(ColorConstants.DARK_GRAY,2));
image_path.SetBorderBottom(new SolidBorder(ColorConstants.DARK_GRAY,2));
document.Add(image_path);
document.Add(new Lineseparator(new SolidLine()));
}
document.Add(contents);
}
dest = filename.ToString();
ConverterProperties properties = new ConverterProperties()
.SetMediaDeviceDescription(new MediaDeviceDescription(MediaType.PRINT));
HtmlConverter.ConvertToPdf(html,properties);
Response.Clear();
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-disposition","attachment; filename=" + dest);
Response.TransmitFile(dest);
Response.End();
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)