Häufig gestellte Fragen

Häufig gestellte Fragen

Wie ist das Lizenzmodell für Aspose.PDF FOSS für C++?

Aspose.PDF FOSS für C++ ist unter der MIT-Lizenz. Es ist kostenlos in kommerziellen und nicht-kommerziellen Produkten nutzbar, ohne Aktivierungsschlüssel, API Anruflimits oder erforderliche kommerzielle Vereinbarung.

Wie füge ich Aspose.PDF FOSS für C++ zu einem CMake-Projekt hinzu?

Beziehen Sie das Repository (Vendor) oder klonen Sie es in Ihren Projektbaum, fügen Sie es als Unterverzeichnis hinzu und verlinken Sie das statische Bibliotheksziel:

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

Welche Compiler- und CMake-Versionen werden benötigt?

Ein C++20-Compiler — clang 16+, gcc 13+ oder MSVC 2022 17.5+ — und CMake 3.22 oder neuer. Der Build erfordert außerdem Python 3 ausschließlich zur Build-Zeit, um die mitgelieferten Standard-14-Schriftumrisse zu erzeugen.

Hat die Bibliothek Laufzeitabhängigkeiten?

Nr. Aspose.PDF FOSS für C++ bindet nur an die C++-Standardbibliothek — zur Laufzeit ist keine Drittanbieter-PDF-, Bild- oder Kompressionsabhängigkeit erforderlich.

Welche Formate kann Aspose.PDF FOSS für C++ lesen und exportieren?

Es öffnet und speichert native PDF-Dokumente. Gerenderte Seiten können über BmpDevice, JpegDevice und TiffDevice in Bmp, Jpeg und Tiff exportiert werden und über TextDevice in Klartext. SVG-Inhalte können über SvgLoadOptions in ein Dokument importiert werden.

Wie öffne ich ein vorhandenes PDF und prüfe die Seitenzahl?

#include <aspose/pdf/document.hpp>

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

Wie extrahiere ich Text aus einem PDF-Dokument?

Verwenden Sie TextAbsorber, besuchen Sie das Dokument und lesen Sie anschließend den gesammelten Text:

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

Wie render ich eine PDF-Seite zu einem Bild?

Verwenden Sie eine Geräteklasse wie PngDevice mit einem Ziel-Resolution und verarbeiten Sie anschließend eine einzelne Seite in einen Ausgabestream:

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

Wie verschlüssele ich ein PDF-Dokument?

Rufen Sie Document.Encrypt() mit einem Benutzerpasswort, einem Eigentümerpasswort, einem Permissions-Wert und einem CryptoAlgorithm auf:

#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 und AESx256 sind alle über das CryptoAlgorithm-Enum verfügbar. Document.Decrypt() entfernt die Verschlüsselung aus einem bereits geöffneten Dokument.

Wie lese oder fülle ich AcroForm-Feldwerte?

Iterieren Sie Form.Fields() aus dem Dokument und lesen oder setzen Sie den Wert jedes Feldes anhand seines Teilnamens:

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

Gibt es bekannte Einschränkungen in der aktuellen Version?

Ja. XmpValue — der Werttyp, der für XMP-Metadaten-Einträge verwendet wird, die von Document.Metadata() zurückgegeben werden — stellt Typ-Prüf-Hilfen IsDateTime(), IsField(), IsNamedValue(), IsRaw(), IsNamedValues() und IsStructure() bereit, die derzeit Stubs sind und immer false zurückgeben. Code, der auf diesen Prüfungen verzweigt, kann diese XMP-Wertarten nicht unterscheiden. Verwenden Sie stattdessen die implementierten Prüfungen — IsString(), IsInteger(), IsDouble(), IsArray() — oder rufen Sie den passenden Accessor (ToStringValue(), ToInteger(), ToDouble(), ToArray()) direkt auf, wenn die Art des Wertes bereits aus dem Kontext bekannt ist. Eine kleine Anzahl von Low-Level-Internetypen enthält ebenfalls Stub-Konstruktoren, die im üblichen Dokument-Verarbeitungs-Code nicht verwendet werden.

Wo befinden sich Quellcode und Issue-Tracker?

Der Quellcode und der Issue Tracker sind unter https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp verfügbar.

Siehe auch

 Deutsch