Vanliga frågor
Vad är licensmodellen för Aspose.PDF FOSS för C++?
Aspose.PDF FOSS för C++ är MIT-licensierad. Den är gratis att använda i kommersiella och icke-kommersiella produkter, utan aktiveringsnyckel, API anropsgränser eller krav på kommersiellt avtal.
Hur lägger jag till Aspose.PDF FOSS för C++ i ett CMake-projekt?
Lägg till som leverantör eller klona repot i ditt projekts filstruktur, lägg till det som en underkatalog och länka mot det statiska biblioteksmålet:
add_subdirectory(aspose.pdf-foss-for-cpp)
target_link_libraries(your_app PRIVATE aspose_pdf_foss)Vilken kompilator och vilka CMake-versioner krävs?
En C++20-kompilator — clang 16+, gcc 13+ eller MSVC 2022 17.5+ — samt CMake 3.22 eller senare. Bygget kräver också Python 3 endast vid byggtid, för att generera de medföljande Standard-14-teckensnittsconturerna.
Har biblioteket några körningsberoenden?
Nr. Aspose.PDF FOSS för C++ länkar endast mot C++-standardbiblioteket — ingen tredjeparts-PDF-, bild- eller komprimeringsberoende krävs vid körning.
Vilka format kan Aspose.PDF FOSS för C++ läsa och exportera?
Den öppnar och sparar inhemska PDF-dokument. Renderade sidor kan exporteras till Bmp, Jpeg och Tiff via BmpDevice, JpegDevice och TiffDevice, och till vanlig text via TextDevice. SVG-innehåll kan importeras i ett dokument via SvgLoadOptions.
Hur öppnar jag en befintlig PDF och kontrollerar antalet sidor?
#include <aspose/pdf/document.hpp>
Aspose::Pdf::Document doc("input.pdf");
std::size_t pages = doc.Pages().Count();Hur extraherar jag text från ett PDF-dokument?
Använd TextAbsorber, besök dokumentet, läs sedan den insamlade texten:
#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();Hur renderar jag en PDF-sida till en bild?
Använd en enhetsklass som PngDevice med ett mål Resolution, och bearbeta sedan en enskild sida till en utdataström:
#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);Hur krypterar jag ett PDF-dokument?
Anropa Document.Encrypt() med ett användarlösenord, ett ägarlösenord, ett Permissions-värde och ett 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 och AESx256 är alla tillgängliga via enumen CryptoAlgorithm. Document.Decrypt() tar bort kryptering från ett redan öppnat dokument.
Hur läser eller fyller jag AcroForm-fältvärden?
Iterera Form.Fields() från dokumentet och läs eller sätt varje fälts värde enligt dess partiella namn:
#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");Finns det några kända begränsningar i den aktuella versionen?
Ja. XmpValue — värdetypen som används för XMP-metadataposter som returneras från Document.Metadata() — exponerar typkontrollhjälpare IsDateTime(), IsField(), IsNamedValue(), IsRaw(), IsNamedValues() och IsStructure() som för närvarande är stubbar och alltid returnerar false. Kod som grenar baserat på dessa kontroller kan inte skilja på dessa XMP-värdesorter. Använd de implementerade kontrollerna istället — IsString(), IsInteger(), IsDouble(), IsArray() — eller anropa den matchande åtkomstmetoden (ToStringValue(), ToInteger(), ToDouble(), ToArray()) direkt när värdets sort redan är känt från sammanhanget. Ett litet antal lågnivå-interna typer innehåller också stub-konstruktörer som inte används av vanlig dokumentbehandlingskod.
Var finns källkoden och ärendehanteraren?
Källkoden och ärendehanteraren är tillgängliga på https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp.