创建PDF并在计划任务上发送邮件失败

时间:2014-05-22 18:47:39

标签: c# scheduled-tasks iis-8 pdfsharp

我创建了一个计划任务,该任务应该从网站抓取数据,将其存储在数据库中,创建每日pdf并发送每周邮件。

前两部分顺利运行,但无论我尝试做什么,似乎都会跳过其他两部分。

创建文件不是问题,因为它会创建每日.log文件并写入文件。

对于pdf我使用PdfSharp库,邮件是System.Net.Mail。

PDF

PdfDocumentRenderer renderer = new PdfDocumentRenderer(false, PdfFontEmbedding.Always);
renderer.Document = document;
renderer.RenderDocument();
string directory = DateTime.Now.Year.ToString();
if (!Directory.Exists(directory))
{
    Directory.CreateDirectory(directory);
}
string filename = directory + @"\NewCos" + DateTime.Now.DayOfWeek + ".pdf";
if (renderer.PageCount > 0)
    renderer.PdfDocument.Save(filename);

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:-1)

只是一些未安装的组件以及我使用相对路径iso固定的直接设置的事实

答案 1 :(得分:-2)

首先将iTextSharp nuget Pack添加到您的项目中

itextsharp

然后创建一个pdf,你只需要做这样的事情:

  Document myDocument = new Document(PageSize.A4, -60, -40, 10, 10);
  PdfPTable MainTable = new PdfPTable(1);
  PdfPCell pdfTableCell11 = new PdfPCell(new Paragraph("Hellod PDF!", RegularFont10));
  MainTable.AddCell(pdfTableCell11);
  string path =  "C:\\Customer\\";
  PdfWriter.GetInstance(myDocument, new FileStream(path + "\\Invoice_" + DateTime.Now.DayOfWeek + ".pdf", FileMode.Create));
  myDocument.Open();
  myDocument.Add(MainTable);
  myDocument.Close();

如果你有一个复杂的pdf,你可以通过在表格中创建表来管理它...根据我的经验,最好有一个主表只有一个单元格(这是你的所有文档),然后创建任何欲望表并将这些添加到此主表。所以不是“PdfPCell”而是每个部分可能有不同的“PdfPTable”。