Συχνές Ερωτήσεις

Συχνές Ερωτήσεις

Ποιο είναι το μοντέλο αδειοδότησης για το Aspose.PDF FOSS for C++;

Το Aspose.PDF FOSS for C++ είναι αδειοδοτημένο υπό MIT. Είναι δωρεάν για χρήση σε εμπορικά και μη εμπορικά προϊόντα, χωρίς κλειδί ενεργοποίησης, περιορισμούς κλήσεων API, ή εμπορική συμφωνία.

Πώς μπορώ να προσθέσω το Aspose.PDF FOSS for C++ σε ένα έργο CMake;

Κάντε vendor ή κλωνοποιήστε το αποθετήριο στο δέντρο του έργου σας, προσθέστε το ως υποκατάλογο και συνδέστε το στόχο της στατικής βιβλιοθήκης:

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.

Η βιβλιοθήκη έχει εξαρτήσεις χρόνου εκτέλεσης;

Αρ. 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 είναι όλα διαθέσιμα μέσω της απαρίθμησης 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() που είναι επί του παρόντος σκέλετ και πάντα επιστρέφουν το false. Ο κώδικας που διακλαδώνεται βάσει αυτών των ελέγχων δεν μπορεί να διακρίνει αυτούς τους τύπους τιμών XMP. Χρησιμοποιήστε τους υλοποιημένους ελέγχους αντί αυτού — IsString(), IsInteger(), IsDouble(), IsArray() — ή καλέστε απευθείας τον αντίστοιχο accessor (ToStringValue(), ToInteger(), ToDouble(), ToArray()) όταν ο τύπος της τιμής είναι ήδη γνωστός από το περιεχόμενο. Ένας μικρός αριθμός χαμηλού επιπέδου εσωτερικών τύπων περιέχει επίσης σκέλετ κατασκευαστές που δεν χρησιμοποιούνται από τον τυπικό κώδικα επεξεργασίας εγγράφων.

Πού βρίσκεται ο πηγαίος κώδικας και ο διαχειριστής θεμάτων;

Ο κώδικας πηγής και το σύστημα παρακολούθησης ζητημάτων είναι διαθέσιμα στο https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp.

Δείτε επίσης

 Ελληνικά