자주 묻는 질문

자주 묻는 질문

Aspose.PDF FOSS for C++의 라이선스 모델은 무엇입니까?

Aspose.PDF FOSS for C++는 MIT 라이선스를 가지고 있습니다. 상업용 및 비상업용 제품 모두에 무료로 사용할 수 있으며, 활성화 키, API 호출 제한, 혹은 상업 계약이 필요하지 않습니다.

CMake 프로젝트에 Aspose.PDF FOSS for C++를 어떻게 추가합니까?

리포지토리를 벤더링하거나 복제하여 프로젝트 트리에 넣고, 서브디렉터리로 추가한 뒤 정적 라이브러리 타깃을 링크합니다:

add_subdirectory(aspose.pdf-foss-for-cpp)
target_link_libraries(your_app PRIVATE aspose_pdf_foss)

필요한 컴파일러와 CMake 버전은 무엇입니까?

C++20 컴파일러 — clang 16 이상, gcc 13 이상, 또는 MSVC 2022 17.5 이상 — 그리고 CMake 3.22 이상이 필요합니다. 또한 빌드 시에만 Python 3이 필요하며, 이는 번들된 Standard-14 폰트 윤곽선을 생성하기 위함입니다.

이 라이브러리는 런타임 종속성이 있습니까?

No. Aspose.PDF FOSS for C++는 C++ 표준 라이브러리 외에는 아무것과도 링크되지 않으며 — 런타임에 서드파티 PDF, 이미지, 압축 의존성이 필요하지 않습니다.

어떤 형식들을 Aspose.PDF FOSS for C++가 읽고 내보낼 수 있나요?

이는 네이티브 PDF 문서를 열고 저장합니다. 렌더링된 페이지는 BmpDevice, JpegDevice, TiffDevice를 통해 Bmp, Jpeg, Tiff 형식으로 내보낼 수 있으며, TextDevice를 통해 일반 텍스트로 내보낼 수 있습니다. SVG 콘텐츠는 SvgLoadOptions를 통해 문서에 가져올 수 있습니다.

기존 PDF를 열고 페이지 수를 확인하려면 어떻게 해야 하나요?

#include <aspose/pdf/document.hpp>

Aspose::Pdf::Document doc("input.pdf");
std::size_t pages = doc.Pages().Count();

PDF 문서에서 텍스트를 추출하려면 어떻게 해야 하나요?

TextAbsorber를 사용하고, 문서를 방문한 뒤, 수집된 텍스트를 읽으세요:

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

Aspose::Pdf::Document doc("input.pdf");
Aspose::Pdf::Text::TextAbsorber absorber;
absorber.Visit(doc);
std::string text = absorber.Text();

PDF 페이지를 이미지로 렌더링하려면 어떻게 해야 하나요?

PngDevice와 같은 디바이스 클래스를 대상 Resolution과 함께 사용하고, 단일 페이지를 출력 스트림으로 처리하십시오:

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

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);

PDF 문서를 어떻게 암호화하나요?

사용자 비밀번호, 소유자 비밀번호, Permissions 값, 그리고 CryptoAlgorithm를 사용하여 Document.Encrypt()를 호출합니다:

#include <aspose/pdf/document.hpp>

Aspose::Pdf::Document doc("input.pdf");
doc.Encrypt("user-password", "owner-password",
            Aspose::Pdf::Permissions(), Aspose::Pdf::CryptoAlgorithm::AESx256);
doc.Save("encrypted.pdf");

RC4x40, RC4x128, AESx128, 그리고 AESx256은 모두 CryptoAlgorithm 열거형을 통해 사용할 수 있습니다. Document.Decrypt()은 이미 열린 문서에서 암호화를 제거합니다.

AcroForm 필드 값을 어떻게 읽거나 채우나요?

문서에서 Form.Fields()를 순회하고 각 필드의 값을 부분 이름으로 읽거나 설정합니다:

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

Aspose::Pdf::Document doc("application_form.pdf");
auto& form = doc.Form();
for (auto* field : form.Fields()) {
    if (field->PartialName() == "applicant_name") {
        field->Value("Jane Doe");
    }
}
doc.Save("application_filled.pdf");

현재 릴리스에서 알려진 제한 사항이 있나요?

예. XmpValue — Document.Metadata()에서 반환되는 XMP 메타데이터 항목에 사용되는 값 타입 — 은 현재 스텁이며 항상 false을 반환하는 타입 검사 도우미 IsDateTime(), IsField(), IsNamedValue(), IsRaw(), IsNamedValues(), IsStructure()를 노출합니다. 이러한 검사에 따라 분기하는 코드는 XMP 값 종류를 구분할 수 없습니다. 대신 구현된 검사 — IsString(), IsInteger(), IsDouble(), IsArray() — 를 사용하거나, 값의 종류가 컨텍스트에서 이미 알려진 경우 해당 접근자 (ToStringValue(), ToInteger(), ToDouble(), ToArray())를 직접 호출하십시오. 소수의 저수준 내부 타입에도 스텁 생성자가 포함되어 있어 일반적인 문서 처리 코드에서는 사용되지 않습니다.

소스 코드와 이슈 트래커는 어디에 있나요?

소스 코드와 이슈 트래커는 https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp에서 확인할 수 있습니다.

참조

 한국어