Najczęściej zadawane pytania
Jaki jest model licencjonowania dla Aspose.PDF FOSS for C++?
Aspose.PDF FOSS for C++ jest na licencji MIT. Jest darmowe do użycia w produktach komercyjnych i niekomercyjnych, bez klucza aktywacji, limitów wywołań API ani wymaganego porozumienia handlowego.
Jak dodać Aspose.PDF FOSS for C++ do projektu CMake?
Zainstaluj jako dostawcę lub sklonuj repozytorium do drzewa projektu, dodaj je jako podkatalog i podlinkuj docelowy statyczny target biblioteki:
add_subdirectory(aspose.pdf-foss-for-cpp)
target_link_libraries(your_app PRIVATE aspose_pdf_foss)Jakie wersje kompilatora i CMake są wymagane?
Kompilator C++20 — clang 16+, gcc 13+ lub MSVC 2022 17.5+ — oraz CMake 3.22 lub nowszy. Kompilacja wymaga również Python 3 wyłącznie w czasie budowania, aby wygenerować dołączone kontury czcionek Standard-14.
Czy biblioteka ma jakiekolwiek zależności w czasie wykonywania?
Nr. Aspose.PDF FOSS dla C++ linkuje wyłącznie z biblioteką standardową C++ — nie wymaga żadnych zewnętrznych zależności PDF, obrazu ani kompresji w czasie wykonywania.
Jakie formaty może Aspose.PDF FOSS dla C++ odczytywać i eksportować?
Otwiera i zapisuje natywne dokumenty PDF. Renderowane strony mogą być eksportowane do Bmp, Jpeg i Tiff za pomocą BmpDevice, JpegDevice i TiffDevice, oraz do zwykłego tekstu za pomocą TextDevice. Zawartość SVG może być importowana do dokumentu za pomocą SvgLoadOptions.
Jak otworzyć istniejący PDF i sprawdzić liczbę stron?
#include <aspose/pdf/document.hpp>
Aspose::Pdf::Document doc("input.pdf");
std::size_t pages = doc.Pages().Count();Jak wyodrębnić tekst z dokumentu PDF?
Użyj TextAbsorber, odwiedź dokument, a następnie odczytaj zebrany tekst:
#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();Jak wyrenderować stronę PDF do obrazu?
Użyj klasy urządzenia, takiej jak PngDevice, z docelowym Resolution, a następnie przetwórz pojedynczą stronę do strumienia wyjściowego:
#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);Jak zaszyfrować dokument PDF?
Wywołaj Document.Encrypt() z hasłem użytkownika, hasłem właściciela, wartością Permissions i 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 i AESx256 są dostępne w enumie CryptoAlgorithm. Document.Decrypt() usuwa szyfrowanie z już otwartego dokumentu.
Jak odczytać lub wypełnić wartości pól AcroForm?
Iteruj Form.Fields() z dokumentu i odczytaj lub ustaw wartość każdego pola według jego częściowej nazwy:
#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");Czy w bieżącej wersji istnieją znane ograniczenia?
Tak. XmpValue — typ wartości używany dla wpisów metadanych XMP zwracanych z Document.Metadata() — udostępnia pomocnicze funkcje sprawdzania typu IsDateTime(), IsField(), IsNamedValue(), IsRaw(), IsNamedValues() i IsStructure(), które są obecnie szkicami i zawsze zwracają false. Kod, który rozgałęzia się w oparciu o te kontrole, nie może odróżnić tych rodzajów wartości XMP. Użyj zamiast tego zaimplementowanych kontroli — IsString(), IsInteger(), IsDouble(), IsArray() — lub wywołaj bezpośrednio pasujący dostępnik (ToStringValue(), ToInteger(), ToDouble(), ToArray()), gdy rodzaj wartości jest już znany z kontekstu. Niewielka liczba niskopoziomowych typów wewnętrznych zawiera również szkicowe konstruktory, które nie są wykorzystywane w typowym kodzie przetwarzania dokumentów.
Gdzie znajduje się kod źródłowy i tracker zgłoszeń?
Kod źródłowy i system zgłaszania problemów są dostępne pod adresem https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp.