C++에서 HTML을 PDF로 변환하는 방법
HTML 파일이나 콘텐츠를 PDF 페이지로 변환하는 기능은 많은 애플리케이션에서 유용한 기능입니다. C++에서는 HTML을 PDF 형식으로 변환하기 위해 처음부터 애플리케이션을 구축하는 것이 꽤 귀찮을 수 있습니다. 이 기사에서는 C++에서 wkhtmltopdf 라이브러리를 사용하여 HTML을 PDF로 변환하는 방법을 탐구할 것입니다.
WKHTMLTOPDF 라이브러리
wkhtmltopdf는 HTML 일반 텍스트 페이지를 고품질 PDF 문서로 매끄럽게 변환하는 오픈 소스 명령줄 도구입니다. C++ 프로그램에서 이 기능을 활용함으로써 HTML 문자열 콘텐츠를 쉽게 PDF 형식으로 변환할 수 있습니다. wkhtmltopdf 라이브러리를 사용하여 C++에서 HTML 페이지를 PDF로 변환하는 단계별 프로세스를 살펴봅시다.
필수 조건
C++에서 HTML을 PDF 파일로 변환기를 만들려면 다음 전제 조건이 충족되어야 합니다:
- 시스템에 설치된 GCC 또는 Clang과 같은 C++ 컴파일러.
- wkhtmltopdf 라이브러리 설치됨. 최신 버전을 공식 wkhtmltopdf 웹사이트에서 다운로드하여 운영 체제의 지시에 따라 설치할 수 있습니다.
- C++ 프로그래밍에 대한 기본 지식.
Code::Blocks에서 C++ HtmltoPdf 프로젝트 생성
Code::Blocks에서 C++ PDF 변환 프로젝트를 만들려면 다음 단계를 따르십시오:
- Code::Blocks IDE를 엽니다.
- "파일" 메뉴로 이동하여 "새로 만들기" 다음에 "프로젝트"를 선택하여 새 프로젝트 마법사를 엽니다.
- 새 프로젝트 마법사에서 "콘솔 애플리케이션"을 선택합니다.
- C++ 언어를 선택합니다.
- 프로젝트 제목과 저장할 위치를 설정합니다. "다음"을 클릭하여 진행합니다.
- 디버그나 릴리스같은 적절한 C++ 컴파일러와 빌드 대상을 선택합니다. "완료"를 클릭하여 프로젝트를 생성하십시오.
검색 디렉토리 설정
Code::Blocks가 필요한 헤더 파일을 찾을 수 있도록 검색 디렉토리를 설정해야 합니다:
- 메뉴 모음에서 "프로젝트" 메뉴를 클릭하고 "빌드 옵션"을 선택합니다. 반드시 "디버그"를 선택하세요.
- "빌드 옵션" 대화 상자에서 "검색 디렉토리" 탭을 선택합니다.
- "컴파일러" 탭에서 "추가" 버튼을 클릭합니다.
- wkhtmltox 헤더 파일이 있는 디렉토리로 이동하여 선택합니다 (예: C:\Program Files\wkhtmltopdf\include).
- 마지막으로 대화 상자를 닫기 위해 "확인"을 클릭합니다.

라이브러리 연결
wkhtmltox 라이브러리에 링크하려면 다음 단계를 따르십시오:
- 다시 메뉴 모음의 "프로젝트" 메뉴를 클릭하고 "빌드 옵션"을 선택합니다. 반드시 "디버그"를 선택하세요.
- "빌드 옵션" 대화 상자에서 "링커 설정" 탭을 선택합니다.
- '라이브러리 연결' 탭에서 '추가' 버튼을 클릭하세요.
- wkhtmltox 라이브러리 파일이 있는 디렉터리(e.g., C:\Program Files\wkhtmltopdf\lib)로 이동하여 적절한 라이브러리 파일을 선택하세요.
- 라이브러리를 프로젝트에 추가하려면 '열기'를 클릭하세요.
- 마지막으로 대화 상자를 닫기 위해 "확인"을 클릭합니다.

C++에서 HTML을 PDF로 쉽게 변환하는 단계
단계 1: HTML 파일을 변환하기 위한 라이브러리 포함
시작하려면, C++ 프로그램에서 wkhtmltopdf 라이브러리의 기능을 활용하기 위해 필요한 헤더 파일을 포함하세요. 다음 예제와 같이 main.cpp 소스 코드 파일의 시작 부분에 다음 헤더 파일을 포함하십시오:
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
2단계: 변환기 초기화
HTML을 PDF로 변환하기 위해, 우리는 wkhtmltopdf 변환기를 초기화해야 합니다. 코드는 다음과 같습니다.
// Initialize the wkhtmltopdf library
wkhtmltopdf_init(false);
// Create global settings object
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
// Create object settings object
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
// Create the PDF converter with global settings
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
// Initialize the wkhtmltopdf library
wkhtmltopdf_init(false);
// Create global settings object
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
// Create object settings object
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
// Create the PDF converter with global settings
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
3단계: HTML 콘텐츠 설정
이제 PDF로 변환할 필요가 있는 HTML 콘텐츠를 제공합니다. HTML 파일을 로드하거나 문자열을 직접 제공할 수 있습니다.
std::string htmlString = "<html><body><h1>Hello, World!</h1></body></html>";
// Add the HTML content to the converter
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
std::string htmlString = "<html><body><h1>Hello, World!</h1></body></html>";
// Add the HTML content to the converter
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
4단계: HTML을 PDF로 변환
변환기와 HTML 콘텐츠가 준비되면, 우리는 HTML을 PDF 파일로 변환할 수 있습니다. 다음 코드 조각을 사용하세요:
// Perform the actual conversion
if (!wkhtmltopdf_convert(converter)) {
std::cerr << "Conversion failed!" << std::endl;
}
// Perform the actual conversion
if (!wkhtmltopdf_convert(converter)) {
std::cerr << "Conversion failed!" << std::endl;
}
5단계: 메모리 버퍼로 출력 얻기
wkhtmltopdf_get_output 함수를 사용하여 기존 PDF 데이터를 메모리 버퍼 스트림으로 가져올 수 있습니다. 또한 PDF의 길이를 반환합니다. 다음의 예제가 이 작업을 수행할 것입니다:
// Retrieve the PDF data in memory buffer
const unsigned char* pdfData;
int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
// Retrieve the PDF data in memory buffer
const unsigned char* pdfData;
int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
6단계: PDF 파일 저장
변환이 완료되면, 생성된 PDF 파일을 디스크에 저장해야 합니다. PDF를 저장할 파일 경로를 지정하세요. 그런 다음 출력 파일 스트림을 사용하여, 파일을 이진 모드로 열고 pdfData를 작성하세요. 마지막으로, 파일을 닫습니다:
const char* outputPath = "file.pdf";
std::ofstream outputFile(outputPath, std::ios::binary);
// Write the PDF data to the file
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
const char* outputPath = "file.pdf";
std::ofstream outputFile(outputPath, std::ios::binary);
// Write the PDF data to the file
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
7단계: 정리
HTML을 PDF로 변환한 후, wkhtmltopdf가 할당한 리소스를 정리하는 것이 중요합니다:
// Clean up the converter and settings
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
// Deinitialize the wkhtmltopdf library
wkhtmltopdf_deinit();
std::cout << "PDF saved successfully." << std::endl;
// Clean up the converter and settings
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
// Deinitialize the wkhtmltopdf library
wkhtmltopdf_deinit();
std::cout << "PDF saved successfully." << std::endl;
8단계: 코드를 실행하여 PDF 파일 생성
이제 프로젝트를 빌드하고 F9를 사용하여 코드를 실행하세요. 출력이 생성되어 프로젝트 폴더에 저장됩니다. 결과 PDF는 다음과 같습니다:

C#에서 HTML 파일을 PDF 파일로 변환하기
IronPDF
IronPDF HTML-to-PDF Conversion Library는 .NET 및 .NET Core C# 라이브러리로, 개발자들이 HTML 콘텐츠에서 손쉽게 PDF 문서를 생성할 수 있도록 합니다. 이 라이브러리는 HTML 웹 페이지를 PDF로 변환하는 과정을 단순화하는 직관적이고 간단한 API를 제공하여 다양한 애플리케이션 및 사용 사례에서 인기 있는 선택입니다.
IronPDF의 주요 장점 중 하나는 그 다재다능함입니다. 이 라이브러리는 단순한 HTML 문서뿐만 아니라 CSS 스타일링, JavaScript 상호작용, 심지어 동적 콘텐츠를 포함한 복잡한 웹 페이지의 변환도 지원합니다. 게다가, 변환 메서드에 빠르게 액세스하여 다양한 PDF 변환기를 개발할 수 있습니다.
여기 C#에서 IronPDF를 사용하여 HTML 문자열을 PDF로 변환하는 코드 예제가 있습니다:
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create PDF content from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create PDF content from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer = New ChromePdfRenderer()
' Create PDF content from an HTML string using C#
Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
' Export to a file or Stream
pdf.SaveAs("output.pdf")
PDF 출력:

다양한 HTML 파일, 웹 페이지 URL 및 이미지를 PDF로 변환하는 방법에 대한 자세한 내용은 이 HTML to PDF 코드 예제를 방문하세요.
IronPDF를 사용하여 HTML 콘텐츠에서 PDF 파일을 생성하는 것은 .NET Framework 언어에서는 쉬운 작업이 됩니다. 직관적인 API 및 광범위한 기능 세트 덕분에, C# 프로젝트에서 HTML을 PDF로 변환해야 하는 개발자들에게 유용한 도구입니다. 보고서, 청구서, 또는 정밀한 HTML-to-PDF 변환이 필요한 기타 문서를 생성하는 경우에도 IronPDF는 신뢰성과 효율성을 갖춘 솔루션입니다.
IronPDF는 개발 목적으로 무료로 사용할 수 있지만, 상업적 사용을 위해서는 라이선스를 받아야 합니다. 상업적 사용을 위한 IronPDF의 모든 기능의 무료 체험판을 제공하여 완전한 기능을 테스트할 수 있습니다. 소프트웨어는 IronPDF 다운로드에서 받을 수 있습니다.

