인터넷의 힘으로 모든 것이 디지털화되고 종이 없는 시스템이 대중화되었습니다. 디지털 문서, 즉 PDF는 자동화된 생성 및 처리 기능을 제공하여 삶을 더 쉽게 만든 종이 없는 시스템의 빌딩 블록 중 하나입니다. 대부분의 기업은 보고서, 영수증, 송장 및 기타 비즈니스 문서를 동적으로 생성하기 위해 PDF 문서 자동화를 사용합니다. 따라서 이 기사에서는 C++ 기반 응용 프로그램에서 PDF 자동화 기능을 통합하고 C++를 사용하여 PDF 파일을 생성하는 방법을 보여줍니다.
C++ PDF 라이브러리
PDF 파일을 생성하기 위해 프로그래밍 방식으로 PDF 문서를 작업하는 네이티브 C++ 라이브러리인 Aspose.PDF for C++ API를 사용합니다. 다양한 PDF 요소를 지원하여 대화형 PDF 문서를 만들 수 있습니다. C++용 Aspose.PDF는 NuGet과 Aspose의 다운로드 섹션에서 사용할 수 있습니다.
C++에서 PDF 파일 만들기
먼저 간단한 PDF 파일을 만들고 첫 페이지에 단락 형식으로 일부 텍스트를 추가합니다. 따라야 할 단계는 다음과 같습니다.
- 문서 개체를 만듭니다.
- 문서의 PageCollection에 페이지를 추가합니다.
- 페이지의 단락을 가져옵니다.
- TextFragment 개체를 만들어 단락에 추가합니다.
- PDF 문서를 저장합니다.
다음 코드 샘플은 C++에서 PDF 문서를 만드는 방법을 보여줍니다.
// 문서 만들기
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// 페이지 수는 1부터 시작합니다.
auto page = pages->idx_get(1);
auto paragraps = page->get_Paragraphs();
// 텍스트 조각 만들기
auto text = MakeObject<TextFragment>(u"PDF API for C++");
auto ts = text->get_TextState();
// 텍스트 상태 설정
ts->set_FontSize(16);
ts->set_FontStyle(FontStyles::Italic);
// 단락에 추가
paragraps->Add(text);
// 단락에 텍스트 추가
paragraps->Add(MakeObject<TextFragment>(u"This example shows how to create a PDF with text using Aspose.PDF for C++."));
// PDF 파일 저장
doc->Save(u"Example1.pdf");
산출
C++에서 TextBuilder를 사용하여 PDF 파일 만들기
이 섹션에서는 TextBuilder 클래스를 사용하여 페이지에 다양한 텍스트 조각과 단락을 추가하는 방법을 보여줍니다. 또한 이 예에서는 페이지에서 텍스트 조각의 위치를 설정하는 방법을 배웁니다. 다음은 이 작업을 수행하는 단계입니다.
- 문서 개체를 만듭니다.
- 문서에 페이지를 추가합니다.
- TextBuilder 개체를 만듭니다.
- TextFragment를 만들고 해당 텍스트를 추가합니다.
- TextFragment의 위치를 설정합니다.
- TextBuilder를 사용하여 TextFragment를 추가합니다.
- PDF 문서를 저장합니다.
다음 코드 샘플은 C++에서 TextBuilder를 사용하여 PDF를 만드는 방법을 보여줍니다.
// 문서 객체 생성
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// 텍스트 빌더 생성
auto tb = MakeObject<TextBuilder>(pages->idx_get(1));
// TextFragment 생성
auto text = MakeObject<TextFragment>(u"Hello world!");
text->set_Position(MakeObject<Position>(100, 800));
// TextFragment 추가
tb->AppendText(text);
// 다른 TextFragment 만들기
text = MakeObject<TextFragment>(u"This example is created by Aspose.Pdf for C++.");
text->set_Position(MakeObject<Position>(150, 750));
tb->AppendText(text);
// 다른 TextFragment 만들기
text = MakeObject<TextFragment>(u"It demonstrates how to use TextBuilder to append text into PDF file.");
text->set_Position(MakeObject<Position>(200, 700));
tb->AppendText(text);
// 텍스트 단락 만들기
auto par = MakeObject<TextParagraph>();
par->set_Position(MakeObject<Position>(250,650));
par->AppendLine(u"New paragraph");
par->AppendLine(u"Line 2");
par->AppendLine(u"Line 3");
tb->AppendParagraph(par);
// PDF 문서 저장
doc->Save(u"Created PDF.pdf");
산출
C++에서 이미지로 PDF 파일 만들기
C++용 Aspose.PDF를 사용하여 PDF 문서에 이미지를 만들고 추가할 수도 있습니다. 다음은 이 작업을 수행하는 단계입니다.
- 문서 개체를 만듭니다.
- 문서에 페이지를 추가합니다.
- 추가할 이미지를 만듭니다.
- PDF 파일에 이미지를 추가합니다.
- PDF 파일을 저장합니다.
다음 코드 샘플은 C++에서 PDF 문서에 이미지를 만들고 추가하는 방법을 보여줍니다.
// 문서 객체 생성
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
auto page = pages->idx_get(1);
// 이미지 만들기
auto stream = MakeObject<IO::MemoryStream>();
SharedPtr<Bitmap> bitmap = MakeObject<Bitmap>(200, 200);
SharedPtr<Graphics> graphics = Graphics::FromImage(bitmap);
graphics->Clear(System::Drawing::Color::get_Yellow());
graphics->FillRectangle(Brushes::get_Blue(), System::Drawing::Rectangle(0, 0, 200, 100));
bitmap->Save(stream, Imaging::ImageFormat::get_Bmp());
// 직사각형 만들기
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rect = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);
// PDF에 이미지 추가
stream->Seek(0, System::IO::SeekOrigin::Begin);
page->AddImage(stream, rect);
// PDF 문서 저장
doc->Save(u"Created PDF.pdf");
산출
C++에서 첨부 파일이 있는 PDF 파일 만들기
PDF 형식을 사용하면 문서에 첨부 파일을 추가할 수도 있습니다. PDF 파일에 첨부 파일로 추가할 수 있는 다양한 파일 형식이 있습니다. 다음은 C++용 Aspose.PDF를 사용하여 PDF에 파일을 포함하는 단계입니다.
- SharedPtr에 첨부할 파일 로드 .
- Document 클래스의 객체를 생성합니다.
- 문서에 파일을 포함합니다.
- PDF 파일을 저장합니다.
다음 코드 샘플은 C++에서 PDF 문서에 첨부 파일을 추가하는 방법을 보여줍니다.
// 텍스트 파일 만들기
System::IO::File::WriteAllText(u"Attachment.txt", u"Some info");
SharedPtr<FileSpecification> fileSpecification = MakeObject<FileSpecification>(u"Attachment.txt", u"Sample text file");
// 문서의 첨부 파일 컬렉션에 첨부 파일 추가
auto doc = MakeObject<Document>();
doc->get_EmbeddedFiles()->Add(fileSpecification);
// PDF에 페이지 추가
doc->get_Pages()->Add();
// PDF 문서 저장
doc->Save(u"Created PDF.pdf");
산출
C++용 Aspose.PDF에 대해 자세히 알아보기
문서 및 소스 코드 예제에서 C++용 Aspose.PDF에 대해 자세히 알아볼 수 있습니다.