【发布时间】:2012-04-16 12:02:20
【问题描述】:
我正在使用itextsharp 生成 PDF 文件。我收到了这个错误:
"指定的路径、文件名或两者都太长。完全 限定文件名必须少于 260 个字符,并且 目录名称必须少于 248 个字符。”
代码:
protected void ExportHTMLtoPDF()
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=" + HttpContext.Current.Session["StudentID"].ToString() + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
frmPrint.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A3, 0f, 0f, 0f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter writer;
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
}
【问题讨论】:
-
哪一行代码实际上抛出了那个异常?由于您没有向磁盘写入任何内容,因此您不应该看到这样的消息。
-
根据您配置的环境,ASP.NET、Visual Studio 或 IIS 应用程序池not iTextSharp 将引发异常。尝试发送 HTML/文本文件附件,看看会发生什么。 (注释掉所有 iTextSharp 代码)谷歌“完全限定的文件名必须少于 260 个字符,并且目录名必须少于 248 个字符”(用引号括起来)你可能会发现一个答案。