Blazor 튜토리얼로 PDF 파일 생성하기
IronPDF는 유명한 C# 라이브러리로서 Blazor 애플리케이션과 함께 작동합니다. 이 검토는 IronPDF를 사용하여 Blazor 애플리케이션에 PDF 보고서를 삽입하는 방법을 안내하며, 매끄러운 통합과 효과성을 보여줍니다.
Blazor에서 PDF 파일을 만드는 방법
- Visual Studio에서 새 Blazor 프로젝트를 생성하세요.
- Blazor 애플리케이션용 HTML-PDF 변환 라이브러리를 설치하세요.
- URL을 통해 웹 페이지에서 PDF 문서 생성
- HTML 문자열에서 PDF 문서 생성
1. IronPDF 기능
개발자는 강력한 IronPDF .NET PDF 라이브러리를 통해 PDF 문서를 빠르게 생성, 읽기 및 처리할 수 있습니다. IronPDF에는 내장된 Chrome 엔진이 있으며 많은 실용적이고 강력한 기능을 제공합니다. 여기에는 HTML5, JavaScript, CSS 및 이미지를 PDF로 변환할 수 있는 기능, PDF 문서에 고유한 헤더 및 풋터를 추가할 수 있는 기능, 웹 브라우저에 보이는 대로 PDF를 생성할 수 있는 기능이 포함됩니다. IronPDF는 HTML, ASPX, Razor Pages 및 MVC 프레임워크를 포함한 다양한 웹 기술을 지원합니다.
IronPDF의 주요 특징은 다음과 같습니다.
- IronPDF는 .NET C# 애플리케이션 내에서 PDF 파일의 생성 및 수정을 완벽하게 제어할 수 있습니다.
- IronPDF는 특정 User-Agent, Proxy, Header 및 Cookie 구성을 사용하여 웹 페이지의 URL에서 PDF 파일을 생성할 수 있습니다.
- IronPDF는 양식 변수를 사용하는 로그인 양식을 사용하여 웹 페이지에 대한 PDF 파일을 생성할 수 있습니다.
- IronPDF는 기존 PDF 파일에서 사진을 추출 및/또는 제거할 수 있습니다.
- IronPDF는 PDF 문서에 텍스트, 사진, 책갈피, 워터마크 및 기타 요소를 추가할 수 있습니다.
- IronPDF는 하나 이상의 PDF 문서의 페이지를 병합 및 분할하는 작업을 쉽게 할 수 있습니다.
- IronPDF는 JavaScript, CSS, 미디어 파일과 같은 웹 페이지 자산을 처리하고 브라우저에 나타나는 대로 PDF 문서로 렌더링 할 수 있습니다.
- IronPDF는 .NET Core, .NET Standard 등을 포함한 모든 .NET Framework를 지원합니다.
2. Blazor란 무엇인가?
Blazor는 C#과 HTML을 사용하여 Web Assembly로 클라이언트 측 웹 응용 프로그램을 만들 수 있는 웹 응용 프로그램 프레임워크입니다.
Web Assembly 응용 프로그램은 바이너리 명령 형식으로 브라우저에 전송되어 거의 네이티브 속도로 작동할 수 있습니다. 이로 인해 C#과 같은 언어가 브라우저 내에서 실행될 수 있는 새로운 가능성이 열렸습니다.
Visual Studio에서 새 프로젝트 생성
먼저 Microsoft Visual Studio 응용 프로그램을 열고 파일 메뉴에서 "새 프로젝트"를 선택하십시오. 그런 다음 "Blazor Server App"을 선택하십시오.
Visual Studio에서 새로운 프로젝트 생성하기
프로젝트 이름을 입력하고 파일 경로를 선택하십시오. 그런 다음 만들기 버튼을 클릭하십시오.
새 Blazor 응용 프로그램의 이름과 위치 선택
원하는 .NET Framework를 선택하십시오(이 튜토리얼에서는 .NET 6.0을 사용할 것입니다). 아래 스크린샷을 참조하십시오:
.NET 6.0 프레임워크로 Visual Studio에서 새 프로젝트 생성
Microsoft Visual Studio는 이제 이 Blazor 애플리케이션의 구조를 생성할 것입니다.
그 다음, 이 새 프로젝트에 IronPDF 라이브러리를 추가하십시오.
3. IronPDF 라이브러리 설치
IronPDF 라이브러리는 네 가지 방법으로 다운로드 및 설치할 수 있습니다:
- Visual Studio의 NuGet 패키지 관리자를 사용하기
- Visual Studio의 명령줄 사용하기
- NuGet 웹사이트에서 직접 다운로드
- IronPDF 웹사이트에서 직접 다운로드하기
3.1 Visual Studio의 NuGet 패키지 관리자 사용하기
Visual Studio는 라이브러리를 프로젝트에 직접 설치하는 데 도움을 주는 NuGet 패키지 관리자를 제공합니다. 아래의 스크린샷은 NuGet 패키지 관리자를 여는 방법을 보여줍니다.
Visual Studio의 NuGet 패키지 관리자 접속
검색 필드 아래의 탐색 탭에서 "IronPDF"를 검색하기 위해 아래 스크린샷처럼 검색하세요:
NuGet 패키지 관리 GUI에서 IronPDF 라이브러리 검색
위 이미지에서 관련 검색 결과 목록을 보여줍니다. 프로젝트에 패키지를 설치하기 위해 필요한 옵션을 선택하세요.
3.2 Visual Studio 명령줄 사용하기
Visual Studio에서 도구 > NuGet 패키지 관리자 > 패키지 관리자 콘솔로 이동합니다.
패키지 관리자 콘솔 탭에 다음 줄을 입력하세요:
Install-Package IronPdf
패키지는 이제 다운로드되고 현재 프로젝트에 설치됩니다.
NuGet 패키지 관리자 콘솔을 사용하여 IronPDF 라이브러리 설치
3.3 NuGet 웹사이트에서 직접 다운로드
IronPDF 라이브러리를 설치하는 세 번째 방법은 웹사이트에서 직접 NuGet 패키지를 다운로드하는 것입니다.
IronPDF용 NuGet 웹사이트로 이동하세요.
- 오른쪽 메뉴에서 "패키지 다운로드" 옵션을 클릭하세요.
- 파일 시스템에서 다운로드된 패키지를 엽니다. 자동으로 설치됩니다.
- 솔루션을 다시 로드하고 프로젝트에서 사용을 시작하세요.
3.4 IronPDF 웹사이트에서 직접 다운로드
IronPDF 패키지를 직접 다운로드하려면 IronPDF 웹사이트를 방문하세요.
다운로드 후, 프로젝트에 패키지를 추가하기 위해 다음 절차를 따르세요:
- 솔루션 창에서 프로젝트를 오른쪽 클릭.
- "추가" > "참조" 옵션을 선택한 다음, 이전에 다운로드한 라이브러리 위치로 이동하세요.
- 라이브러리를 참조로 추가하기 위해 확인을 클릭하세요.
4. Blazor 서버 앱에서 PDF 문서 만들기
이 튜토리얼의 Blazor 앱은 IronPDF를 사용하여 URL로 웹 페이지의 HTML 콘텐츠를 가져와 PDF 문서로 변환할 것입니다.
프로젝트에 포함된 .razor 파일에 다음 소스 코드를 입력하세요.
@using IronPdf
@code {
/// <summary>
/// This method exports data by converting a URL to a PDF file and initiating its download.
/// </summary>
public async Task ExportData()
{
try
{
string fileName = "Demo.pdf";
var renderer = new ChromePdfRenderer();
// Render the contents of the URL as a PDF document
var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");
// Save the PDF using a JavaScript function
await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
}
catch (Exception ex)
{
// Handle any exceptions that may occur
Console.Error.WriteLine($"Error in ExportData: {ex.Message}");
}
}
}
@using IronPdf
@code {
/// <summary>
/// This method exports data by converting a URL to a PDF file and initiating its download.
/// </summary>
public async Task ExportData()
{
try
{
string fileName = "Demo.pdf";
var renderer = new ChromePdfRenderer();
// Render the contents of the URL as a PDF document
var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");
// Save the PDF using a JavaScript function
await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
}
catch (Exception ex)
{
// Handle any exceptions that may occur
Console.Error.WriteLine($"Error in ExportData: {ex.Message}");
}
}
}
[using] ReadOnly Property code() As IronPdf
''' <summary>
''' This method exports data by converting a URL to a PDF file and initiating its download.
''' </summary>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' public async Task ExportData()
' {
' try
' {
' string fileName = "Demo.pdf";
' var renderer = New ChromePdfRenderer();
'
' ' Render the contents of the URL as a PDF document
' var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");
'
' ' Save the PDF using a JavaScript function
' await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
' }
' catch (Exception ex)
' {
' ' Handle any exceptions that may occur
' Console.@Error.WriteLine(string.Format("Error in ExportData: {0}", ex.Message));
' }
' }
End Property
위 코드 스니펫은 HTML에서 PDF 문서를 생성하는 두 가지 방법을 사용합니다. 첫 번째는 IronPDF의 RenderUrlAsPdf 메소드로, 주어진 URL에서 HTML 콘텐츠를 다운로드하여 PDF 형식으로 변환합니다.
두 번째 메소드는 정적 JSRuntime.InvokeVoidAsync 메소드로, 브라우저의 JavaScript 엔진을 트리거하여 웹 페이지 범위 내에서 JavaScript 함수를 호출하여 클라이언트 파일 시스템에 PDF 콘텐츠를 파일로 저장합니다.
아래에는 이 JavaScript 함수가 포함되어 있습니다:
<script type="text/javascript">
/**
* Saves the PDF data as a file on the client's system.
* @param {string} filename - The name of the file to be created.
* @param {string} bytesBase64 - The Base64 encoded string of the PDF data.
*/
function saveAsFile(filename, bytesBase64) {
if (navigator.msSaveBlob) {
// Download the document in Microsoft Edge browser
var data = window.atob(bytesBase64);
var bytes = new Uint8Array(data.length);
for (var i = 0; i < data.length; i++) {
bytes[i] = data.charCodeAt(i);
}
var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
navigator.msSaveBlob(blob, filename);
window.navigator.msSaveOrOpenBlob(blob);
}
else {
var link = document.createElement('a');
link.download = filename;
link.href = "data:application/octet-stream;base64," + bytesBase64;
document.body.appendChild(link); // Needed for Firefox
link.click();
document.body.removeChild(link);
}
}
</script>
<script type="text/javascript">
/**
* Saves the PDF data as a file on the client's system.
* @param {string} filename - The name of the file to be created.
* @param {string} bytesBase64 - The Base64 encoded string of the PDF data.
*/
function saveAsFile(filename, bytesBase64) {
if (navigator.msSaveBlob) {
// Download the document in Microsoft Edge browser
var data = window.atob(bytesBase64);
var bytes = new Uint8Array(data.length);
for (var i = 0; i < data.length; i++) {
bytes[i] = data.charCodeAt(i);
}
var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
navigator.msSaveBlob(blob, filename);
window.navigator.msSaveOrOpenBlob(blob);
}
else {
var link = document.createElement('a');
link.download = filename;
link.href = "data:application/octet-stream;base64," + bytesBase64;
document.body.appendChild(link); // Needed for Firefox
link.click();
document.body.removeChild(link);
}
}
</script>
위의 JavaScript 함수는 Blazor에서 Base64 데이터를 받아 블롭으로 변환한 후 클라이언트 측 위치에 저장합니다.
또한, SaveAs 메소드와 ChromePdfRenderer 클래스를 사용하여 브라우저의 로컬 스토리지에 PDF 문서를 저장할 수 있습니다.
5. HTML 문자열에서 PDF 문서 만들기
다음 코드 스니펫은 HTML 문자열을 문서로 변환하는 방법을 보여줍니다.
@using IronPdf
@code {
/// <summary>
/// Demonstrates turning an HTML string into a PDF document.
/// </summary>
public void GeneratePdfFromHtmlString()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");
// You can save the generated PDF locally
pdf.SaveAs("HelloWorld.pdf");
}
}
@using IronPdf
@code {
/// <summary>
/// Demonstrates turning an HTML string into a PDF document.
/// </summary>
public void GeneratePdfFromHtmlString()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");
// You can save the generated PDF locally
pdf.SaveAs("HelloWorld.pdf");
}
}
[using] ReadOnly Property code() As IronPdf
''' <summary>
''' Demonstrates turning an HTML string into a PDF document.
''' </summary>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' public void GeneratePdfFromHtmlString()
' {
' var renderer = New ChromePdfRenderer();
' var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");
'
' ' You can save the generated PDF locally
' pdf.SaveAs("HelloWorld.pdf");
' }
End Property
앞의 예제에서는 RenderHtmlAsPdf 인스턴스 메소드를 사용하여 HTML 문자열을 PDF 콘텐츠로 변환합니다. 게다가, SaveAs 메소드를 이전에 설명한 절차에서 사용하여 이 콘텐츠를 클라이언트 컴퓨터에 저장할 수 있습니다.
이 튜토리얼에서 만든 Blazor PDF 생성 응용 프로그램
위 스크린샷은 이 튜토리얼에서 개발된 웹 응용 프로그램을 보여줍니다. 다운로드 버튼을 클릭하면 C# 코드가 PDF 콘텐츠를 생성하고 클라이언트 측 PDF 콘텐츠를 다운로드하기 위해 JavaScript 함수를 실행합니다.
결론
이 글에서는 IronPDF PDF 라이브러리를 사용하여 웹 페이지에서 PDF 파일을 생성하는 Blazor 웹 응용 프로그램을 개발하는 방법을 설명했습니다.
IronPDF는 오픈 소스가 아니지만, 무료 체험 키를 통해 워터마크 없이 프로덕션에서 사용할 수 있습니다.
자주 묻는 질문
Blazor 서버 측 애플리케이션에 PDF 라이브러리를 어떻게 통합할 수 있습니까?
IronPDF를 사용하여 Blazor 서버 측 애플리케이션에 PDF 라이브러리를 통합할 수 있습니다. 먼저, Visual Studio에서 Blazor 프로젝트를 생성한 다음, NuGet Package Manager 또는 명령줄을 통해 IronPDF 라이브러리를 설치합니다. IronPDF는 HTML 콘텐츠에서 원활하게 PDF 문서를 생성할 수 있습니다.
Blazor 애플리케이션에서 HTML로부터 PDF를 생성하는 데 사용할 수 있는 방법은 무엇입니까?
Blazor 애플리케이션에서는 IronPDF의 RenderUrlAsPdf 메서드를 사용하여 웹 페이지 URL을 PDF로 변환하거나 RenderHtmlAsPdf를 사용하여 HTML 문자열에서 직접 PDF를 생성할 수 있습니다. 이러한 방법은 여러 HTML 소스에서 PDF 문서를 생성하는 데 유연성을 제공합니다.
Blazor 애플리케이션에서 PDF 파일을 클라이언트의 파일 시스템에 저장하려면 어떻게 해야 하나요?
Blazor 애플리케이션에서 PDF 파일을 클라이언트의 파일 시스템에 저장하려면 JavaScript 기능을 사용하여 PDF 데이터를 블롭으로 변환하고 다운로드를 트리거할 수 있습니다. IronPDF는 필요한 도구를 제공하여 PDF를 생성할 수 있으며, 이는 클라이언트 측 JavaScript를 사용하여 처리할 수 있습니다.
Visual Studio에서 Blazor 서버 측 프로젝트를 만드는 과정은 어떻게 되나요?
Visual Studio에서 Blazor 서버 측 프로젝트를 만드는 과정은 파일 메뉴에서 '새 프로젝트'를 선택하고, 'Blazor Server App'을 선택하고, 프로젝트 이름과 위치를 지정하고, 적절한 .NET Framework 버전을 선택하는 것입니다. 이 설정을 통해 IronPDF와 같은 추가 라이브러리를 통합하여 기능을 향상시킬 수 있습니다.
이 라이브러리를 사용하여 HTML 내의 JavaScript 및 CSS 콘텐츠를 PDF로 변환할 수 있나요?
예, IronPDF를 사용하여 HTML 내의 JavaScript 및 CSS 콘텐츠를 PDF로 변환할 수 있습니다. HTML5, CSS, JavaScript 콘텐츠 렌더링을 지원하여 원본 웹 페이지의 레이아웃 및 스타일을 유지하는 포괄적인 PDF 문서를 생성할 수 있습니다.
Blazor에서 PDF 생성이 기대한 대로 작동하지 않을 때 문제 해결 단계는 무엇입니까?
Blazor에서 PDF 생성이 기대한 대로 작동하지 않는 경우, 프로젝트에 IronPDF 라이브러리가 올바르게 설치되었는지 확인하세요. HTML 콘텐츠가 올바르게 포맷되고 접근 가능한지도 확인하세요. 또한, 브라우저 콘솔에서 PDF 렌더링에 영향을 미칠 수 있는 JavaScript 오류가 없는지 확인하세요.
PDF 라이브러리를 사용할 때 PDF 문서에 머리글 및 바닥글을 포함시키려면 어떻게 해야 합니까?
IronPDF를 사용하여 PDF 문서에 머리글 및 바닥글을 포함시키려면 렌더링 옵션을 구성하여 사용자 정의 머리글 및 바닥글 콘텐츠를 추가할 수 있습니다. 이를 통해 페이지 번호나 제목과 같은 추가 정보를 PDF 출력에 포함할 수 있습니다.
Blazor 애플리케이션에서 인증이 필요한 페이지에 대해 PDF를 생성할 수 있습니까?
예, IronPDF는 Blazor 애플리케이션에서 인증이 필요한 페이지에 대해 PDF를 생성할 수 있습니다. 제한된 콘텐츠에 접근하기 전에 인증 쿠키나 토큰을 관리하여 라이브러리 기능을 사용하여 이를 PDF로 변환해야 합니다.
IronPDF는 .NET 10과 호환되며, .NET 10을 사용했을 때 얻을 수 있는 이점은 무엇입니까?
예, IronPDF는 .NET 10과 완전하게 호환되며, 커스텀 해결책이나 슘, 포기된 API 없이 바로 사용할 수 있습니다. .NET 10은 ASP.NET Core 및 Blazor에 대한 업데이트를 제공하며 성능 향상, 더 나은 종속성 관리, 향상된 프레임워크 참조 처리 및 JavaScript 분리 개선과 같은 기능이 있어, Razor 페이지, URL 또는 HTML 콘텐츠를 사용한 PDF 생성 워크플로우에 이점을 제공합니다.
IronPDF를 .NET 10과 함께 사용할 때 성능과 런타임 효율성은 어떻게 개선됩니까?
IronPDF를 .NET 10과 함께 사용하면 배열 인터페이스 메서드 비가상화, 구조에 대한 이스케이프 분석, 향상된 JIT 최적화 및 AVX-512 지침 지원과 같은 여러 런타임 개선 기능을 활용할 수 있습니다. 이러한 개선 사항은 메모리 할당을 줄이고 가비지 컬렉션 오버헤드를 낮추어 HTML 렌더링 및 PDF 조작과 같은 작업을 가속화합니다.


