PDF를 HTML로 변환

PDF(Portable Document Format)는 플랫폼 간 데이터 및 정보 공유에 널리 사용되는 문서 형식 중 하나입니다. 고유한 기능 중 하나는 Adobe 사양에 따라 응용 프로그램을 사용하는 모든 플랫폼에서 볼 때 문서의 충실도가 그대로 유지된다는 것입니다. 또한 HTML(HyperText Markup Language)도 웹 페이지 개발을 위한 선도적인 파일 형식이며 대부분의 웹 브라우저에서 이 형식을 지원합니다. 그러나 PDF는 문서 형식을 잃지 않고 모든 장치에서 쉽게 볼 수 있으므로 널리 사용됩니다. 따라서 이 기사에서는 .NET API를 사용하여 HTML 파일을 PDF 형식으로 변환하는 방법에 대해 설명합니다.

HTML을 PDF로 변환하는 C# API

변환 작업을 수행하려면 먼저 시스템에 Aspose.PDF for .NET을 설치해야 합니다. API는 NuGet 라이브러리에서 사용할 수 있습니다. 패키지 관리자 콘솔에서 다음 명령을 실행하여 설치하십시오.

Install-Package Aspose.Pdf

설치가 완료되면 .NET용 Aspose.PDF가 솔루션 탐색기의 패키지 폴더 아래에 나타납니다.

C#에서 HTML을 PDF로 변환

다음은 C#을 사용하여 HTML을 PDF로 변환하는 방법에 대한 단계입니다.

  1. License 클래스의 인스턴스를 생성하여 PDF 파일 생성 프로세스 중 제한 사항을 제거합니다.
  2. HtmlLoadOptions(…) 클래스의 객체를 생성하고 입력 HTML 기본 url을 인수로 전달합니다. /apireference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions) 생성자.
  3. Document 클래스의 객체를 초기화하고 HtmlLoadOptions를 전달합니다. pdf/htmlloadoptions) 객체를 생성자에 대한 인수로 사용합니다.
  4. Document 객체의 Save(…) 메서드를 호출하여 PDF 형식으로 출력합니다.
// 라이센스를 시작하기 위한 객체 생성
Aspose.Pdf.License license = new Aspose.Pdf.License();

// 라이센스 파일의 경로 제공
license.SetLicense("/Downloads/Conholdate.Total.NET.lic");

// HtmlLoadOptions 클래스의 인스턴스 만들기
Aspose.Pdf.HtmlLoadOptions htmlLoadOptions = new Aspose.Pdf.HtmlLoadOptions("User/Documents/");

// Document 객체 생성 및 입력 HTML 파일 경로 제공
Aspose.Pdf.Document document = new Aspose.Pdf.Document("/Documents/input.html", htmlLoadOptions);

// 결과 HTML을 PDF 형식으로 저장
document.Save("/Documents/Converted.pdf");

변환 중 글꼴 포함

대부분의 HTML 페이지는 종종 글꼴(로컬 폴더의 글꼴, Google 글꼴 등)을 사용하며 페이지 레이아웃을 유지하기 위해 렌더링 과정에서 동일한 글꼴을 포함해야 합니다. 따라서 결과 문서에 글꼴 포함을 제어하려면 IsEmbedFont 속성을 사용해야 합니다.

// 변환 중 글꼴 포함
HtmlLoadOptions options = new HtmlLoadOptions {IsEmbedFonts = true};

Aspose.PDF의 측정 단위는 포인트입니다. 그리고 A3의 크기는 297 × 420밀리미터 또는 11.69 × 16.54인치입니다. 따라서 치수는 842 × 1190 포인트로 반올림됩니다. 다음 코드 스니펫에서는 결과 문서의 페이지 크기를 A3로 조정하고 페이지 방향을 가로로 조정합니다.

// 페이지 크기를 A3로 설정하고 페이지 방향을 가로로 설정
HtmlLoadOptions options = new HtmlLoadOptions(url)
{
  PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
};

웹 페이지를 PDF로 변환

HTML 파일 변환 외에 웹 페이지를 PDF 형식으로 직접 변환해야 하는 요구 사항이 있을 수도 있습니다. 따라서 이 요구 사항을 달성하기 위해 먼저 HttpClient 인스턴스를 사용하여 원격 웹 페이지 콘텐츠를 가져오고 Stream 개체를 만든 다음 Stream 인스턴스를 Document 개체에 전달합니다. Stream에 콘텐츠가 필요한 이유는 Document 인스턴스가 파일이나 Steam 개체만 허용하기 때문입니다.

다음 섹션에서는 C#을 사용하여 웹 페이지를 PDF로 변환하는 방법에 대한 단계를 설명합니다.

  1. HttpClient 개체를 사용하여 페이지의 내용을 읽습니다.
  2. HtmlLoadOptions 개체를 인스턴스화하고 기본 URL을 설정합니다.
  3. Document 개체를 초기화하고 스트림 개체와 HtmlLoadOptions 인스턴스를 인수로 전달합니다.
  4. Document 클래스에서 Save(String) 메서드를 호출하여 출력을 생성합니다.
public static void ConvertHTMLtoPDFAdvanced_WebPage()
{
    const string url = "https://en.wikipedia.org/wiki/Aspose_API";
    
    // 페이지 크기 A3 및 가로 방향 설정; 
    HtmlLoadOptions options = new HtmlLoadOptions(url)
    {
        // 페이지 크기 설정
        PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
    };
    
    // Document 객체의 인스턴스 생성
    Document pdfDocument= new Document(GetContentFromUrlAsStream(url), options);
    
    // 결과 저장
    pdfDocument.Save(_dataDir + "html_test.PDF");
}

private static Stream GetContentFromUrlAsStream(string url, ICredentials credentials = null)
{
    
    using (var handler = new HttpClientHandler { Credentials = credentials })
    using (var httpClient = new HttpClient(handler))
    {
        // 스트림 인스턴스에서 결과를 가져오고 반환합니다.
        return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
    }
}

단일 페이지에 완전한 HTML 렌더링

HTML에서 PDF로 변환하는 동안 결과 파일의 길이는 입력 HTML 문서의 내용 길이에 따릅니다. 따라서 입력 HTML이 여러 페이지로 구성된 경우 결과 파일도 여러 페이지에 걸쳐 있습니다. 그러나 출력을 단일 PDF 페이지로 제한할 수 있습니다. 이 요구 사항을 달성하기 위해 HtmlLoadOptions 클래스의 IsRenderToSinglePage 속성을 사용할 수 있습니다.

아래는 C#을 사용하여 단일 PDF 페이지에 완전한 HTML 콘텐츠를 렌더링하기 위한 코드 스니펫입니다.

// 전체 예제 및 데이터 파일을 보려면 https://github.com/aspose-pdf/Aspose.PDF-for-.NET으로 이동하십시오.
// HtmlLoadOptions 개체 초기화
HtmlLoadOptions options = new HtmlLoadOptions();

// 단일 페이지 속성으로 렌더링 설정
options.IsRenderToSinglePage = true;

// 문서 소스 HTML 콘텐츠 로드
Document pdfDocument= new Document("/Documents/HTMLToPDF.html", options);

// 결과 PDF 파일 저장
pdfDocument.Save("/Documents/MyRenderContentToSamePage.pdf");

무료 라이선스 받기

평가 제한 없이 API를 사용해 보려면 무료 임시 라이선스를 요청할 수 있습니다.

결론

이 기사에서는 .NET API를 사용하여 HTML 파일을 PDF 형식으로 변환하는 방법에 대해 배웠습니다. .NET용 Aspose.PDF에서 제공하는 다른 흥미로운 기능에 대해 더 알고 싶으시면 주요 기능 페이지를 방문하십시오. 전체 예제 세트는 GitHub 저장소에서 찾을 수 있습니다.

빠른 팁

또한 API에서 제공하는 기능을 빠르게 확인할 수 있는 무료 온라인 애플리케이션을 개발했습니다. 따라서 Aspose.PDF 변환 앱을 확인하여 HTML 파일을 PDF 형식으로 변환할 수 있습니다. 또한 다양한 다른 파일 형식을 사용하고 변환 요구 사항을 충족할 수도 있습니다.