1. מוצרים
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for C++

Aspose.PDF FOSS עבור C++

ספריית קוד פתוח ב-C++ ליצירה, עריכה, רינדור והגנה על מסמכי PDF עם אפס תלות בזמן ריצה.

Aspose.PDF FOSS — ספריית PDF בקוד פתוח C++

Aspose.PDF FOSS for C++ היא ספרייה קוד-פתוח מודרנית ב-C++20 לעבודה עם מסמכי PDF — פתיחה ושמירת קבצי PDF, חילוץ טקסט, רסטריזציה של דפים לפורמטים של תמונה, ובניית מסמכים מאפס (טקסט, תמונות, טבלאות, גרפיקה וקטורית, annotations, שדות AcroForm וסימניות). הספרייה מקשרת רק אל ספריית ה-standard של C++: כל פרימיטיב, כולל הקודקים של TIFF, JPEG ו-PNG והרסטרייזר של הדף, מיושמים מאפס ללא תלות בערימת PDF מסחרית.

הליבה של API נבנית סביב המחלקה Document ואוסף Pages(). הטקסט נמשך באמצעות Aspose::Pdf::Text::TextAbsorber, הדפים מוּרְנְדָרים לתמונות רסטר באמצעות מחלקות מכשיר כגון PngDevice, JpegDevice, BmpDevice ו-TiffDevice, והמסמכים יכולים להיות מוצפנים עם Document.Encrypt() תוך שימוש באלגוריתמים RC4-40, RC4-128, AES-128 או AES-256 הנבחרים דרך המונה CryptoAlgorithm. שדות טופס אינטראקטיביים מנוהלים דרך המחלקה Form, וה-annotations — הערות טקסט, הדגשות, צורות וחותמות — מתווספים ומשתנים דרך היררכיית המחלקה Annotation.

Aspose.PDF FOSS for C++ משוחררת תחת רישיון MIT ללא תשלומי זמן ריצה או מגבלות שימוש. היא נבנית כספרייה סטטית דרך CMake — הוסיפו אותה כתת-ספרייה של תהליך הבנייה שלכם או התקינו אותה באופן עצמאי — ודורשת מהדר C++20 ללא תלות זמן ריצה נוספת. לתכונות ותמיכה ארגונית, ראו Aspose.PDF for C++ — Enterprise Product.

טעינת מסמך וניהול דפים

  • פתח קבצי PDF קיימים ושמור שינויים עם Document
  • גש לדפים וחזור עליהם באמצעות Document.Pages() (PageCollection)
  • הוסף, הכנס ומחק דפים עם PageCollection.Add()/Insert()/Delete()
  • קרא והגדר מטא-נתוני מסמך דרך DocumentInfo (Document.Info())
  • בצע אופטימיזציה לגודל המסמך עם Document.Optimize()/OptimizeResources()

מקרים נפוצים לשימוש

  • לבנות צינורות יצירת PDF לדוחות וחשבוניות
  • למזג, לחלק ולארגן מחדש מסמכי PDF קיימים
  • לבדוק ולעדכן מטא-נתוני מסמך באופן תכנותי
  • להפחית את גודל קובץ ה-PDF לפני ארכיון או הפצה

חילוץ טקסט

  • חילוץ טקסט פשוט ממסמך שלם באמצעות Aspose::Pdf::Text::TextAbsorber
  • ביקור בדף יחיד או בכל המסמך דרך TextAbsorber.Visit()
  • קבלת הטקסט שהוצא דרך TextAbsorber.Text()
  • איתור מקטעי טקסט בודדים עם TextFragmentAbsorber.TextFragments()

מקרים נפוצים

  • אינדקס תוכן PDF לחיפוש
  • חילוץ נתונים מחשבוניות ומסמכים מובנים
  • בניית צינורות text-mining או ניתוח תוכן
  • אימות תוכן המסמך במערכי בדיקות אוטומטיים

המרה לתמונות רסטר

  • רנדר דפים ל-PNG באמצעות PngDevice
  • רנדר דפים ל-JPEG, BMP או TIFF באמצעות JpegDevice, BmpDevice, TiffDevice
  • שלוט ברזולוציית הפלט באמצעות המחלקה Resolution
  • עבד על דף בודד דרך {Device}.Process()

מקרים נפוצים של שימוש

  • ליצור תמונות ממוזערות של דפים לצופה מסמכים
  • לייצר פלט רסטר מוכן להדפסה מקבצי PDF וקטוריים
  • לבנות שירותי המרה מ-PDF לתמונה
  • ליצור בסיסי רגרסיה חזותית עבור PDF-ים שנוצרו

הצפנה ואבטחה

  • הצפן מסמכים באמצעות Document.Encrypt() תוך שימוש בסיסמה למשתמש ולבעלים
  • בחר RC4-40, RC4-128, AES-128 או AES-256 דרך המונה CryptoAlgorithm
  • שלוט בהרשאות המוקצות באמצעות הסוג Permissions
  • פענח מסמכים המוגנים בסיסמה באמצעות Document.Decrypt()

מקרי שימוש טיפוסיים

  • הגן על דוחות PDF סודיים לפני הפצה
  • אכוף הגבלות הדפסה/העתקה/עריכה על מסמכים משותפים
  • הוסף הגנת סיסמה לחשבוניות ולדוחות שנוצרו
  • הצפן מסמכים במרוכז כחלק מצינור עבודה של מסמכים

הערות וטפסים אינטראקטיביים

  • הוסף, שנה והשטח סימונים באמצעות Annotation ו-AnnotationCollection
  • נהל שדות AcroForm באמצעות מחלקת Form
  • הוסף והסר שדות עם Form.Add()/Form.Delete()
  • השטח טפסים אינטראקטיביים לתוכן סטטי עם Form.Flatten()

מקרים נפוצים

  • הוסף הערות ביקורת והדגשות לקבצי PDF משותפים
  • צור טפסי PDF ניתנים למילוי לאיסוף נתונים
  • השטח טפסים שהוגשו לפני הארכיב
  • הזן מראש ונעל שדות טופס באופן תכנותי

פתח קובץ PDF, חילץ טקסט והצג דף

הוסף את הספרייה כתת-ספרייה של CMake, לאחר מכן פתח מסמך, ספור את הדפים שלו, חילץ טקסט עם TextAbsorber, והצג דף 1 ל-PNG ברזולוציה של 150 DPI.

add_subdirectory(aspose.pdf-foss-for-cpp)
target_link_libraries(your_app PRIVATE aspose_pdf_foss)
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/page_collection.hpp>
#include <aspose/pdf/text_absorber.hpp>
#include <aspose/pdf/png_device.hpp>
#include <aspose/pdf/resolution.hpp>
#include <fstream>
#include <iostream>

int main() {
    Aspose::Pdf::Document doc("input.pdf");
    std::cout << "Pages: " << doc.Pages().Count() << "\n";

    Aspose::Pdf::Text::TextAbsorber absorber;
    absorber.Visit(doc);
    std::cout << absorber.Text() << "\n";

    Aspose::Pdf::Devices::PngDevice png(Aspose::Pdf::Devices::Resolution(150));
    std::ofstream out("page1.png", std::ios::binary);
    png.Process(doc.Pages()[1], out);
}

הצפנת מסמך עם AES-256

פתח מסמך והגן עליו עם סיסמת משתמש וסיסמת בעלים באמצעות הצפנת AES-256.

#include <aspose/pdf/document.hpp>
int main() {
    Aspose::Pdf::Document doc("input.pdf");
    doc.Encrypt("user-password", "owner-password",
                Aspose::Pdf::Permissions(),
                Aspose::Pdf::CryptoAlgorithm::AESx256);
    doc.Save("encrypted.pdf");
}

קריאה ועדכון של מטא-נתוני המסמך

קרא ערכי /Info קיימים ועדכן את כותרת המסמך באמצעות DocumentInfo.

#include <aspose/pdf/document.hpp>
#include <aspose/pdf/document_info.hpp>
#include <iostream>

int main() {
    Aspose::Pdf::Document doc("input.pdf");
    auto& info = doc.Info();
    std::cout << "Title: " << info.Title() << "\n";
    std::cout << "Author: " << info.Author() << "\n";

    doc.SetTitle("Updated Report Title");
    doc.Save("output.pdf");
}

שאלות נפוצות

מהו מודל הרישוי עבור Aspose.PDF FOSS for C++?

זה ברישיון MIT וחינמי לשימוש במוצרים מסחריים ולא-מסחריים, ללא מפתח הפעלה או מגבלות קריאות API.

אילו גרסאות של המהדר ו-CMake נדרשות?

קומפיילר C++20 (clang 16+, gcc 13+, או MSVC 2022 17.5+) ו-CMake 3.22 או גרסה מאוחרת יותר. Python 3 נדרש רק בזמן הבנייה.

האם לספרייה יש תלות בזמן ריצה?

לא. הוא מקשר רק נגד ספריית התקן של C++ — אין צורך בתלות של PDF, תמונה או דחיסה של צד שלישי בזמן הריצה.

אילו פורמטים הוא יכול לקרוא ולייצא?

הוא קורא ושומר מסמכי PDF מקוריים, ומייצא דפים מעובדים ל-Bmp, Jpeg ו-Tiff, בנוסף לטקסט פשוט. ניתן לייבא תוכן SVG.

איך אני מצפין מסמך PDF?

קרא ל-Document.Encrypt() עם סיסמת משתמש, סיסמת בעלים, ו-CryptoAlgorithm (RC4x40, RC4x128, AESx128, או AESx256).

האם יש מגבלות ידועות בגרסה הנוכחית?

כן — כמה עוזרי בדיקת סוג של XmpValue (IsDateTime, IsField, ודומים) הם תחליפי-קוד שתמיד מחזירים false; השתמשו ב-IsString/IsInteger/IsDouble/IsArray במקום.

  

משאבי תמיכה ולמידה

 עברית