【发布时间】:2011-02-25 04:35:40
【问题描述】:
我有一个关于使用 iTextSharp 的两部分问题。我已经构建了一个简单的 MVC 应用程序来在 SQL Server 数据库中存储有关“经验教训”的信息。当用户查看课程的详细信息时,我希望他们能够将课程保存为 PDF。我有一些工作代码,但 1)我不确定我的方法有多合理,2)MVC 应用程序使用 TinyMCE 富文本编辑器,当我将富文本放入 PDF 时,正在显示 html 标签。如何让 PDF 遵守 html 格式(粗体、无序列表、段落等)?
下面是我用来生成 PDF 的代码。如果我的处理不正确,我将非常感谢您的反馈。
谢谢。
public FilePathResult GetPDF(int id)
{
Lesson lesson = lessonRepository.GetLesson(id);
string pdf = @"C:\Projects\Forms\LessonsLearned\PDF\template_test.pdf";
string outputFilePath = @"C:\Temp\pdf_output\test_template_filled.pdf";
PdfReader pdfReader = null;
try
{
pdfReader = new PdfReader(pdf);
using (FileStream pdfOutputFile = new FileStream(outputFilePath, FileMode.Create))
{
PdfStamper pdfStamper = null;
try
{
pdfStamper = new PdfStamper(pdfReader, pdfOutputFile);
AcroFields acroFields = pdfStamper.AcroFields;
acroFields.SetField("title", lesson.Title);
acroFields.SetField("owner", lesson.Staff.FullName);
acroFields.SetField("date", lesson.DateEntered.ToShortDateString());
// field with rich text
acroFields.SetField("situation", Server.HtmlDecode(lesson.Situation));
acroFields.SetField("description", Server.HtmlDecode(lesson.Description));
pdfStamper.FormFlattening = true;
}
finally
{
if (pdfStamper != null)
{
pdfStamper.Close();
}
}
}
}
finally
{
pdfReader.Close();
}
return File(outputFilePath, "application/pdf", "Lesson_" + lesson.ID + ".pdf");
}
【问题讨论】:
标签: c# model-view-controller itextsharp