עבודה עם התאימות שנוצרה API

עבודה עם התאימות שנוצרה API

עבודה עם התאימות שנוצרה של API

Aspose.PDF FOSS עבור Python משגר משטח API שני, קטן יותר תחת חבילה המשנה aspose_pdf.generated: generated.document.Document, generated.forms.UnsignedContent ו-UnsignedContentAbsorber, ו-generated.pdfa.PdfAValidateOptions ו-PdfAValidationResult. כל אחת מהמחלקות הללו חולקת את שמה עם מחלקה ב-API הראשית של הספרייה (aspose_pdf.Document, aspose_pdf.UnsignedContent וכן הלאה), אך הן נפרדות, מוגדרות באופן עצמאי ויש להן משטח שיטות מצומצם. הן קיימות כשכבת תאימות עצמאית — תמיד ייבא אותן באמצעות הנתיב המלא של aspose_pdf.generated.* כדי לדעת איזו אתה קורא.


מחזור החיים של המסמך דרך המסמך שנוצר

generated.document.Document תומך במחזור החיים המרכזי של המסמך: טעינה, שמירה, אופטימיזציה בסיסית, הצפנה, ואימות. רוב המאפיינים שלו מסווגים כ-Any במקום הסוגים העשירים יותר המוצגים במחלקה הראשית Document.

from aspose_pdf.generated.document import Document

doc = Document()
doc.load_from("input.pdf")

doc.optimize(compress_images=True)
doc.optimize_resources(remove_unused=True)

if doc.validate():
    doc.save("output.pdf")

doc.dispose()

הצפנה ושינויי סיסמאות משתמשים בטופס סיסמה יחידה במקום סיסמאות נפרדות של משתמש/בעלים ב-Document.encrypt הראשית:

from aspose_pdf.generated.document import Document

doc = Document()
doc.load_from("input.pdf")

doc.encrypt("secret")
doc.change_passwords("secret", "new-secret")
doc.save("protected.pdf")

חילוץ תוכן שלא נחתם

generated.forms.UnsignedContentAbsorber מחלץ את העמודים, שדות הטופס וההערות של מסמך שעדיין לא נחתמו לתוך מכולת UnsignedContent. קרא ל-extract() כדי לבצע את החילוץ, ואז ל-get_extracted() או ל-has_extracted() כדי לבדוק את התוצאה מבלי להריץ אותה שוב.

from aspose_pdf.generated.document import Document
from aspose_pdf.generated.forms import UnsignedContentAbsorber

doc = Document()
doc.load_from("input.pdf")

absorber = UnsignedContentAbsorber()
extracted = absorber.extract()

print(len(extracted.pages), len(extracted.form_fields), extracted.annotations)

if absorber.has_extracted():
    same_result = absorber.get_extracted()

absorber.reset()

UnsignedContent ניתן גם לבנות ולמלא ישירות, באופן עצמאי מהסופג:

from aspose_pdf.generated.forms import UnsignedContent

bundle = UnsignedContent()
bundle.add_page(some_page)
bundle.add_form_field(some_field)
bundle.add_annotation(some_annotation)

bundle.remove_page(some_page)
bundle.reset()

אפשרויות אימות PDF/A ותוצאות

generated.pdfa.PdfAValidateOptions ו-PdfAValidationResult הם זוג אפשרויות/תוצאה עצמאי עבור זרימות עבודה של אימות בסגנון PDF/A. הם אינם המחלקות שהוחזרו על ידי API הראשי ב-Document.validate_pdfa() או שנצרכות על ידי PdfAValidator.process() — אלה משתמשים במחלקות שלהם, המוגדרות בנפרד, PdfAValidateOptions ו-PdfAValidationResult, עם משטח עשיר יותר (level, warnings, is_heuristic, ו-font_lookup_directory).

from aspose_pdf.generated.pdfa import PdfAValidateOptions, PdfAValidationResult

options = PdfAValidateOptions()
options.add_input()
options.set_option("level", "1b")

stored_options = options.get_options()

result = PdfAValidationResult()
result.add_error("Font not embedded: Arial")

summary = result.to_dict()
is_valid = result.is_valid

טיפים ושיטות עבודה מומלצות

  • ייבא כל מחלקת generated דרך נתיב תת-מודול מלא שלה (from aspose_pdf.generated.document import Document, וכן באופן דומה עבור generated.forms ו-generated.pdfa) — לעולם אל תניח שייבוא Document או UnsignedContent חשוף יפתור לגרסת התאימות.
  • תן למחלקה המיובאת שם מקומי מובחן בכל פעם שקובץ משתמש גם ב-API הראשי באותו מודול, כך שהשתי הממשקים יישארו מובחנים בצורה ברורה בכל נקודת קריאה.
  • התייחס ל-generated.pdfa.PdfAValidateOptions/PdfAValidationResult כזוג עצמאי: בנה את האפשרויות, הפעל את לוגיקת האימות שלך, ורשום ממצאים עם add_error() בעצמך — הם אינם ממולאים אוטומטית על ידי Document.validate_pdfa().
  • בדוק את UnsignedContentAbsorber.has_extracted() לפני קריאה ל-get_extracted() אם אינך בטוח ש-extract() כבר רץ.
  • העדף את ה-API הראשי של aspose_pdf.Document לקוד חדש אלא אם כן אתה זקוק במפורש למשטח המופחת, תואם-נוצר.

בעיות נפוצות

בעיהסיבהתיקון
שיטות Document שגויות זמינות (חסרות pages, form, xmp_metadata, וכדומה)יובא generated.document.Document במקום aspose_pdf.Document הראשיייבא את המחלקה הראשית (import aspose_pdf; aspose_pdf.Document()) אלא אם אתה מתכוון למשטח המצומצם
PdfAValidateOptions/PdfAValidationResult מ-generated.pdfa אינם עובדים עם PdfAValidator.process()ה-PdfAValidator של ה-API הראשי מצפה למחלקות PdfAValidateOptions/PdfAValidationResult שלו, ולא לגרסאות generated.pdfaהשתמש במחלקות PdfAValidateOptions/PdfAValidationResult המיוצאות מ-aspose_pdf עבור זרימות עבודה של PdfAValidator
get_extracted() מחזיר Noneextract() מעולם לא נקרא על אותו מופע של UnsignedContentAbsorberקרא ל-extract() לפני get_extracted(), או בדוק את has_extracted() תחילה
המאפיינים ב-generated.document.Document הם מסוג Any ואין להם השלמה אוטומטיתהמשטח שנוצר מחליף טיפוסיות סטטית בעבור API קטן ופשוט יותרהמר או תעד את סוג הצפוי במיקום הקריאה, או עבור למחלקה הראשית Document לקבלת טיפוסיות עשירה יותר

FAQ

האם aspose_pdf.generated הוא סטאב או מציין מקום?

לא. זהו תת-חבילה אמיתית, ניתנת לייבוא, עם מחלקות פעילות — Document, UnsignedContent, UnsignedContentAbsorber, PdfAValidateOptions ו-PdfAValidationResult — היא פשוט משטח קטן ובלתי תלוי מה-API הראשי של הספרייה.

מדוע ל-generated.document.Document יש את אותו שם כמו aspose_pdf.Document?

הן שתי מחלקות שהוגדרו באופן עצמאי שמקריות חולקות שם. ייבוא מ-aspose_pdf.generated.document מספק לך את גרסת התאימות; ייבוא aspose_pdf.Document (או from aspose_pdf import Document) מספק לך את הגרסה הראשית.

האם אוכל להעביר generated.pdfa.PdfAValidateOptions ל-PdfAValidator.process()?

לא. PdfAValidator.process() הוא חלק מ-API הראשי ומצפה למחלקת PdfAValidateOptions של ה-API הראשי, שיש לה חתימת מתודה שונה (add_input(source) במקום add_input() ללא ארגומנטים).

האם UnsignedContentAbsorber.extract() זקוק לארגומנט של Document?

לא. extract() לא מקבל ארגומנטים במשטח התאימות שנוצר; צור את ה-absorber וקרא ל-extract() ישירות.


סיכום API Reference

מחלקה / שיטהתיאור
Document.load_fromטוען מסמך מנתיב קובץ, bytes, או stream
Document.saveשומר את המסמך ליעד
Document.optimizeמבצע אופטימיזציה כללית, עם אפשרות לדחוס תמונות
Document.optimize_resourcesמטיב משאבים משותפים כגון גופנים ותמונות
Document.encryptמצפין את המסמך עם סיסמה אחת
Document.change_passwordsמשנה את סיסמת המסמך
Document.validateמחזיר אם המסמך תקין מבנית
Document.disposeמשחרר משאבים הקשורים למסמך
UnsignedContent.add_page / remove_pageמוסיף או מסיר דף מחבילה של unsigned-content
UnsignedContent.add_form_field / remove_form_fieldמוסיף או מסיר שדה טופס מחבילה של unsigned-content
UnsignedContent.add_annotation / remove_annotationמוסיף או מסיר אנוטציה מחבילה של unsigned-content
UnsignedContentAbsorber.extractמחלץ unsigned content למופע של UnsignedContent
UnsignedContentAbsorber.get_extractedמחזיר את ה-UnsignedContent האחרון שהוצא, אם קיים
UnsignedContentAbsorber.has_extractedמדווח האם בוצע חילוץ
PdfAValidateOptions.add_inputרושם מקור קלט לצורך אימות
PdfAValidateOptions.set_option / get_optionsמגדיר או קורא ערכי אפשרויות אימות
PdfAValidationResult.add_errorמוסיף הודעת שגיאה ומסמן את התוצאה כלא תקפה
PdfAValidationResult.to_dictמחזיר ייצוג מילון של תוצאת האימות

ראה גם

 עברית