사용 사례

사용 사례

이 가이드는 Aspose.PDF FOSS for C++의 실제 사용 사례를 문서 생성, PDF-이미지 변환, 텍스트 추출, 보안 배포 및 AcroForm 데이터 수집을 포함하여 보여줍니다. 이 라이브러리는 C++ 표준 라이브러리 외에는 아무것과도 링크되지 않으며 C++20 컴파일러가 필요합니다.

문서 생성

새 Document에 페이지를 추가하고 결과를 저장하여 PDF를 처음부터 만듭니다. 이 패턴은 인보이스 생성, 증명서 인쇄, 그리고 명세서 생산 파이프라인의 기반이 됩니다:

#include <aspose/pdf/document.hpp>

int main() {
    Aspose::Pdf::Document doc;
    doc.Pages().Add();
    doc.SetTitle("Monthly Report");
    doc.Save("report.pdf");
}

PDF-이미지 변환

썸네일, 인쇄용 출력, 혹은 시각적 회귀 기준선용으로 페이지를 래스터 이미지로 렌더링합니다. PngDevice, JpegDevice, BmpDevice, 및 TiffDevice은 각각 주어진 해상도에서 한 번에 한 페이지씩 처리합니다:

#include <aspose/pdf/document.hpp>
#include <aspose/pdf/png_device.hpp>
#include <aspose/pdf/resolution.hpp>
#include <fstream>

int main() {
    Aspose::Pdf::Document doc("input.pdf");
    Aspose::Pdf::Devices::PngDevice png(Aspose::Pdf::Devices::Resolution(150));
    std::ofstream out("page1.png", std::ios::binary);
    png.Process(doc.Pages()[1], out);
}

텍스트 추출 및 인덱싱

검색 색인, 데이터 마이닝 파이프라인, 또는 테스트 스위트의 자동 콘텐츠 검증을 위해 TextAbsorber를 사용하여 문서의 전체 텍스트를 추출합니다:

#include <aspose/pdf/document.hpp>
#include <aspose/pdf/text_absorber.hpp>
#include <iostream>

int main() {
    Aspose::Pdf::Document doc("input.pdf");
    Aspose::Pdf::Text::TextAbsorber absorber;
    absorber.Visit(doc);
    std::cout << absorber.Text() << "\n";
}

보안 문서 배포

배포 전에 사용자 비밀번호와 소유자 비밀번호를 별도로 설정하여 문서를 암호화합니다. 사용자 비밀번호는 파일을 열 때 필요하고, 소유자 비밀번호는 인쇄 및 콘텐츠 추출과 같은 권한을 제어합니다:

#include <aspose/pdf/document.hpp>

int main() {
    Aspose::Pdf::Document doc("report.pdf");
    doc.Encrypt("user-password", "owner-password",
                Aspose::Pdf::Permissions(),
                Aspose::Pdf::CryptoAlgorithm::AESx256);
    doc.Save("report-secured.pdf");
}

AcroForm 데이터 수집

채워진 PDF 양식에서 제출된 값을 Form.Fields()를 반복하며 읽어 각 필드의 이름과 현재 값을 출력합니다 — 별도의 양식 제출 서버 없이 작성된 신청서를 처리하는 데 유용합니다:

#include <aspose/pdf/document.hpp>
#include <aspose/pdf/forms/form.hpp>
#include <iostream>

int main() {
    Aspose::Pdf::Document doc("submitted-form.pdf");
    auto& form = doc.Form();
    for (auto* field : form.Fields()) {
        std::cout << field->PartialName() << " = " << field->Value() << "\n";
    }
}

참조

 한국어