Azure에서 asp.net 코어로 PDF 파일 생성
보기가 PDF를 반환할 수 있습니까?
내가 필요한 것은 일반적으로 수행하는 HTML이 아닌 PDF를 반환하는 보기입니다. 표준 보기 사용의 장점은 웹 및 asp.net 핵심 지식을 사용하여 보기를 디자인할 수 있다는 것입니다. 이 경우 인보이스를 생성해야 합니다.
I'm using MVC as a pattern to structure my web project.
먼저 인보이스 컨트롤러와 상관 관계 보기를 생성하여 HTML로 인보이스를 디자인할 수 있습니다.
public class InvoiceController : Controller
{
public IActionResult Index()
{
return View();
}
}
HTML을 PDF로
다음으로 HTML(보기)을 PDF로 렌더링하는 방법이 필요합니다. 오픈 소스 명령줄 도구wkhtmltopdf를 사용합니다. 사용하기 쉽고 Azure Web Apps에서 실행할 수 있습니다.
wkhtmltopdf is an opensource (LGPLv3) command-line tool to render HTML into PDF using the Qt WebKit rendering engine. It runs entirely "headless."
Download wkhtmltopdf 파일을 프로젝트에 추가합니다. 내 솔루션에 폴더
/wkhtmltopdf
를 만들었습니다. 다운로드할 때 Azure Web App(Windows 또는 Linux)과 호환되는 올바른 버전을 선택하세요.wkhtmltoimage.exe
, wkhtmltopdf.exe
및 wkhtmltox.dll
파일을 솔루션에 추가하고 'Copy to Output Directory'를 'Copy always'로 변경합니다.PDF 렌더링
wkhtmltopdf 명령줄 도구와 상호 작용하는 쉬운 방법은 NuGet의 Rotativa 라이브러리를 사용하는 것입니다.
먼저 wkhtmltopdf 도구를 찾을 위치를 Rotativa에 알려야 합니다.
Startup.cs
에 다음 줄을 추가합니다.public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
RotativaConfiguration.Setup(env.ContentRootPath, "wkhtmltopdf");
}
다음으로 PDF 파일을 반환할 InvoiceController에 새 작업 결과를 만듭니다. 이 새로운 작업 결과 'IndexAsPDF'는 이미 생성한 보기를 재사용합니다.
public class InvoiceController : Controller
{
...
public IActionResult Pdf()
{
return new ViewAsPdf("Index")
{
FileName = "Invoice.pdf",
PageSize = Size.A4,
MinimumFontSize = 16,
ContentDisposition = ContentDisposition.Inline,
};
}
}
URL
https://localhost:44349/Invoice/Index
로 이동하면 인보이스의 HTML 버전이 표시되지만 https://localhost:44349/Invoice/Pdf
로 이동하면 PDF 버전이 표시됩니다.
Reference
이 문제에 관하여(Azure에서 asp.net 코어로 PDF 파일 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cschotte/generate-pdf-files-with-asp-net-core-on-azure-5853텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)