ASP.NET MVC에서 PDF 생성 방법: IronPDF vs iTextSharp?
문서 워크플로우에서 두 가지 레이아웃 문제가 끊임없이 나타납니다. 재무 테이블, 대시보드, 프로젝트 타임라인과 같은 넓은 콘텐츠는 세로 방향으로 강제될 때 잘리거나 줄바꿈됩니다. 그리고 스캔되거나 가져온 페이지는 종종 옆으로 또는 거꾸로 도착합니다. IronPDF는 C#에서 둘 다 해결하여 PDF가 렌더링되는 동안 방향을 설정하고 이미 존재하는 문서의 페이지를 회전합니다.
비즈니스 문제
보고 시스템은 세로 페이지를 넘치는 스프레드시트 스타일의 테이블을 출력합니다. 문서 수신 프로세스는 잘못된 방향으로 회전된 스캔을 수신합니다. 여러 출처로부터 조립된 최종 보고서는 불균일한 각도의 페이지를 가지고 있습니다. 각각의 경우 사용자는 비스듬히 보거나, 옆으로 스크롤하거나, 뷰어에서 직접 페이지를 회전합니다. 목표는 올바르고 일관된 레이아웃을 자동으로 생성하는 것입니다.
렌더링 시 방향 설정
다른 형식에서 PDF를 생성할 때 PaperOrientation 속성을 통해 방향을 선택합니다. 가로 방향은 넓은 콘텐츠에 필요한 가로 공간을 제공합니다.
using IronPdf;
using IronPdf.Rendering;
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
PdfDocument pdf = renderer.RenderHtmlAsPdf(reportHtml);
pdf.SaveAs("report-landscape.pdf");
기존 문서에서 페이지 회전
회전은 이미 생성된 문서에서 작동하므로 스캔을 수정하거나 병합된 파일을 정규화하는 도구가 됩니다. IronPDF는 PdfPageRotation 열거형을 통해 네 가지 고정 각도를 제공하며, 한 페이지, 선택된 페이지 집합 또는 모든 페이지에 대한 방법을 제공합니다.
PdfDocument pdf = PdfDocument.FromFile("scanned.pdf");
// Correct every page in a uniformly misrotated batch
pdf.SetAllPageRotations(PdfPageRotation.Clockwise90);
// Fix a single page
pdf.SetPageRotation(1, PdfPageRotation.Clockwise180);
// Fix a selected set of pages
pdf.SetPageRotations(new List<int> { 0, 3 }, PdfPageRotation.Clockwise270);
pdf.SaveAs("corrected.pdf");
GetPageRotation은 여러 출처에서 병합된 문서 정규화에 도움이 되는 모든 페이지의 현재 각도를 읽습니다.
PdfPageRotation rotation = pdf.GetPageRotation(1);
계획할 고려 사항
- 렌더링 시간 대 기존 파일:
PaperOrientation은 다른 형식에서 PDF를 생성하는 동안에만 적용됩니다. 회전은 이미 존재하는 PDF에 적용됩니다. 둘을 분리함으로써 가장 흔한 실수를 피할 수 있습니다. - 전체 페이지 회전: 회전은 개별 텍스트 요소를 회전하는 것과는 다르게 텍스트, 이미지 및 주석을 함께 이동합니다.
- 제로 베이스 인덱싱:
SetPageRotation(1, ...)은 두 번째 페이지를 대상으로 합니다. - 원본 보존: 회전된 출력을 새 파일명으로 저장하고, 더 나은 성능을 위해 여러 페이지에
SetPageRotations을 사용하세요.
결과
렌더링 시 방향을 설정하고 이후 회전을 적용하여 팀은 콘텐츠에 맞는 보고서를 생성하고 올바르게 정렬된 문서를 저장하는 수집 파이프라인을 생성하여 수동 정리가 필요하지 않습니다. 전체 메서드의 세부사항은 페이지 방향 및 회전 가이드에 있습니다.

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.