คำถามที่พบบ่อย

คำถามที่พบบ่อย

โมเดลการให้สิทธิ์ใช้งานสำหรับ Aspose.PDF FOSS for C++ คืออะไร?

Aspose.PDF FOSS for C++ มีใบอนุญาตแบบ MIT. สามารถใช้ได้ฟรีในผลิตภัณฑ์เชิงพาณิชย์และไม่เชิงพาณิชย์ โดยไม่ต้องมีคีย์เปิดใช้งาน, ไม่จำกัดการเรียก API, หรือข้อตกลงเชิงพาณิชย์ใด ๆ.

ฉันจะเพิ่ม Aspose.PDF FOSS for C++ เข้าไปในโครงการ CMake อย่างไร?

ทำการ vendor หรือ clone รีโพซิทอรีเข้าสู่โครงสร้างโครงการของคุณ, เพิ่มเป็นไดเรกทอรีย่อย, และลิงก์เป้าหมายไลบรารีสแตติก:

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 ที่รวมไว้.

ไลบรารีนี้มีการพึ่งพา runtime ใดหรือไม่?

เลขที่ Aspose.PDF FOSS สำหรับ C++ เชื่อมต่อเพียงไลบรารีมาตรฐานของ C++ — ไม่ต้องการการพึ่งพา PDF, รูปภาพ หรือการบีบอัดจากบุคคลที่สามในระหว่างการทำงาน.

ฟอร์แมตใดบ้างที่ Aspose.PDF FOSS สำหรับ C++ สามารถอ่านและส่งออกได้?

มันเปิดและบันทึกเอกสาร PDF แบบเนทีฟ หน้าที่เรนเดอร์สามารถส่งออกเป็น Bmp, Jpeg, และ Tiff ผ่าน BmpDevice, JpegDevice และ TiffDevice, และเป็นข้อความธรรมดาผ่าน 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 อย่างไร?

เรียก Document.Encrypt() พร้อมรหัสผ่านผู้ใช้, รหัสผ่านเจ้าของ, ค่า Permissions, และ CryptoAlgorithm:

#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 ทั้งหมดสามารถใช้ได้ผ่าน enum 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 — ประเภทค่าที่ใช้สำหรับรายการเมทาดาทา XMP ที่ส่งกลับจาก Document.Metadata() — เปิดเผยตัวช่วยตรวจสอบประเภท IsDateTime(), IsField(), IsNamedValue(), IsRaw(), IsNamedValues() และ IsStructure() ซึ่งในปัจจุบันเป็น stub และจะคืนค่าเสมอเป็น false. โค้ดที่แยกทำงานตามการตรวจสอบเหล่านี้ไม่สามารถแยกแยะชนิดค่าของ XMP ได้. ใช้การตรวจสอบที่ได้ทำการ実装แล้วแทน — IsString(), IsInteger(), IsDouble(), IsArray() — หรือเรียกตัวเข้าถึงที่ตรงกัน (ToStringValue(), ToInteger(), ToDouble(), ToArray()) โดยตรงเมื่อชนิดของค่ารู้แล้วจากบริบท. จำนวนเล็กน้อยของประเภทภายในระดับต่ำก็มีคอนสตรัคเตอร์ stub ที่ไม่ได้ถูกใช้ในโค้ดการประมวลผลเอกสารทั่วไป.

โค้ดต้นฉบับและตัวติดตามปัญหาอยู่ที่ไหน?

โค้ดต้นฉบับและตัวติดตามปัญหาพร้อมให้บริการที่ https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp.

ดูเพิ่มเติม

 ภาษาไทย