iTextSharp 사용에 관해 두 가지 질문이 있습니다. SQL Server 데이터베이스에서 "배운 교훈"에 대한 정보를 저장하는 간단한 MVC 응용 프로그램을 만들었습니다. 사용자가 수업의 세부 정보를보고있을 때 수업을 PDF로 저장할 수 있기를 바랍니다. 몇 가지 작업 코드가 있지만 1) 내 접근 방식이 얼마나 소리가 나는지 잘 모르겠다. 2) MVC 애플리케이션에서 TinyMCE 서식있는 텍스트 편집기를 사용하고 HTML 태그를 PDF에 넣으면 html 태그가 표시된다. html 형식 (굵게 글꼴, 정렬되지 않은 목록, 단락 등)을 따르도록 PDF를 얻으려면 어떻게해야합니까?MVC에서 iTextSharp 사용하기
다음은 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");
}
답장을 보내 주셔서 감사합니다. 그래, 나는 FileStream에 대해 걱정했다. 템플릿 PDF를 열고 데이터베이스의 데이터로 채울 수 있기를 원하지만, 나중에 사용하기 위해 결과 파일을 저장할 필요가 없습니다. 공유 할 수있는 예제 코드가 있습니까? 나는 이걸 함께 해킹하는 것 뿐이야. HTML 태그 앞면에서 HTMLWorker 클래스를 사용해 보겠습니다. – user353024
HTML을 파싱하는 HTMLWorker 클래스가 있는데 이해가 안되는 부분은 HTML의 모양과 비슷한 모양이되도록 PDF의 텍스트 서식을 지정할 수 있다면 ... 조언이 필요합니다! – user353024