Foire aux questions

Foire aux questions

Quel est le modèle de licence pour Aspose.PDF FOSS for C++?

Aspose.PDF FOSS for C++ est sous licence MIT. Il est gratuit à utiliser dans les produits commerciaux et non commerciaux, sans clé d’activation, limites d’appels API, ou accord commercial requis.

Comment ajouter Aspose.PDF FOSS for C++ à un projet CMake?

Fournissez ou clonez le dépôt dans l’arborescence de votre projet, ajoutez-le comme sous-répertoire, et liez la cible de bibliothèque statique:

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

Quelles versions du compilateur et de CMake sont requises?

Un compilateur C++20 — clang16+, gcc13+ ou MSVC202217.5+ — et CMake3.22 ou ultérieur. La compilation nécessite également Python3 uniquement au moment de la construction, afin de générer les contours de police Standard-14 fournis.

La bibliothèque possède-t-elle des dépendances d’exécution?

N° Aspose.PDF FOSS pour C++ se lie uniquement à la bibliothèque standard C++ — aucune dépendance tierce en PDF, image ou compression n’est requise à l’exécution.

Quels formats Aspose.PDF FOSS pour C++ peut lire et exporter?

Il ouvre et enregistre des documents PDF natifs. Les pages rendues peuvent être exportées vers Bmp, Jpeg et Tiff via BmpDevice, JpegDevice et TiffDevice, et vers du texte brut via TextDevice. Le contenu SVG peut être importé dans un document via SvgLoadOptions.

Comment ouvrir un PDF existant et vérifier son nombre de pages?

#include <aspose/pdf/document.hpp>

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

Comment extraire le texte d’un document PDF?

Utilisez TextAbsorber, parcourez le document, puis lisez le texte collecté:

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

Comment rendre une page PDF en image?

Utilisez une classe d’appareil telle que PngDevice avec une cible Resolution, puis traitez une seule page vers un flux de sortie:

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

Comment chiffrer un document PDF?

Appelez Document.Encrypt() avec un mot de passe utilisateur, un mot de passe propriétaire, une valeur Permissions et un 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 et AESx256 sont tous disponibles via l’énumération CryptoAlgorithm. Document.Decrypt() supprime le chiffrement d’un document déjà ouvert.

Comment lire ou remplir les valeurs du champ AcroForm?

Parcourez Form.Fields() du document et lisez ou définissez la valeur de chaque champ par son nom partiel:

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

Existe-t-il des limitations connues dans la version actuelle?

Oui. XmpValue — le type de valeur utilisé pour les entrées de métadonnées XMP retournées par Document.Metadata() — expose des aides de vérification de type IsDateTime(), IsField(), IsNamedValue(), IsRaw(), IsNamedValues() et IsStructure() qui sont actuellement des stubs et renvoient toujours false. Le code qui se branche sur ces vérifications ne peut pas distinguer ces types de valeurs XMP. Utilisez plutôt les vérifications implémentées — IsString(), IsInteger(), IsDouble(), IsArray() — ou appelez directement l’accesseur correspondant (ToStringValue(), ToInteger(), ToDouble(), ToArray()) lorsque le type de valeur est déjà connu du contexte. Un petit nombre de types internes de bas niveau contiennent également des constructeurs stub qui ne sont pas exercés par le code de traitement de documents typique.

Où se trouvent le code source et le suivi des problèmes?

Le code source et le suivi des tickets sont disponibles à https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp.

Voir aussi

 Français