עבודה עם התאימות שנוצרה 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() מחזיר None | extract() מעולם לא נקרא על אותו מופע של 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 | מחזיר ייצוג מילון של תוצאת האימות |