HotPDF Release Notes

Version history for HotPDF user-visible features, fixes, compatibility updates, and documentation changes

Note: Only the latest 500 change records are kept

Last release

  • Latest version: 2.458.0; Release date: 2026-08-03

Version 2.458.0

Added

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

Version 2.457.0

Added

  • SetFontFallbackChain ו-TextOutWithFallback מוסיפים בחירת גופן מסודרת מודעת-כתב עם בדיקות כיסוי Unicode-scalar ואבחון גליפים בלתי-פתורים מתמיד; טקסט אנכי פולט כעת ריצות Identity-V שלמות עם מדדי /DW2 ו-/W2 הנגזרים מטבלאות OpenType vhea, vmtx ו-VORG כאשר זמינות

Version 2.456.0

Added

  • HPDFEncodePredictor מוסיף קידוד חזאי TIFF קפדני ו-PNG קבוע או אדפטיבי עבור שורות ראסטרר ארוזות, 8-סיביות ו-16-סיביות; ExtractLoadedImageToStream נמנע ממערכי בתים בגודל מלא עבור מטעני תמונה מקוריים או מפוענחים גנרית; OptimizeLoadedStreams דוחס מחדש באופן סלקטיבי משפחות מסנן נתמכות דרך מתזזי שפיכת זיכרון-אל-דיסק ומחליף רק זרמים העומדים בסף חיסכון חיובי

Version 2.455.0

Added

  • DecodeLoadedStreamToStream מרכיב כעת מסנני PDF טעונים לתוך צינור חסום שהשלב הסופי שלו כותב ישירות אל זרם קורא; DocumentDecodeBudgetBytes מוסיף תקרת ברירת מחדל של 1 GiB על פני שרשראות עצמאיות, בעוד שומרי ספירת-מסננים, עומק-קינון, הפניות-מחזוריות וזרם-רקורסיבי חושפים אבחון צינור מובנה

Version 2.454.0

Added

  • זרמים טעונים גדולים נשארים כעת על טווחי קובץ-המקור עד שינוי ושופכים שינויים גדולי-יתר אל קבצים זמניים בבעלות דרך LoadedStreamMemoryThreshold; חברי object-stream דחוסים מאונדקסים וממומשים לפי מספר אובייקט בשימוש ראשון; LoadFromRandomAccessSource מוסיף אינטגרציית HTTP-range ואחסון מותאם, עם אבחון זרם ומטמון-אובייקטים

Version 2.453.0

Changed

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

Version 2.452.0

Added

  • נוסף פלט PDF 2.0 מקורי בתוספת כתיבת PDF/A-4, PDF/A-4e, PDF/A-4f ו-PDF/UA-2, עם זיהוי XMP מודע-מהדורה, תפקידי מבנה PDF 2.0, רישום מרחב-שמות דרך RegisterStructureNamespace ו-AddStructureElementNS, אימות מבנה PDF/UA-2 קפדני, וקבצים משויכים ניטרליים-פרופיל דרך AddPDFAssociatedFile

Version 2.451.0

Added

  • DetectFacturXInvoice חושף כעת את סוג ה-MIME של הקובץ המצורף העיקרי המפוענח ואת URI מרחב-השמות XMP הקשור, בעוד ValidateFacturXInvoice מצלבב את ה-FileSpec המדויק המשותף על ידי /AF של ה-Catalog ועץ השמות EmbeddedFiles, שמות /F ו-/UF, סוג MIME של XML, DocumentType של XMP, ומרחב-השמות Factur-X או ZUGFeRD הספציפי לפרופיל דרך ארבעה דגלי בעיות ייעודיים

Version 2.450.0

Added

  • Preflight JSON, HTML וממצאי סגנון veraPDF נושאים כעת ערכי ruleId בעלי מרחב-שמות יציבים בתוספת מיקומים קריאים-מכונה עם scope לוגי, נתיב, מפתח PDF, ומספר אובייקט מדויק, אינדקס עמוד או היסט בתים כאשר זמינים; דוחות JSON גם פולטים את מיפויי spec ה-ISO המתועדים ונשארים תקפים כאשר מערכים מכילים ממצאים מרובים

Version 2.449.0

Added

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

Version 2.448.0

Added

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

Version 2.447.0

Added

  • נוספה תקרת DecodeBudgetBytes לכל-שרשרת קונפיגורבילית של 256 MiB המצרפת פלט משלבי Flate, LZW, ASCIIHex, ASCII85, RunLength וחזאי-תמונה מקוננים לפני שהם מגיעים לזיכרון, עם אבחון GetLastDecodeBudgetInfo ואפס כמצב בלתי-מוגבל מפורש

Version 2.446.0

Added

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

Version 2.445.0

Added

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

Version 2.444.0

Added

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

Version 2.443.0

Added

  • VerifyLoadedSignatureWithTrust ו-HPDFValidateCMSCertificatePath בונים כעת נתיבי תעודת חותם אל עוגני אמון מסופקים-על-ידי-הקורא ומאמתים חתימות תעודה, תקופות תוקף, Basic Constraints, אילוצי אורך-נתיב ו-Key Usage
  • אימות שלילה לא-מקוון מאמת כעת חתימות OCSP ו-CRL, סמכות מגיב, זהות תעודה, טריות מצב, וזמני שלילה תוך העדפת ראיות VRI לכל-חתימה לפני DSS ברמת-מסמך, ראיות קורא, ו-CRL של CMS
  • THPDFSignatureInfo.CertificateValidation מדווח על אמון, אורך נתיב, עוגן אמון, זמן הערכה, מצב ומקור שלילה, זמן שלילה, ובעיות אימות באופן עצמאי מ-svValid הקריפטוגרפי

Version 2.442.0

Added

  • אימות חתימות-טעונות מאמת כעת קריפטוגרפית חותמות זמן-מסמך RFC 3161 מול /ByteRange של ה-PDF ואסימוני זמן-חתימה מול ערך חתימת ה-CMS ההורה, בעוד THPDFSignatureInfo.Timestamp חושף את סוג חותם-הזמן, המצב, המדיניות, טביעת ההודעה, המספר הסידורי, זמן היצירה, הדיוק, הסדר, ה-nonce, זהות ה-TSA, ופרטי תעודת חותם-האסימון

Version 2.441.0

Added

  • אימות חתימות-טעונות תומך כעת בחתימות CMS RSA-PSS עם SHA-1, SHA-256, SHA-384 או SHA-512 ומאמת פרמטרי hash מפורש, hash MGF1, אורך-salt ו-trailer-field
  • THPDFSignatureInfo מדווח כעת על SignedRevisionLength ו-UnsignedTrailingBytes, ו-svInvalidByteRange מזהה טווחי חתימת PDF בלתי-בטוחים מבנית

Changed

  • אימות חתימות משחזר כעת את מיקום הזרם של הקורא, משווה רצפי בתים רגישי-אבטחה ללא יציאות מוקדמות, ומדווח על פרמטרי אלגוריתם RSA-PSS מלאים

Fixed

  • אימות CMS דוחה כעת טווחי בתים חופפים, מחוץ-לגבול, קטומים או דו-משמעיים ומאמת את מזהה האלגוריתם המלא של DigestInfo של RSA PKCS#1 במקום לקבל כל מחרוזת octet בגודל digest

Version 2.440.0

Fixed

  • רישום גופני Unicode מקצה כעת את מלוא מאגר התקדמות-הגליפים לפני קריאת מדדי הגופן, ובכך מונע הפרות גישה בזרימות עבודה של עיצוב OpenType ותת-קבוצות גופנים
  • GetWideTextWidth מפרש כעת התקדמויות Unicode מהמטמון ביחידות em ונסוג למדידת פלטפורמה כאשר מדד גליף אינו זמין, ובכך משחזר רוחבים בקנה מידה נכון עבור גלישת שורות ופריסה
  • BeginIncrementalUpdate מסמן כעת אובייקטים שנטענו כנקיים לפני מעקב אחר שינויי הקורא, כך שאובייקטים שלא השתנו אינם נכתבים מחדש ומילוני הצפנה יתומים משוחררים כהלכה בקטע הפניות-הצירוף המצורף

Version 2.439.0

Added

  • HPDFDecodePredictor ו-HPDFTryDecodePredictor מספקים פענוח חסום עבור חיזוי TIFF של 1, 2, 4, 8 ו-16 סיביות וכל חמשת מסנני השורות של PNG, עם אימות שורות קפדני ואבחון מעשי
  • TPDFLZWDecompressor מוסיף פלט זרם ישיר, שיטות פענוח לא-מעלות-חריג רב-פעמיות, מגבלות פלט ודרישות מסיימי זרם הניתנות להגדרה, וסטטיסטיקות לכל-פענוח של רוחב קוד, מילון, איפוס, הרחבה ופלט

Changed

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

Fixed

  • פענוח Flate עם פרמטרי חזאי קורא כעת מזרם הדחיסה במקום להעתיק בתי קלט דחוסים אל שלב החזאי
  • קודי LZW פגומים, שורות קטומות, תגי שורת PNG לא תקינים, גאומטריית חזאי בלתי אפשרית והרחבה מופרזת נכשלים כעת באופן דטרמיניסטי במקום להחזיר נתוני תמונה חלקיים או עדיין-דחוסים

Version 2.438.0

Fixed

  • THPDFViewer מקמפל כעת ב-Delphi XE2 עד XE8, שבהם WM_DPICHANGED חסר מ-Winapi.Messages; קבוע הודעת ה-DPI לכל-צג מוגדר כעת מקומית עבור שרשרות כלים ישנות מ-Delphi 10 Seattle, ובכך משחזר את בניית ה-DCU של ספריית ה-TRIAL עבור RAD Studio XE2..XE8 שבוטלה עם E2003 Undeclared identifier

Version 2.437.0

Changed

  • GetWideTextWidth מודד כעת טקסט Unicode ממטמון רוחבי-התקדמות לכל נקודת-קוד המאוכלס פעם אחת מטבלת hmtx של הגופן, במקום תהליך דו-כיווני של CreateCompatibleDC + GetTextExtentPoint32W בכל קריאה -- האצה של פי 10-100 עבור מדידת גלישת מילים, יישור ותאי טבלה במסמכי Unicode ארוכים, עם נסיגה שקופה לנתיב ה-GDI המדורג כאשר לא רשום גופן Unicode

Version 2.436.0

Fixed

  • /FontDescriptor /CapHeight של גופנים מוטמעים משתמש כעת במדד otmsCapEmHeight האמיתי של הפנים במקום קבוע מקודד-קשיח, ונסוג לכ-70% מהעלייה עבור פנים שמדווחות על אפס

Version 2.435.0

Fixed

  • גופני Unicode מוטמעים שומרים כעת את הגליפים שעיצוב OpenType מייצר (צורות הצגה ערביות, עיגולים, חלופות הקשריות) בעת תת-קבוצות -- הקבוצה FUnicodeExtraUsedGlyphs שתועדה על ידי MarkUnicodeGlyphUsed / EnableShapingFeatureForSubset נכתבה אך מעולם לא נבדקה על ידי מנוע תת-הקבוצות, כך שהגליפים הללו נפלו ל-.notdef בפלט

Version 2.434.0

Added

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

Changed

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

Fixed

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

Version 2.433.0

Added

  • אימות חתימות שנטענו תומך כעת בחתימות CMS מסוג ECDSA P-256, P-384 ו-P-521 עם SHA-1, SHA-256, SHA-384 או SHA-512, לרבות בחירת חותם issuer-and-serial ו-SubjectKeyIdentifier, אימות DER קפדני של חתימות, ואבחון מורחב של אלגוריתמים ועקומות
  • ניהול צבע ICC מאמת כעת פרופילי ICC v2/v4, מסיק ומאמת ספירות רכיבים, מבטל כפילויות של פרופילים רשומים, ממיר צבעי וקטור ICCBased ודגימות תמונה גולמיות ל-sRGB עם תמיכה בכוונת-העיבוד, ושומר על מרחב הצבע החלופי Alternate של PDF כחלופה מבוקרת

Version 2.432.0

Added

  • THPDFTableCell תומך כעת בתאי תמונה (ImageIndex + ImageAspect מתאימים תמונה רשומה לרוחב העמודה עם יישור אופקי/אנכי) ותאי HTML (IsHTML מעבד את טקסט התא דרך TextOutHTML עבור סימון מוטמע של מודגש/צבע/קישור/תחתי-עילי), בהתאמה למגוון תוכן-התא שייצוא רשת אמור לשאת

Version 2.431.0

Added

  • מנוע פריסה ועיבוד חדש של THPDFTable (יחידת HPDFTable) מפרוס טבלאות מרוחבי עמודות ושורות מוצהרים, עם לכל-תא עקיפות טקסט, יישור, צבע וגופן, מיזוג ColSpan / RowSpan, גלישת מילים אוטומטית עם גבהי שורות מדודים, רקעי כותרת ופסי-זברה, והמשך שבירת-עמוד אוטומטי שחוזר על רצועת הכותרת בכל עמוד -- כולם מניעים את פרימיטיבי הציור הקיימים של THPDFPage, כך שיצרנים כבר אינם מציירים תאים בעבודת-יד עם Rectangle ו-TextOut

Version 2.430.0

Changed

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

Version 2.428.0

Added

  • THPDFPage.TextOutHTML זוכה לעומסת גלישת מילים שלוקחת MaxWidth ושוברת שורות ארוכות בגבולות מילים, בתוספת תגי קישורית מוטבעת (<a href>) וכתב תחתי/עילי (<sub>/<sup>); קישוריות מצוירות בכחול וקו תחתון ורושמות הערת URI לחיצה

Version 2.427.0

Changed

  • ריצות טקסט רצופות החולקות את אותו גופן וגודל אינן פולטות עוד את אופרטור Tf מחדש בכל קריאה, מכווצות זרמי תוכן במסמכים עתירי גופנים (טבלאות, פסקאות) תוך כדי פליטה מחדש לאחר שחזור מצב גרפי (Q) כאשר PDF דורש זאת
  • קירוב האליפסה של THPDFPage משתמש כעת בקבוע קאפה בזייה מעוקבת תקני 0.5522847498, תואם לכל יישום אליפסה ומעגל אחר ביחידה ומסיר את הסטייה הקטנה התלויה ברדיוס שקירוב 11/20 הקודם ייצר

Version 2.426.0

Added

  • המציג מחמם כעת מראש את מטמון העמודים המעובדים עבור העמודים הסמוכים לזה שהוצג זה עתה, באמצעות תהליכון רקע באותו DPI כך שהפיכת העמוד הבאה תפגע במטמון במקום לעבד מחדש באופן סינכרוני; המאפיין החדש PrefetchRadius שולט בכמה עמודים בכל צד מחוממים מראש (0 משבית זאת)

Version 2.425.0

Added

  • המעבד של עמודים טעונים מפענח ומצייר כעת תמונות מוטבעות (BI/ID/EI) במקום לדלג עליהן, מרחיב את זוגות המפתח/ערך המקוצרים של תמונה מוטבעת והבתים הגולמיים בזמן האסימון ומניח את התוצאה דרך אותה מיפוי CTM של ריבוע יחידה המשמש עבור XObjects של תמונה

Version 2.424.2

Changed

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

Version 2.424.1

Changed

  • המטמון המשוקלל של תמונות מפוענחות וגופני תת-קבוצה פותר כעת חיפושים דרך אינדקס גיבוב ומתחזק סדר האחרונים-בשימוש דרך רשימה דו-קשורה מבוססת-אינדקס, הופך כל Get, Put וקידום עדכניות מהזזת מערך O(n) לעבודת O(1), כך שעיבוד מסמכים רב-תמונה גדולים אינו מתדרדר עוד ככל שהמטמון מתמלא

Version 2.424.0

Changed

  • CompressLoadedDocument מכבד כעת את CompressionLevel, מעבד זרמי מקור בנתחים מוגבלים, שומר על המטען המקורי כאשר דחיסה אינה מכווצת אותו, משחרר בבטחה זרמים מוחלפים ומסמן אובייקטי זרם מותמרים כמלוכלכים כך ש-SaveLoadedDocument ישמור את התוצאה במקום לקחת נתיב העתקת הקובץ הלא-משתנה.DecompressLoadedDocument משתמש באותו נתיב זרימה בטוח-בעלות, מסיר /DecodeParms זהות ומשאיר זרמי מנבא TIFF או PNG דחוסים עד ששלב המנבא יכול להיות מפוענח בבטחה

Version 2.423.0

Added

  • THPDFPage.AddCertificationSignatureField ו-ConfigureCertificationSignature יוצרים כעת את חתימת האישור היחידה של DocMDP עם כל שלוש רמות ההרשאה וקישור Catalog /Perms /DocMDP תואם, בעוד AttachSignatureFieldLock פולט מדיניות SigFieldLock עקיפה והפניות FieldMDP תואמות עבור היקפי שדה All, Include או Exclude.THotPDF.GetLoadedSignaturePermissions מבצע בדיקה מבנית מוגבלת של אותו גרף הרשאות, לרבות ישירות נדרשת, קישור שורש, הסכמת מדיניות ואבחון, מבלי לבלבל את מבנה המדיניות עם תקפות קריפטוגרפית או עמידה בתיקונים מאוחרים יותר

Version 2.422.0

Added

  • Watermark / header / footer placeholder tokens now resolve document metadata: <%Author%> / <%Title%> / <%Subject%> / <%Keywords%> / <%Producer%> are substituted alongside the existing <%PageNo%> / <%TotPage%> / <%FileName%> / date-time tokens when the new HPDFReplaceWatermarkPlaceholders overload is given a THPDFPlaceholderDocInfo record. The legacy 4-parameter signature stays for callers that only need the page / file / date-time subset

Version 2.421.0

Added

  • THPDFActionBuilder.GoToEmbeddedNamedDestination and GoToEmbeddedPage create PDF 1.6 GoToE actions with standards-valid parent, EmbeddedFiles name-tree, attachment-annotation, and nested /T target paths, while preserving named or explicit destinations, optional root file specifications, NewWindow, action chaining, and PDF/A/PDF/X restrictions
  • Loaded action inspection now recognises all 18 ISO 32000-1 action subtypes and returns ordered, non-executing THPDFLoadedActionInfo snapshots from catalog /OpenAction and /AA, page /AA, annotation /A and /AA, AcroForm field /AA, and outline /A sources. Dictionary and array /Next forms preserve execution order, while malformed entries, shared nodes, cycles, excessive depth, and excessive node counts stop safely with diagnostics
  • Annotation action and JavaScript trigger enums now include page-open /PO, page-close /PC, page-visible /PV, and page-invisible /PI events with the required PDF 1.5 version negotiation

Version 2.420.0

Added

  • Content-stream device stage 3 closes the abstraction loop: IHPDFContentDevice gains DrawXObject / DrawShading / ApplyExtGState for the Do / sh / gs operators, and the shared interpreter now dispatches them. Do is gated on cdcNeedImages so text/enum devices skip the heavy image decoding; sh and gs dispatch unconditionally. The renderer's ExecuteViaDevice path can now paint the full operator set (paths + colours + text + images + shading + ExtGState), observably equivalent to the legacy HandleOperator path. The ApplyExtGState nested procedure was promoted to a class method (DoApplyExtGState) so the device path shares it without duplication; method-resolution clauses route the three new interface entries to Dev* helpers without colliding with the pre-existing private helpers
  • Document-content observer pattern: THotPDF.OnLoadedDocumentModified event fires from InvalidateRenderedPageCache (PageIndex = -1, whole document) and InvalidateRenderedPageCachePage (a specific page) so attached viewers refresh automatically. THPDFViewer subscribes in SetDocument and unbinds on detach / opRemove, calling RefreshDocument when the current page (or the whole document) is affected. Multi-view sync (several viewers on the same THotPDF) now works without each caller invoking RefreshDocument by hand

Version 2.419.0

Added

  • Content-stream device abstraction stage 1: IHPDFContentDevice gains the text callback surface (BeginText / EndText / UpdateFont / UpdateCharSpace / UpdateWordSpace / UpdateHorizScale / UpdateLeading / UpdateRenderMode / UpdateRise / TextMove / TextSetMatrix / TextNewLine / ShowText / ShowTextArray) mirroring the PDF text state machine; the shared HPDFInterpretContentStreamDevice dispatcher now forwards BT/ET/Tf/Tc/Tw/Tz/TL/Tr/Ts/Td/TD/Tm/T*/Tj/TJ/'/" to the device when it declares cdcNeedText
  • THPDFTextExtractDevice is a concrete device that maintains the text matrices and emits one THPDFGlyphRecord per char code (decoded via an injected IHPDFFontResolver) — observably equivalent to HPDFInterpretTokens output but produced through the device interface so the same interpreter loop drives text extraction, path enumeration and rendering
  • HPDFExtractGlyphsViaDevice convenience function wraps the text-extract device + shared interpreter in one call; the existing HPDFInterpretContentStream / HPDFInterpretTokens stay untouched for current callers
  • Content-stream device abstraction stage 2: THPDFPageRenderer now implements IHPDFContentDevice so the shared dispatcher can drive it through the same abstract interface. ExecuteViaDevice is the opt-in device-driven render entry; the production Execute path keeps its built-in ExecuteStream / HandleOperator dispatch, so existing behaviour is unchanged. The renderer carries every piece of state the callbacks need (graphics-state stack, font cache, GDI handles, four paint bridges) and each device method is a thin delegation, so the device-driven route is observably equivalent to the legacy route

Version 2.418.0

Added

  • DecompressLoadedDocument is the inverse of CompressLoadedDocument: it walks every indirect stream carrying a /Filter /FlateDecode (name or single-element array form), inflates the payload back to raw bytes, strips the /Filter entry and fixes up /Length; streams with other filters (CCITT / DCT / JBIG2 / JPX / Crypt / RunLength) and multi-filter chains are left untouched, and corrupt Flate payloads are skipped rather than discarded
  • EnumLoadedPageElements now returns the full path geometry per ekPath element, not just the bounding box: two new fields PathPoints: array of THPDFPathPoint and PathIsCurve: array of Boolean are index-parallel and carry each segment’s user-space control points with a flag distinguishing cubic bezier segments from linear ones (m / l / re edges). Callers that only read the bbox are unaffected; CAD drawing extraction, table-line detection and vector-replay consumers can now rebuild the exact curves the page drew
  • New HPDFContentDevice unit introduces the content-stream device abstraction (stage 0): an IHPDFContentDevice interface with a TInterfacedObject base implementation (mirroring the proven IHPDFFontResolver pattern), a shared HPDFInterpretContentStreamDevice dispatcher that today covers the path / colour / state operator subset, and a concrete THPDFPathEnumDevice that collects one record per painted path with full point geometry. This breaks the three-way duplication between HPDFContentStream, HPDFPageRenderer.HandleOperator and HPDFCollectPathElements; stage 1 will add text/image callbacks and stage 2 will migrate the renderer onto the device

Changed

  • HPDFPageRenderer header comment updated: the “TrueType/CFF glyph-outline rendering out of scope” note was stale — embedded glyph outlines have been active since v2.342.0 (DrawTextRun calls THPDFEmbeddedTTF.DrawGlyph / THPDFEmbeddedCFF.DrawGlyph with real quadratic/cubic bezier paths; GDI TextOutW is only the fallback for unmapped characters). CID fonts via Identity-H + CIDToGIDMap are covered too

Version 2.417.0

Added

  • Five named loaded-document annotation helpers close the discovery gap where the existing ASubtype-parameterised helpers (AddLoadedHighlightAnnotation, AddLoadedSquareAnnotation, AddLoadedPolygonAnnotation) already produced these subtypes but callers had to know the secret: AddLoadedCircleAnnotation, AddLoadedUnderlineAnnotation, AddLoadedStrikeOutAnnotation, AddLoadedSquigglyAnnotation and AddLoadedPolylineAnnotation -- once landed, the XFDF interchange layer (which already recognises these subtype strings) picks them up for free
  • AddLoadedFileAttachmentAnnotation embeds an arbitrary file payload (PDF, image, office doc) as a FileAttachment annotation with the full three-object graph the spec requires: annotation dict / Filespec dict / EmbeddedFile stream with /Subtype MIME, /Params /Size and creation/modification dates; the new THPDFFileAttachmentIcon enum (faiPushPin / faiGraph / faiPaperclip / faiTag) selects the standard pin icon viewers render
  • THPDFFieldValidationOptions record + HPDFDefaultValidationOptions expose the full Adobe AF* parameter surface (Decimals / SeparatorStyle / NegativeStyle / CurrencySymbol / CurrencyBefore / RangeMin / RangeMax) that the Acrobat JS helpers accept; the existing ApplyLoadedFieldValidation(FieldIndex, Kind, DateFormat, Mask) signature is retained as a backward-compatible overload that forwards into the new record overload
  • ApplyFieldValidation and ApplyFieldCalculation bring the same Format+Keystroke+Validate / Calculate template to producer-mode fields (looked up by name) so newly-created forms get the same AF* scripts as loaded ones, without writing JavaScript by hand
  • CopyLoadedAnnotationsFromDocument deep-copies annotations from another loaded document directly PDF→PDF (no XFDF intermediary): reuses CopyObject to rebuild indirect references, streams and /AP appearances, rewrites /P to the destination page, optionally remaps /IRT reply chains via /NM, optionally clears /T author, and accepts a THPDFAnnotCopyFilterEvent callback for selective copy -- covers Widget/PrinterMark/TrapNet/Watermark/3D/Screen that the XFDF layer does not reach

Fixed

  • ApplyLoadedFieldValidation wrote the Format JavaScript under trigger key /X (annotation-exit), which Acrobat never fires for form fields -- the script was effectively dead. Corrected to /F so the format actually runs on field commit
  • ApplyLoadedFieldValidation emitted AFSpecial_FormatEx for the ArbitraryMask kind, a function that does not exist in the Adobe AF* set; only AFSpecial_KeystrokeEx(mask) is real, so the Format pass is dropped and enforcement happens at keystroke time as the spec intends
  • ApplyLoadedFieldValidation unconditionally appended AFRange_Validate(true,true,0,9999999) for numeric kinds, imposing a hidden 0..9999999 range the caller never asked for; range validation now only fires when the caller explicitly sets RangeMin or RangeMax in the options record
  • ApplyLoadedFieldValidation wrapped the ArbitraryMask in a JavaScript regex literal and emitted a hand-rolled validate script, but the mask is a literal format pattern ("AAA-9999"), not a regex; the validate pass is now removed and the keystroke mask carries the enforcement alone
  • ApplyLoadedFieldCalculation now prepends a Format+Keystroke number-formatting pair before the AFSimple_Calculate script so the aggregated result renders as a plain number, matching common PDF viewer behaviour (without it the Calculate value displays raw)

Version 2.416.0

Added

  • THPDFViewer now scrolls on hover-wheel without needing a click first: a thread-local WH_MOUSE hook (new HPDFMouseWheelHook unit, auto-installed from its initialization section) routes WM_MOUSEWHEEL to whichever THPDFViewer instance sits under the cursor, matching the behaviour of every native Windows PDF reader
  • THPDFViewer is now Per-Monitor DPI v2 aware: new HPDFPerMonitorDPI unit resolves user32!SetProcessDpiAwarenessContext (Win10 1703+, DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2) at runtime and falls back through shcore!SetProcessDpiAwareness (Win8.1+) and user32!SetProcessDPIAware (Vista+); the legacy HPDFEnablePerMonitorDPI is retained as an alias that forwards to the new layered helper
  • THPDFViewer.RenderAtPhysicalDPI published property (default True) makes the rendering DPI baseline track the monitor’s physical DPI via HPDFGetWindowDPI, so 100% zoom on a 144 DPI panel renders at native resolution; a new WMDpiChanged handler re-renders on cross-monitor moves; set False to preserve the historical 96-DPI logical baseline
  • Optional persistent disk tier for the rendered-page cache: setting THotPDF.RenderCacheFolder to a writable folder path persists every page rendered by RenderLoadedPageToBitmapCached as a PNG under <folder>\<SHA256-prefix-16>\<page>@<dpi>.png, so re-opening the same document later is instant; RenderCacheMaxDocuments (default 20) and RenderCacheMaxBytes (default 500 MB) bound the footprint with a true LRU eviction; the lookup order becomes in-memory → disk → rasterise, with disk hits back-filling the in-memory tier
  • THotPDF constructor now activates the highest available per-monitor DPI tier at first instantiation in runtime mode (skipped in csDesigning), so hosts that never call HPDFEnablePerMonitorDPI explicitly still get crisp rendering on high-DPI displays

Version 2.415.0

נוסף

  • HPDFParsePDFDate גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים+HH’mm, -HH’mm, or Zגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים TDateTime; HPDFFormatPDFDate גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים D:YYYYMMDDHHmmSS+00’00
  • GetLoadedExtGStateInfo reads LW / LC / LJ / ca / CA גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים GetLoadedShadingCount / GetLoadedShadingName and GetLoadedPatternCount / GetLoadedPatternName enumerate the /Shading and /Pattern resource sub-dictionaries
  • ReplaceLoadedPage גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים SwitchLoadedPages exchanges two pages, ReverseLoadedPages גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים ExtractLoadedPagesToPDF גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים GetLoadedPageInheritedBox גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים
  • GetLoadedFileSpecInfo גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים GetLoadedEmbeddedFileMIME returns the /Subtype, GetLoadedEmbeddedFileChecksum returns the /Checksum digest, and THPDFNameTreeType + GetLoadedNameTreeRootCount גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים
  • HPDFEnablePerMonitorDPI dynamically enables per-monitor DPI awareness; THPDFBackgroundRenderer גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים GetLoadedPageContentStreamCount reports whether /Contents גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים GetLoadedXMPValue גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים GetLoadedDocumentReport גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים

Version 2.414.0

נוסף

  • THPDFActionBuilder.URIWithIsMap גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים /IsMap true גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים URI גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים /URI string
  • AddLoadedCaretAnnotationEx גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים/Sy Pגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים
  • GetLoadedAnnotationDA גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים /DA גרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים

Version 2.413.2

תוקן

  • גרסה זו מסנכרנת את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים

Version 2.413.1

Fixed

  • Type1 and CFF font handling now preserves parser ownership across repeated stream checks and multi-font FontSets, returns stable glyph names and bounding boxes, keeps fractional font sizes and DPI scaling, and avoids composite-glyph and private-dictionary memory errors
  • The C++Builder AddDelPages, HugeFileBenchmark, and Security demos now compile for Win64, while page-operation and preflight examples release partially constructed objects safely

Version 2.413.0

Changed

  • The Delphi E-Invoice demo now validates required invoice fields, amount and VAT ranges, currency syntax, and embedded XML profile compatibility before writing output
  • The attach workflow now rejects identical source and output paths, reports the detected XML guideline, and combines container, PDF/A, XML profile, signature, visual consistency, Schematron, and external-report checks into one verdict

Fixed

  • E-Invoice generation and manual validation no longer report a successful result when an enabled validation layer finds issues
  • Loaded electronic-invoice summaries now read the invoice number, seller, and buyer from their correct XML aggregates, preventing false visible-text consistency findings

Version 2.412.0

Changed

  • All Delphi demos now resolve no-argument relative assets and outputs from their executable directory while preserving the caller working directory for command-line paths
  • Delphi command-line demos now provide stricter argument validation, failure exit codes, deterministic comparison inputs, and generated-document verification across page copying, text extraction, preflight, optimisation, inspection, and in-memory workflows

Fixed

  • Delphi demos no longer risk page-list overflow above 100 selected pages, create an extra blank page in the add-page workflow, close unrelated PDF viewer windows, or report failed preflight checks as successful
  • The E-Invoice attach workflow now rebuilds its current page correctly when a single-page source is converted, signed, and stripped of the temporary initial blank page

Version 2.411.0

Added

  • E-Invoice demo: new "Attach to existing PDF" mode converts an existing PDF to PDF/A-3, embeds a Factur-X/ZUGFeRD invoice XML as a document-level attachment, and optionally signs the result with a PFX certificate

Version 2.410.0

Added

  • Loaded AcroForm fields can now update flags, maximum length, text justification, per-widget rectangles, rotation, border colour, and visible or printable state, with widget enumeration for radio groups and other multi-widget fields

Fixed

  • Loaded field tooltip, border-width, and background-colour edits now mark the correct field or widget dictionaries dirty, apply visual properties to every widget, and invalidate only the affected page render cache

Version 2.409.0

Added

  • ActivateLoadedLinks turns bare HTTP, HTTPS, FTP, www., mailto:, and email text into positioned borderless URI annotations across a selected page range

Changed

  • Loaded link creation now persists reliably in incremental updates, while automatic activation snapshots existing links once per page, skips matching URI and rectangle pairs, and invalidates each changed page cache only once

Version 2.408.0

Added

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

Fixed

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

Version 2.407.0

Added

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

Fixed

  • טרנספורמציות קואורדינטות של הצופה שומרות כעת על ה-DPI הממשי של הרנדור מתחת ל-12 ומעל ל-2400, ובכך שומרות על בחירות מיושרות במגבלות הזום של 5% ו-6400%

Version 2.406.0

Added

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

Version 2.405.0

Added

  • THPDFPageLayout תומך כעת בפריסות כריכה פרוסה plTwoPageLeft ו-plTwoPageRight של PDF 1.5 עם משא ומתן אוטומטי על גרסה ונסיגה לגרסה קשיחה

Fixed

  • BeginDoc משמר כעת את פריסת הדף שנבחרה על ידי הקורא במקום להחליף אותה תמיד ב-plOneColumn

Version 2.404.0

Added

  • THPDFViewerModel מייצר צילומי מצב מודעי סיבוב של אזורי דפי PDF מוגבלים מבלי להקצות מפת סיביות של דף מלא

Version 2.403.0

Added

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

Version 2.402.0

Changed

  • פקודות זום של צופה משתמשות כעת ברמות סטנדרטיות יציבות מ-5% ועד 6400%, כולל ניווט הפיך סביב ערכים מותאמים אישית שרירותיים

Version 2.401.0

Added

  • THPDFViewer מוסיף זום של Ctrl+גלגלת, גלילה אנכית של הגלגלת וגלילה אופקית של Shift+גלגלת ללא רנדור מחדש עבור קלט של גלילה בלבד

Version 2.400.0

Added

  • THPDFViewer מוסיף ניווט דפים במקלדת, גלילה, קיצורי זום ובחירת מצב גודל אמיתי, התאם לרוחב או התאם לדף

Version 2.399.0

Added

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

Version 2.398.0

Added

  • THPDFViewerModel מייצר צילומי מצב וקטוריים מסוג EMF בבעלות הקורא של כל דף טעון או של התצוגה הנוכחית, כולל סיבוב תצוגה לא הרסני של 90 מעלות

Version 2.397.0

Added

  • THPDFViewerModel שומר צילומי מצב של דפים מודעי סיבוב כ-BMP,‏ JPEG או PNG לקבצים ולזרמים בבעלות הקורא עם איכות JPEG ניתנת להגדרה

Version 2.396.0

Added

  • THPDFViewer.ResetView משחזר גודל אמיתי, מנקה סיבוב תצוגה והדגשות חיפוש תוך שמירה על הדף הנוכחי, עם פעולות איפוס וסיבוב תואמות ועדכוני רנדור יחיד בקבוצה

Version 2.395.0

Added

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

Version 2.394.0

Added

  • THPDFViewerModel יכול לייצר צילומי מצב של דפים בבעלות הקורא ולשמור את הדף הנוכחי כ-BMP מבלי לבנות פקד צופה

Version 2.393.0

Added

  • THPDFLoadedFormField חושף כעת דגלי שדה, MaxLen, אינדקס דף, גבולות יישומון ומצבי Required,‏ NoExport,‏ Multiline ו-Password נפוצים
  • GetLoadedFormFieldMaxLength מספק גישה ישירה מבוססת אינדקס למגבלות האורך של שדות טקסט טעונים

Version 2.392.0

Added

  • SetDocumentAttachmentMetadata משנה את שמם של קבצים מצורפים משובצים ברמת המסמך ומעדכן את התיאורים שלהם לפני סריאליזציה

Version 2.391.0

Added

  • ExtractLoadedPagesTextToStream מזרים טקסט של דפים טעונים שנבחרו כ-UTF-8 עם מפרידים מותאמים אישית ופלט BOM אופציונלי
  • THPDFViewerModel מוסיף בדיקת פגיעה של שדות טופס וניווט מקלדת דטרמיניסטי על פני יישומוני הדף
  • THPDFSignatureInfo.CertificateTimeValidity מדווח על סיווגי תוקף קשורי תעודה וזמן חתימה

Fixed

  • שדות טופס טעונים ללא התייחסויות אחורה /P של יישומון יכולים כעת להיות ממופים דרך מערכי הערות דפים

Version 2.390.0

Added

  • THPDFWatermarkTemplate.MakeCurve ו-THPDFPage.AddCurveWatermark מוסיפים עקומות בזייה מעוקבות לחותמות מורכבות טעונות וליצירת מסמכים חדשים

Fixed

  • מגדירי מטא-נתונים של מסמך טעון מסמנים כעת את מילון ה-Info כמלוכלך כך ששינויי כותרת ומחבר יישמרו בשמירות מצטברות

Version 2.389.0

Added

  • InsertLoadedBlankPage מציג דף ריק עם מימדים מוגדרים על ידי הקורא במיקום מדויק במסמך הטעון
  • ExtractLoadedPagesText מאגד טקסט מטווח דפים מבוסס 1 עם מפריד מוגדר על ידי הקורא
  • GetLoadedFormFieldNameValuePairs ו-SetLoadedFormFieldNameValuePairs מספקים החלפת טפסים בקבוצה של name=value באמצעות TStrings
  • CMapResourcePath תומך בנתיבי פריסת CMap סטנדרטיים מפורשים עבור שירותים, תוספים ופריסות אפליקציה מותאמות אישית

Changed

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

Fixed

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

Version 2.388.0

Added

  • DeletePages חדש מסיר טווחי דפים מבוססי 1 מקובצי PDF טעונים, מסיר כפילויות מבחירות חופפות, מדווח על התקדמות ובונה מחדש עץ דפים תקין לשמירה
  • מיזוג הכנסה וצירוף דפים מקבלים כעת THPDFMergeOptions להעתקת תרשימים רקורסיביים, רישום שדות AcroForm מיובאים ושינוי שם דטרמיניסטי של שמות שדות סותרים
  • AddLoadedRadioButton חדש מייצר שדה רדיו אב אמיתי עם יישומוני בנים, ערכי ייצוא משותפים ומצבי מראה שלם של הפעלה/כיבוי
  • SearchLoadedNext חדש מספק חיפוש פגיעה הבאה מקומי לדף ללא מצב, בעוד ש-GetLoadedOutlineEntries מחזיר תצלומי מצב של תרשים רקורסיבי שלם עם נתוני אב ורמה
  • עומסי חתימה חדשים של מאגר תעודות Windows בוחרים תעודת משתמש נוכחי או מכונה מקומית לפי טביעת אצבע SHA-1 וחותמים באמצעות מפתחות פרטיים של CNG או CSP מיושנים
  • THPDFLoadedDocumentFacade חדש חושף אוספי תרשים, טופס, הערה, גופן ותמונה מוגדרים מראש עם עוזרי שינוי וחילוץ
  • מחלקה חדשה של THPDFViewer,‏ THPDFSearchPanel,‏ THPDFOutlineViewer, מודל צופה ופעולת צופה מוסיפות פקדי תצוגת דף, ניווט, זום, חימוש וסימניות VCL ניתנים לשימוש חוזר
  • הדגמות חדשות של הדפסה מתקדמת, אימות חתימה, תמונה ממוזערת של דף, ייצוא תמונה טעונה ובדיקת מסמך טעון מוגדרת מראש מכסות את תהליכי העבודה מקצה לקצה

Changed

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

Fixed

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

Version 2.387.0

נוסף

  • New PrefetchLoadedPages פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • CancelLoadedPagePrefetch פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים IsLoadedPagePrefetchActive פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים RenderLoadedPageToBitmapCached פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.386.0

Added

  • FlattenLoadedAnnotations חדש מצייר את המראה הרגיל של כל הערה לצמיתות לתוך תוכן הדף במלבן שלה ומסיר את ההערה, כך שסימונים ומראה טפסים שורדים בצופים המסתירים או שאינם יכולים לערוך הערות
  • המעבר עוקב אחר מילוני מצב מראה דרך /AS, מכבד את תיבת הגבול ומטריצת המראה בעת התאמת המלבן ויכול להיות מוגבל לתת-סוג הערה בודד או לטווח דפים

Version 2.385.0

Added

  • RenderLoadedPageRegionToBitmap חדש מרסטר רק חלון מרחב משתמש נבחר של דף ב-DPI המבוקש, כך שדפים גדולים מאוד יכולים להיות מרונדרים אריח אחר אריח בזיכרון מוגבל ברזולוציות גבוהות במקום כמפת סיביות אחת גדולה מדי
  • אריחים מתיישרים בדיוק: מפת הסיביות מכסה בדיוק את האזור המבוקש, כך שאריחים סמוכים מורכבים מחדש לדף המלא ללא תפרים

Version 2.384.0

Added

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

Version 2.383.0

Added

  • EnumLoadedPageElements מדווח כעת על אלמנטים של נתיב וקטורי לצד הרצות טקסט ותמונות: כל נתיב מצויר מניב אלמנט עם תיבת הגבול שלו במרחב המשתמש, אופרטור הציור (משיחה, מילוי או שניהם), צבעי המילוי והמשיחה שבתוקף וספירת המקטעים
  • מוליך הנתיב עוקב אחר קינון q/Q וטרנספורמציות cm, כך שצורות המצוירות בתוך בלוקים מוגדלים או מועתקים מדווחות על קואורדינטות הדף הממשיות שלהן

Version 2.382.0

Added

  • THPDFPrintOptions מקבל שדות Duplex (חד-צדדי, קצה ארוך, קצה קצר),‏ PaperBin ו-PrintQuality הדחופים למצב מכשיר המדפסת לפני תחילת העבודה; ערך Orientation מפורש מוחל כעת גם כן
  • HPDFGetInstalledPrinters חדש מונה את מדפסות המערכת, ו-HPDFGetPrinterCapabilities מדווח על תמיכה בדו-צדדי וצבע של מדפסת, ספירת עותקים מקסימלית, מגשי נייר (עם הקודים המתקבלים על ידי PaperBin) ורזולוציות נתמכות

Version 2.381.0

Added

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

Fixed

  • GetLoadedBookmarkPageIndex מוצא כעת סימניות מעבר לערך הראשון ברמה העליונה ובתוך רמות מקוננות; החיפוש הקודם התאים לסימניות מאוחרות יותר רק במקרה

Version 2.380.0

נוסף

  • New ImposeLoadedPagesNUp פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • New ImposeLoadedPagesBooklet פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים /XObject פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.379.0

Added

  • SaveLoadedPagesAsImages מקבל שני פורמטי TIFF: ‏ifTIFF כותב קובץ TIFF חד-דפי אחד לכל דף, ו-ifTIFFMulti מאגד את כל טווח הדפים ל-TIFF רב-דפי יחיד, המאחד את פלט ה-TIFF עם אפשרויות ה-BMP,‏ JPEG,‏ PNG,‏ EMF ו-WMF הקיימות
  • שני נתיבי ה-TIFF מכבדים את ה-DPI המבוקש של הרנדור בתגי רזולוציית התמונה ומשתמשם בדחיסת Deflate ללא אובדן נתונים

Version 2.378.0

נוסף

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

תוקן

  • Twelve single-operand content operators (Tc, Tw, Tz, TL, Ts, Tr, w, J, j, M, ri, iפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.377.0

Added

  • רנדור דפים טעונים מכבד כעת נראות של תוכן אופציונלי (שכבות): תוכן בתוך מקטעים מסומנים BDC /OC ואובייקטי XObjects הנושאים ערך /OC מוסתר כאשר השכבה שלהם כבויה, בהתאם לתצורת ברירת המחדל של המסמך (‏/BaseState,‏ /ON,‏ /OFF)
  • מילוני חברות בתוכן אופציונלי מעריכים את מדיניות /P שלהם (‏AnyOn,‏ AllOn,‏ AnyOff,‏ AllOff) על פני קבוצות החברים
  • ממשקי API חדשים של שכבות במסמכים טעונים: ‏GetLoadedOptionalContentGroupCount,‏ GetLoadedOptionalContentGroupName,‏ GetLoadedOptionalContentGroupVisible ו-SetLoadedOptionalContentGroupVisible לבחינה ועקיפה של מצבי שכבות עבור רנדור; עקיפות מרוקנות את מטמון הדפים המרונדרים אוטומטית

Version 2.376.1

Fixed

  • Loaded-page bitmap rendering now paints image XObjects: the Do, gs, and sh resource lookups previously missed their slash-prefixed operand names and skipped the object silently
  • The cm operator and Form XObject /Matrix values now concatenate in the correct order, so translate-plus-scale placement sequences (the standard image positioning idiom) land content at its intended page position

Version 2.376.0

Added

  • ממשקי API חדשים RegisterExponentialFunction,‏ RegisterStitchingFunction ו-RegisterPostScriptFunction מייצרים אובייקטי פונקציות עצמאיים מסוג Type 2,‏ Type 3 ו-Type 4 לשימוש בכל מקום שבו מתקבלת הפניה לפונקציה (הצללות, פונקציות נקודת רשת ומעבר של גווני ביניים, טרנספורמציות גוון)
  • RegisterPostScriptFunction מאמת את תוכנית המחשבון בזמן הרישום על ידי הערכת ניסיון, כך שתוכניות לא תקינות נדחות מייד במקום להתדרדר בשקט בצופים
  • RegisterSeparationFunc חדש מייצר מרחב צבעים Separation עם אובייקט פונקציית טרנספורמציית גוון שסופק על ידי הקורא

Fixed

  • רנדור טרנספורמציות גוון מסוג Type 2 (מעריכי) עם פלטים של רכיב אחד או שלושה אינו מצייר עוד שחור; בעבר רק פלטים של ארבעה רכיבים (CMYK) פוענחו כראוי
  • רנדור טרנספורמציות גוון מסוג Type 3 (תפירה) תומך כעת בכל מספר של תת-פונקציות, מחיל את המיפוי מחדש של /Encode ומקבל מערכי /Bounds בעלי איבר יחיד

Version 2.375.0

Added

  • רנדור דפים מעריך כעת פונקציות טרנספורמציית גוון מסוג Type 4 (מחשבון PostScript), כך שצבעי Separation ו-DeviceN והצללות מדרג צבע המונעים על ידי תוכניות מחשבון מרנדרים את צבעיהם האמיתיים במקום סימן מקום אפור
  • מעריך המחשבון מכסה את ערכת האופרטורים המלאה של ISO 32000-1 7.10.5: אריתמטיקה, השוואה, בוליאני וסיביות, מניפולציה של מחסנית ותנאי if/ifelse

Fixed

  • בחירת מרחב צבעים בעל שם (אופרטורי cs/CS) ברנדור דפים טעונים פותרת כעת שמות משאבים בצורה נכונה; בעבר החיפוש נכשל והתוכן נסוג למרחב הצבעים של ברירת המחדל
  • רנדור דפים טעונים עוקב כעת אחר הפניות עקיפות למרחבי צבעים מבוססי מערך כגון הגדרות /Separation ו-/DeviceN המאוחסנות כאובייקטים עצמאיים

Version 2.374.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת נתוני מראה ברירת מחדל של הערות סימן כתיבה (caret) דרך הבן <defaultappearance> וערך ה-DA של הערת ה-PDF

Version 2.373.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת גיאומטריית שוליים של הערות סימן כתיבה (caret) דרך תכונת fringe וערך ה-RD של הערת ה-PDF

Version 2.372.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת סיבוב הערות חותמת גומי דרך תכונת rotation וערך ה-Rotate של הערת ה-PDF

Version 2.371.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת יחסי תגובה של הערות טקסט דרך inreplyto,‏ replyType וערכי IRT ו-RT של הערת ה-PDF

Version 2.370.0

Added

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

Version 2.369.0

Added

  • שדות טקסט של XFA עם מדיניות גלילה מושבתת משתטחים כעת ליישומוני טקסט של AcroForm עם דגל אי-גלילה של PDF

Version 2.368.0

Added

  • שדות טקסט של XFA עם multiLine="1" משתטחים כעת ליישומוני טקסט של AcroForm עם דגל שורות מרובות של PDF

Version 2.367.0

Added

  • מגבלות גישה של תת-טופס XFA עוברות כעת בירושה ליישומוני בנים כך ששדות AcroForm שנוצרו נשארים לקריאה בלבד כאשר אב קדמון הוא readOnly,‏ protected או nonInteractive

Version 2.366.0

Added

  • השטחת רשימת בחירה של XFA ממפה כעת את commitOn="select" לדגל ביצוע בשינוי בחירה של AcroForm עבור שדות בחירה שנוצרו

Version 2.365.0

Added

  • השטחת רשימת בחירה של XFA ממפה כעת רשימות open="always" לתיבות רשימה של AcroForm בעלות בחירה יחידה במקום לתיבות משולבות נפתחות

Version 2.364.0

Added

  • השטחת רשימת בחירה של XFA ממפה כעת רשימות משולבות textEntry="1" לתיבות משולבות ניתנות לעריכה של AcroForm תוך שמירה על ערכים מוקלדים מחוץ לרשימת האפשרויות

Version 2.363.0

Added

  • השטחת רשימת בחירה של XFA מעדיפה כעת ערכי <items save="1"> כאשר שדה נושא רשימות אפשרויות נפרדות לתצוגה ולערך שמור

Version 2.362.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת תכונות justification ו-tail של FreeText דרך ערכי Q ו-IT של הערות ה-PDF
  • ברירות המחדל של מסמכי JBIG2 תואמות כעת להגדרות הידידותיות לסריקה המתועדות עבור רמת אובדן נתונים, ניקוי פיקסלים שחורים בודדים וגודל נקודה שחורה

Version 2.361.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת תכונות קו מנחה וכותרת סטנדרטיות, כולל leaderLength,‏ leaderExtended,‏ caption,‏ leader-offset,‏ caption-style, ערכי היסט כותרת ואת כתיב ה-leaderExtend בצד הייבוא המשמש קובצי XFDF תואמים

Version 2.360.0

Added

  • השטחת XFA מדכאת כעת פלט עבור שדות וציורים סטטיים המוסתרים על ידי presence="hidden",‏ presence="invisible" או presence="inactive", כולל צאצאים של מכלים מוסתרים

Version 2.359.0

Added

  • השטחת XFA ממפה כעת מגבלות ברמת השדה של access="readOnly",‏ access="protected" ו-access="nonInteractive" לדגל קריאה בלבד של AcroForm שנוצר

Version 2.358.0

Added

  • השטחת XFA משמרת כעת סמנטיקה של <choiceList open="multiSelect"> על ידי הגדרת דגל בחירה מרובה של PDF בתיבת הרשימה של AcroForm שנוצרה

Version 2.357.0

Added

  • השטחת XFA ממפה כעת שדות <ui><passwordEdit> לשדות טקסט של AcroForm עם דגל סיסמה של PDF, תוך שימור ערכים קשורים ומתן אפשרות לצופים להתייחס לשדה כקלט בסגנון סיסמה

Version 2.356.0

Added

  • השטחת XFA מכבדת כעת קישורי שדות מפורשים של <bind match="none">, כך ששדות המסומנים כלא קשורים נשארים ריקים במקום לקבל ערכים בעלי אותו שם מטופס ה-XFA או מחבילות מערכי הנתונים

Version 2.355.0

Added

  • השטחת XFA מכבדת כעת קישורי שדות מפורשים פשוטים של <bind match="dataRef" ref="..."> כגון $record.customer.legalName, כך ש-ApplyXFAAsAcroForm ו-FlattenLoadedXFA משמרים ערכים המאוחסנים תחת שם צומת נתונים שונה לפני התאמה אוטומטית של שם זהה

Version 2.354.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת בני BorderStyleAlt של הערות קישור דרך מערך ה-Border של הערת ה-PDF, כולל רדיוסי פינות, ערכי רוחב ותבנית קווים מקווקווים

Version 2.353.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת תכונות interior-color סטנדרטיות עבור הערות קו, מלבן, עיגול, מצולע, קו מפותל וטשטוש דרך מערך צבעי ה-IC של הערת ה-PDF

Version 2.352.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת תכונות סגנון גבול של הערה רגילה ואפקט גבול מעונן, כולל width,‏ dashes,‏ style ו-intensity

Version 2.351.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת טקסט עשיר של הערות דרך <contents-richtext> ומייבא גיאומטריית בן צץ ומצב פתוח לתוך מילוני Popup של ההערה

Version 2.350.0

Fixed

  • ייבוא/ייצוא של הערות XFDF משמר כעת תכונות נוספות של הערה רגילה: ערכי מצב פתוח וסקירה של טקסט, סגנונות קצוות קו, ערכי coords של קישור וטשטוש, סגנון ברירת מחדל של FreeText, מראה וסיבוב ברירת מחדל וגיאומטריית שוליים של מלבן או עיגול

Version 2.349.0

Fixed

  • ייבוא/ייצוא של הערות XFDF עוקב כעת אחר מבני ISO 19444-1 עבור קווים, מצולעים, קווים מפותלים והערות דיו: ייצוא קווים כולל זוגות קואורדינטות מלאים של start / end, נתוני מצולע וקו מפותל משתמשים באלמנטי בנים של <vertices>, נתוני דיו משתמשים ב-<inklist><gesture>, זוגות קואורדינטות מופרדים בנקודה-פסיק מיובאים בצורה נכונה ותתי-סוגי הערות שאינם נתמכים אינם מנפחים עוד את הספירה המיוצאת

Version 2.348.0

Added

  • מאפיין LoadedPageCount,‏ DuplicateLoadedPage,‏ AddLoadedBlankPage,‏ SetLoadedPageRotationValue ו-GetLoadedPageBoxRect משלימים את ה-API של פעולות דפים במסמך טעון — שכפול דפים, הכנסת מפרידים ריקים, הגדרת סיבוב וקריאת כל אחת מחמש תיבות הדפים בקריאה אחת
  • GetLoadedEncryptionMethod מחזיר את שם ההצפנה (‏RC4-40 / RC4-128 / AES-128 / AES-256),‏ GetLoadedFileStructureInfo מאגד ליניאריזציה / זרם אובייקטים / סוג xref בקריאה אחת, LoadedSourceFileSize הוא מאפיין ו-SetLoadedPDFVersion מעדכן את הגרסה
  • StampLoadedPageImage ו-StampLoadedPageImageFromFile מטמיעים אובייקט תמונה XObject מסוג JPEG (לוגו / תמונת חתימה / קוד QR) על דף טעון במלבן נתון, InsertLoadedText מצייר הרצת טקסט בשורה אחת ו-GetLoadedPageContentLength מחזיר את ספירת הבתים המפוענחים
  • THPDFPrintOptions מקבל את IgnoreHardMargin (קיזוז שוליים קשיחים של המדפסת כך שהתוכן לא ייגזר) ו-AutoRotate (דפים לרוחב יודפסו לרוחב אוטומטית)
  • SaveLoadedPagesAsImages מקבל את BMPPixelFormat / BMPMonochrome (ייצוא מונוכרומטי / 8 סיביות) ו-JPEGScale (פענוח JPEG עם תת-דגימה של 1 / 2 / 4 / 8 עבור תמונות ממוזערות מהירות)
  • CompressLoadedDocument דוחס ב-zlib כל זרם לא דחוס בגרף האובייקטים הטעון וכותב /Filter /FlateDecode, ובכך מקטין את גודל הפלט

Fixed

  • StampLoadedPageText and StampLoadedPageImage מפחיתים כעת את דחיסת זרמי התוכן מסוג FlateDecode בצורה שקופה לפני הוספת אופרטורים — בעבר החתמה על /Contents דחוס השחיתה בשקט את עומס ה-zlib והטקסט/תמונה שהתווספו נעלמו

Version 2.347.0

Added

  • AddLoadedOutline מייצר סימניה חדשה בקובץ PDF טעון בכל רמת קינון (‏ParentIndex = -1 עבור הרמה העליונה), עם יעד /Dest [page /XYZ x y zoom] — התכונה המבוקשת ביותר עבור מסמך טעון, ובכך סוגר את הפער שבו HotPDF יכול לקרוא/לשנות/למחוק סימניות אך לעולם לא לייצר אותן
  • SetLoadedOutlineDestination ו-SetLoadedOutlineURI כותבים מחדש את דף היעד של סימניה קיימת או מעבירים אותה לפעולת URI
  • ResolveLoadedNamedDestination הופך מחרוזת יעד בעלת שם לאינדקס דף מבוסס 0, ו-AddLoadedNamedDestination רושם עוגן חדש בעץ ה-/Names /Dests של המסמך הטעון
  • GetLoadedBookmarkPageIndex הוא חיפוש נוחות: העבר כותרת סימניה, קבל בחזרה את הדף שאליו היא מצביעה

Version 2.346.0

Fixed

  • איכות מתיחת התמונה מכבדת כעת את /Interpolate: מצב מתיחת HALFTONE משמש כברירת מחדל (הקטנה חלקה) ו-COLORONCOLOR כאשר התמונה מגדירה במפורש /Interpolate false, כך שתמונות רסטר קטנות שומרות על הקצוות החדים שלהן כפי שהתכוון היוצר במקום להטשטש תמיד

Version 2.345.0

Fixed

  • התאמות הריווח (kerning) במערך TJ אינן נזרקות עוד: האלמנטים המספריים בין הרצות המחרוזת מקדמים את מטריצת הטקסט לפי -value × FontSize / 1000, כך שכותרות צפופות וכיתוב לוגו מ-Word / Illustrator מציבים גליפים בהיסטים המיועדים
  • Tw (ריווח מילים) מופעל כעת גם על מרווח אידיאוגרפי CID (‏U+3000, קוד $3000), כך שטקסט יפני / סיני מיושר מקבל את ריווח המילים שלו במקום רק קוד ASCII 32
  • זיהוי עובי גופן / נטוי מתייעץ כעת ב-/FontDescriptor /Flags (ביט 18 ForceBold) ו-/ItalicAngle בנוסף לשם ה-/BaseFont, כך שגופנים עם תחילת תת-קבוצה ששמם אינו נושא סיומת -Bold עדיין מרנדרים במשקל הנכון

Version 2.344.0

Added

  • GetLoadedTrapped קורא את מפתח /Trapped ממילון ה-Info (‏True/False/Unknown), שבעבר היה לכתיבה בלבד — תהליכי עבודה של בדיקה מקדימה (preflight) של PDF/X יכולים כעת לבצע סבב מלא למצב המלכודת
  • GetLoadedDocumentMetadataXML מחזיר את בתי זרם מטא-הנתונים של ה-XMP הגולמיים כך שמסמכי PDF/A שמילון ה-Info שלהם חסר עדיין יכולים לחשוף את dc:title / dc:creator / xmp:CreateDate
  • GetLoadedCollectionInfo קורא את שם ה-/Collection של תיק עבודות PDF (עץ שמות ה-EmbeddedFiles עדיין נושא את רשימת הקבצים)
  • GetLoadedOutlineChild יורד רמה אחת לתוך עץ הסימניות, ומחזיר את הבן הראשון /First של ערך תרשים ברמה העליונה, כך שסימניות של פרק / תת-פרק מקוננות אינן בלתי נראות עוד
  • RotateLoadedPages מסובב כל דף בטווח בזווית נתונה (מצטבר על גבי /Rotate קיים), המקביל הקבוצתי לסיבוב של דף בודד
  • SetLoadedPageBoxForRange מגדיר תיבת דף (Media/Crop/Bleed/Trim/Art) עבור כל דף בטווח בקריאה אחת
  • GetLoadedViewerPreferences קורא כעת גם את HideWindowUI ו-CenterWindow, בהתאמה לששת המפתחות שהכותב פולט (בעבר רק ארבעה חזרו)

Version 2.343.0

תוקן

  • The W n / W* n פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים n פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים SelectClipPath פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים re ... W n פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • SetMiterLimit פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים d0 פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים d1 פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים d0 glyph

נוסף

  • ri פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים i פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםRenderingIntent / Flatness פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.342.0

Added

  • אופרטור מצב רנדור טקסט Tr נצרך כעת; מצב 3 (בלתי נראה) מדלג על ציור הרצת הטקסט לחלוטין, כך ששכבת הטקסט הנסתרת של OCR / רקע טופס אינה מצוירת עוד כגליפי זבל חופפים — מקרה ה-Tr הנפוץ ביותר בקובצי PDF מהעולם האמיתי; מצבים 1 / 2 (משיחה) נסוגים כעת למילוי עד לתמיכה בקווי מתווה של גליפים בודדים
  • אופרטורי תוכן מסומן BMC / BDC / EMC וגרסאות המאפיינים DP / MP מתחזקים כעת מונה עומק במרנדר, התנאי המוקדם להערכת נראות OCG / OCMD בסיבוב מאוחר יותר; אופרטורי תאימות BX / EX מתחזקים מונה משלהם כך שהמרנדר יודע שהוא נמצא בתוך בלוק תאימות

Version 2.341.0

Fixed

  • אופרטורי הקיצור של בזייה v ו-y מטופלים כעת על ידי מרנדר הדפים, שבעבר נדלגו בשקט — מלבנים מעוגלים, עיגולים והעקומות המיוצרות על ידי Illustrator / PowerPoint / InDesign מרנדרים כראוי במקום להיקטע או להיזרק
  • DrawTextRun מכבד כעת את Tz (קנה מידה אופקי של טקסט),‏ Tw (ריווח מילים, מוחל על גליף הרווח) ו-Ts (עליית טקסט) כך שייצוא מיושר מ-Word מציב גליפים ברוחב הנכון, כותרות המתוחות/כווצות אופקית שומרות על אורכן וטקסט עילי/תחתי עולה מעל קו הבסיס — בעבר שלושת ערכי מצב הטקסט הללו נשמרו אך מעולם לא נצרכו

Version 2.340.0

Added

  • SearchLoadedPageTextWholeWord מסנן את התאמות מחרוזות המשנה המיוצרות על ידי SearchLoadedPageText לאלו היושבות על גבולות מילים (הגליף שלפני תחילת ההתאמה ואחרי סוף ההתאמה אינו יכול להיות תו מילה), ובכך מספק התאמת מילה שלמה מבלי לרפד את מחרוזת החיפוש ברווח בסופה
  • GetLoadedSearchHitRect מכווץ את טווח הגליפים של התאמה למלבן גבול יחיד (Left/Top/Right/Bottom במרחב משתמש, מרופד בחלק מגודל הגופן), כך שצופה יכול לצייר תיבת הדגשה אחת לכל פגיעה במקום לעבור על מערך הגליפים

Version 2.339.0

Added

  • ExtractLoadedPageTextColumns משחזר טקסט מרובה עמודות: גליפים מקובצים לקווי בסיס על ידי טולרנס Y, כל שורה ממוינת לפי X, ושורה מתפצלת לעמודות נפרדות (מופרדות בטאב) בכל מקום שבו המרווח בין גליפים עוקבים עולה על מכפלה ניתנת להגדרה של התקדמות הגליף החציונית — המקביל המודע לעמודות של ExtractLoadedPageTextLayout שבעבר הגדיר גילוי עמודות מחוץ לתווך
  • THPDFPageElement נושא כעת BaselineRole (‏brNormal / brSuperscript / brSubscript) המאוכלס על ידי EnumLoadedPageElements: הרצה שגודל הגופן שלה קטן באופן ניכר מחציון הדף ושמקור ה-Y שלה יושב מעל או מתחת לקו הבסיס הדומיננטי מסומנת

Version 2.338.0

Fixed

  • אובייקטי תמונה XObjects ממוקמים כעת על ידי טרנספורמציה של ריבוע היחידה דרך ה-CTM הנוכחי, במקום להימתח על פני כל מפת הסיביות של הדף — ה-StretchDraw(Rect(0,0,W,H)) הקודם מיקם באופן שגוי כל תמונה בדף; תמונות נוחתות כעת במלבן שזרם התוכן מגדיר בפועל

Added

  • תמונות מסכה /ImageMask מזוהות בצד הרנדור ומצוירות בצבע המילוי הנוכחי (PDF 8.9.6.1), בעוד שהמרנדר צייר אותן בעבר כמפת סיביות פשוטה בגווני אפור

Version 2.337.0

Added

  • סגנון משיחה בצד הרנדור: מרנדר הדפים מכבד כעת את האופרטורים J (קצה קו: butt/round/square),‏ j (חיבור קו: miter/round/bevel),‏ M (מגבלת זווית חדה) ו-d (מערך קו מקווקו + פאזה) על ידי בניית עט גיאומטרי באמצעות ExtCreatePen במקום ה-CreatePen(PS_SOLID, ...) הקבוע הקודם, כך שחיבורים מעוגלים, גבולות מקווקווים וקצוות קו מרובעים מרנדרים כראוי
  • אופרטור gs (מצב גרפיקה מורחב ExtGState) בצד הרנדור: מילון ה-ExtGState בעל השם ב-/Resources/ExtGState נצרך כעת עבור LW / LC / LJ / ML / ca / CA ומוחל על מצב הגרפיקה, שבו המרנדר שמט בעבר את האופרטור לחלוטין
  • מצב הגרפיקה הורחב עם השדות LineCap / LineJoin / MiterLimit / LineDash / DashPhase / FillOpacity / StrokeOpacity, כולם עם ערכים התחלתיים של ברירת מחדל של PDF

Fixed

  • גזירה (W / W*) מגדירה כעת את מצב מילוי הפוליגון של GDI (‏ALTERNATE מול WINDING) לפני SelectClipPath, כך שהצטלבויות גזירה של זוגי-פרט ופיתול שאינו אפס אינן זהות עוד

Version 2.336.0

Security

  • מנתח מרחב הצבעים /Indexed בצד הרנדור קובע כעת את HiVal לטווח [0..255] כנדרש במפרט, ובכך סוגר וקטור של קריאת יתר מהבאפר שבו HiVal לא תקין איפשר ל-nComps × indexHigh להציף ספירת בתים של 32 סיביות ולקרוא מעבר לטבלת החיפוש

Added

  • AttachLoadedAnnotationMeasure כותב מילון /Measure (מפרט PDF 1.7 סעיף 12.5.6.13) על הערת קו או מצולע, הנושא את מערך ה-/NumberFormat (תווית יחידה, סגנון עשרוני/שבר/עיגול, דיוק), את יחס ה-/Scale ואת מקדם האיזוטרופיה /CYX — כך שצופה יכול לחשב את המרחק או השטח הממשיים שהצורה מקיפה

Version 2.335.0

Added

  • אופרטור sh (הצללה) בצד הרנדור: הצללות ציריות (Type 2) ורדיאליות (Type 3) מצוירות כעת במקום להיזרק בשקט, כך שקובצי PDF שרקעיהם מסתמכים על מדרגי צבע בסגנון Word/Excel מרנדרים את ערבוב הצבעים שלהם; ההצללה מחולקת לפסים לאורך הציר שלה וכל פס ממולא בצבע שפונקציית ההצללה מעריכה באותה נקודה

Version 2.334.0

נוסף

  • Render-side function-object evaluator HPDFEvalTintTransform פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםC0 + xN·(C1-C0) פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים Separation / DeviceN פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.333.0

Added

  • מרחבי צבעים מבוססי CIE בצד הרנדור: ‏CalGray,‏ CalRGB (גמא + מטריצה של 3×3) ו-Lab (מ-Lab ל-XYZ ול-sRGB עם קוביית נקונדת שבירה של 6/29) נפתרים כעת לצבעים אמיתיים במקום להתדרדר לשחור; מטריצת ה-sRGB מותאמת ברדפורד נשמרת במטמון לכל נקודה לבנה כך שהעבודה לכל פיקסל נשארת כפל 3×3 יחיד
  • מרחב צבעים ICCBased בצד הרנדור נפתר דרך ה-/Alternate שלו (או ניחוש DeviceRGB/Gray/CMYK מבוסס N כאשר Alternate חסר), כך שדפים הנושאים פרופיל ICC מוצגים כראוי ללא תלות ב-lcms
  • מרחבי צבעי מעבר (spot-colour) מסוג Separation ו-DeviceN בצד הרנדור: המרחב החלופי, הפניה לפונקציית טרנספורמציית גוון וספירת הרכיבים מנותחים; טרנספורמציית הגוון מחוברת דרך מעריך הניתן לחיבור כך שדפי צבעי מעבר ניתנים להבחנה מ-"צבע לא מוגדר" (הערכת גוון מלאה מגיעה למנוע הפונקציות)
  • אופרטורי צבע גנריים cs / CS / sc / SC / scn / SCN מטופלים כעת על ידי מרנדר הדפים, התנאי המוקדם לכך שכל מרחב צבעים שאינו Device ייכנס לתוקף בדף טעון
  • פתרון צבעים מאוחד באמצעות HPDFResolveColor עם רשומות THPDFColorSpaceFamily ו-THPDFCIEParams המורחבות, המחליף את הלוגיקה הייעודית לכל מרחב

Version 2.332.0

Added

  • RenderSignatureFieldAppearance מצייר תבנית מראה מוגדרת מראש של שדה חתימה — גבול, מילוי בהיר ועד ארבע שורות טקסט עם תוויות ("נחתם דיגיטלית על ידי <Name>", "סיבה: \", "מיקום: \", "תאריך: \") — שנבחרה באמצעות THPDFSignatureDisplayOptions המוגדר כעטיפת נוחות סביב AttachSignatureFieldAppearance
  • EnumerateSystemCertificates עובר על מאגר תעודות של Windows (בדרך כלל MY / ROOT / CA) באמצעות Crypt32.dll הנטענת דינמית ומחזיר שמות תצוגה של נושא / מנפיק פלוס ה-DER הגולמי עבור כל תעודה, אבן הבניין עבור ממשק משתמש של חותם לבחירת תעודה / מפתח USB

Security

  • אלגוריתם הגיבוב של החתימה הוא SHA-256 כברירת מחדל עם ערך זרע PAdES של DigestMethods שכבר מקבל SHA-256 / SHA-384 / SHA-512, כך שלא קיים נתיב חתימה של SHA-1

Version 2.331.0

Added

  • RenderLoadedPageToDC מצייר דף אחד ישירות לתוך קשר מכשיר שסופק על ידי הקורא (קנבס מדפסת, משטח מחוץ למסך, TCanvas מותאם אישית), ומסיר את סבב מפת הסיביות עבור הדפסה ותהליכי עבודה של DPI גבוה
  • RenderLoadedPageToClipboard מציב דף בלוח הגזירים כמתמונת סיביות של 24 סיביות או כמטא-קובץ מורחב (טקסט וקטורי), כך שהדבקה לתוך Word / הדבקה לתוך עורך תמונות פשוט עובדת
  • PrintLoadedDocument עם רשומת THPDFPrintOptions מריץ את ה-VCL TPrinter דרך טווח דפים, DPI, עותקים, איסוף, התאמת קנה מידה של FitPage ורנדור לכל דף — ספריית המסמכים שולחת כעת נתיב הדפסה משלה במקום להשאיר לכל קורא לחבר אחד כזה

Version 2.330.0

Added

  • GetLoadedPageLabel קורא בחזרה את טווח ה-/PageLabels /Nums המכסה אינדקס דף נתון, ומחזיר את קוד הסגנון, הקידומת ומספר ההתחלה — המקביל לקריאה של SetLoadedPageLabel, כך שתוויות שהקורא לא יצר בעצמו ניתנות לבחינה ולמעבר סבב מלא
  • StitchLoadedPageSideBySideEx מבצע את תפירת ה-2-up זה לצד זה עם מרווח אופקי וגורם קנה מידה של דף מקור ניתנים להגדרה, בעוד שה-StitchLoadedPageSideBySide המיושן היה קבוע לחצי רוחב ללא מרווח

Version 2.329.0

Added

  • AddLoadedRubberStampAnnotation עם אנאום THPDFRubberStampIcon המכסה את כל 14 שמות החותמות הסטנדרטיים (Approved, AsIs, Confidential, Departmental, Draft, Experimental, Expired, Final, ForComment, ForPublicRelease, NotApproved, NotForPublicRelease, Sold, TopSecret) כך שצופים מרנדרים את מפות הסיביות המוכרות ללא זרם מראה מותאם אישית
  • SetLoadedAnnotationCloudyBorder הופך הערת מלבן / עיגול / מצולע לגבול מעונן על ידי כתיבת /BE /S /C /I פלוס מערך הצבע הפנימי /IC
  • SetLoadedLineAnnotationCaps מגדיר את סגנונות קצוות הקו /LE (ראש חץ) עבור הערות קו / קו מפותל מתוך האנאום החדש THPDFLineEndStyle (None / OpenArrow / ClosedArrow / Butt / ROpenArrow / RClosedArrow / Slash / Diamond)

Version 2.328.0

Added

  • EnsureLoadedFieldAppearanceStream מייצר אובייקט Form XObject מסוג /AP /N עבור שדה AcroForm קיים מתוך ה-/DA + /V + /Rect שלו, כך שצופים המתעלמים מ-/NeedAppearances עדיין מרנדרים את ערך השדה ללא סבב מלא דרך Acrobat
  • ApplyLoadedFieldValidation מצמיד שלישיית תסריטי Format / Keystroke / Validate לשדה באמצעות עוזרי AF* של Acrobat, ומכסה סוגי קלט של מספר, אחוז, תאריך, שעה, מטבע, מיקוד, מספר ביטוח לאומי, טלפון ומסכה שרירותית — הקורא אינו צריך עוד לכתוב ידנית JavaScript של AFNumber_Format / AFDate_FormatEx / AFRange_Validate
  • ApplyLoadedFieldCalculation מצמיד תסריט AFSimple_Calculate כך ששדה מאגד את הערכים של קבוצת שדות מקור בעלי שם באמצעות סכום / ממוצע / מכפלה / מינימום / מקסימום

Version 2.327.0

Added

  • חיפוש והחלפה חזותיים SearchAndRedactReplaceLoaded: עבור כל פגיעה של המחט הוא מכסה את מלבן ההתאמה בצבע שנבחר (או מדלג על המסכה עם HPDF_NO_MASK) ומחתים את טקסט ההחלפה מלמעלה, ומשלים את ReplaceLoadedPageText ברמת הבתים כאשר הגופן המקורי חסר טבלת קוד תווים הפוכה או שההחלפה זקוקה לגופן אחר
  • חילוץ טקסט מאזור GetLoadedPageTextInRegion מאחד כל גליף שמקורו נופל בתוך מלבן במרחב המשתמש, עם שורות חדשות בין קווי בסיס — אבן הבניין עבור תהליכי ממשק משתמש של "העתק טקסט מתיבה זו"
  • SearchLoadedFirst בסגנון סמן מחזיר את ההתאמה הראשונה כ-THPDFTextMatch יחיד, כך שקוראים יכולים לעבור על פגיעות מבלי לנהל מערך התאמות שלם

Version 2.326.0

Added

  • מאפיין MeasurementUnit לכל המסמך (‏muPoints / muPixels / muInches / muMM / muCentimeters / muTwips) כך שכל קואורדינטת יצירה ברמה גבוהה מומרת לנקודות PDF באמצעות ToPDFUnit / FromPDFUnit
  • החלפת סימני מקום בטקסט סימן מים: ‏<%PageNo%>,‏ <%TotPage%>,‏ <%FileName%>,‏ <%ShortDate%>,‏ <%LongDate%>,‏ <%ShortTime%>,‏ <%LongTime%> נפתרים לכל דף בעת החתמה, כך ש-“דף X מתוך Y” וחותמות עם תאריך הם קריאה אחת
  • מתודת דף AddTextWatermarkEx המשלבת החלפת סימני מקום, קואורדינטות מודעות ליחידה ורשומת THPDFWatermarkBase מאוחדת (זווית, אטימות, קביעות מיקום מראש)
  • עוזרי דף לסימני מים של צורות AddRectangleWatermark,‏ AddEllipseWatermark,‏ AddLineWatermark ו-AddPolygonWatermark, שכל אחד מהם עוטף את נתיבי היסוד בזוג מצב גרפיקה q/Q עם אלפא של מילוי/קו מתווה רשומה
  • רשומת THPDFWatermarkTemplate מאוחדת עם מפעלים של MakeText / MakeRectangle / MakeEllipse / MakeLine / MakePolygon פלוס סוג מורכב THPDFWatermarkTemplateArray
  • החתמת סימני מים במסמך טעון: StampLoadedPageText ו-StampLoadedPagesText מצרפים הרצת טקסט שקופה ומסובבת לדפים קיימים, תוך כיבוד ה-MeasurementUnit ואותה ערכת סימני מקום; StampLoadedPagesComposite מחיל מערך תבניות שלם (טקסט + צורות) על טווח דפים
  • בקרת סדר שכבות (Z-order) על חותמות במסמך טעון: Underlay = True מציב את זרם סימן המים לפני ה-/Contents הקיים באמצעות צורת המערך, כך שסימן המים מרונדר מאחורי תוכן הדף
  • EnumLoadedPageElements מחזיר הרצות טקסט (גליפים המאוגדים לפי קו בסיס + גופן) ומיקומי תמונות XObject כרשומות THPDFPageElement עם תיבות גבול
  • ייצוא רב-פורמטי SaveLoadedPagesAsImages: רסטר BMP / JPEG / PNG פלוס וקטור EMF / WMF, קובץ אחד לכל דף, עם DPI ניתן להגדרה, תחילית שם קובץ ואיכות JPEG
  • רנדור וקטורי GetLoadedPageMetafile של דף אחד ל-TMetafile באמצעות נתיב THPDFPageRenderer.ExecuteToDC החדש, השומר על טקסט ונתיבים וקטוריים ניתנים להגדרה עבור הדפסה, לוח גזירים ותהליכי עבודה של מיזוג

Version 2.325.3

Fixed

  • איגוד דוחות בדיקה מקדימה (preflight) בקבוצות אינו מציף עוד את ספירת סך הבתים כאשר קובץ קלט בודד הוא מעל 2 GB

Version 2.325.2

Fixed

  • שמירת מסמך מעל 2 GB עם זרמי אובייקטים פעילים (UseObjectStreams) אינה כותבת עוד זרם הפניות הצלבות (cross-reference) מושחת; היסטי האובייקטים ומיקום זרם הפניות ההצלבות, שצומצמו בעבר למספר של 32 סיביות, מועברים כעת כערכים של 64 סיביות לאורך כל הכתיבה

Version 2.325.1

Fixed

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

Version 2.325.0

Added

  • ייבוא EMF/WMF מרנדר כעת מדרגי צבע מלבניים של EMR_GRADIENTFILL (‏GRADIENT_FILL_RECT_H / GRADIENT_FILL_RECT_V) כדפוסי הצללה ציריים של PDF מסוג Type 2, תוך מיפוי של כל זוג צבעי TRIVERTEX לקריאת RegisterAxialGradient ומילוי המלבן בדפוס שנוצר; בעבר רשומה זו הייתה פעולה ריקה (no-op) מתועדת, כעת מלבני מדרג צבע של Word/Excel/PowerPoint בקובצי EMF מרנדרים עם ערבוב הצבעים הנכון משמאל לימין או מלמעלה למטה

Version 2.324.0

Added

  • ייבוא EMF/WMF מנתח כעת הערות EMR_GDICOMMENT, ומבחין בין סמני מעבר של Adobe PDF (‏0x416F4650 = "AoFP", MS-EMF §2.3.3) לסוגי הערות אחרים; כאשר סמן Adobe קיים, עומס ההערה נסרק עבור מילת המפתח pdfmark ומוצג דרך יומן ניפוי שגיאות (debug) כדי שמשתמשים יוכלו לזהות אילו יצרני EMF פולטים קטעי pdfmark של PostScript; סוגי הערות אחרים נשארים פעולות ריקות; הן HotPDF והן llPDFLib נשאו בעבר רק stub ריק עבור רשומה זו

Version 2.323.0

Added

  • ייבוא EMF/WMF מזהה כעת במפורש את EMR_GRADIENTFILL כפעולה ריקה מתועדת (דפוסי הצללה מסוג PDF Type 2/3 shading patterns יכולים לבטא מילוי מדרג צבע אך רנדור הצופה אינו עקבי ואינטרפולציית הגורוד של GDI לכל פיקסל אינה ממופה בצורה נקייה); בעבר רשומה זו נזרקה בשתיקה ללא כניסה בטבלת המקרים

Version 2.322.0

Changed

  • חתימה מבוססת PFX מנתבת כעת קלטים של 64 MB או יותר דרך חותם זרם מחולק לאריחים (HPDFCMSSignPDFStreamChunked) הסורק אחר סימני המקום /ByteRange/Contents בקריאות מתגלגלות של 256 KB, מעכל את שני חלונות טווח הבתים באמצעות HPDFCMSSHA256StreamRanges, ואז מעתיק את זרם הקלט לזרם הפלט תוך כדי תיקון בתיי סימני המקום תוך כדי תנועה, כך ששיא הזיכרון נשאר מוגבל על ידי באפר של 256 KB במקום כל גודל הקובץ; קלטים קטנים יותר שומרים על נתיב ה-Pos()Move() המהיר בזיכרון ללא שינוי

Version 2.321.0

Added

  • מילוני שימוש של קבוצת תוכן אופציונלי: SetOptionalContentGroupUsage מצמיד ערך /Usage ל-OCG רשום (PDF 1.7 §8.11.4.4 טבלה 100) כך שצופים מציגים/מסתירים שכבות אוטומטית לפי ההקשר; קטגוריות View / Print / Export כותבות <Category>StateON/OFF;‏ Zoom כותב זוג ממשי Min;‏ Language / Creator כותבים ערכי מחרוזת
  • העתקת תת-עץ של תרשים: THPDFDocOutlineObject.CopySubtree משכפל עמוקות את כל תת-העץ הבן של צומת תחת אב חדש, תוך העברת כותרת / צבע / מודגש / נטוי / פתוח תוך יצירת מספרי אובייקטים חדשים ויעדים חדשים
  • עוזרי טופולוגיית תרשים IsDescendant (פרדיקט בטוח מפני לולאות המשמש את MoveTo) ו-MoveTo (החלפת אב לצומת, ניתוק משרשרת האחים הישנה שלו וחיבור מחדש כבן האחרון של האב החדש, עם תחזוקה מלאה של /Prev / /Next / /First / /Last / /Count בכל אב קדמון מושפע)

Version 2.320.0

נוסף

  • Nested optional-content /Order tree: BeginOptionalContentOrderGroup / AddLayerToOptionalContentOrder / EndOptionalContentOrderGroup פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים /Orderפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים /OCGs פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.319.1

Fixed

  • טעינת קובץ PDF שבו תמונת JBIG2 המוטמעת משתמשת באפשרות קידוד האפמן הסטנדרטית (במקום קידוד אריתמטי נפוץ יותר של MQ) אינה נכשלת עוד לחלוטין: הטוען מנסה כעת שוב עם מנוע הפענוח החלופי לפני שהוא מוותר, כך שתמונות כאלה נטענות בהצלחה ללא קשר לאיזה מנוע פענוח מועדף

Version 2.319.0

שונה

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים ExecuteRecord פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםBeginPath seen, EndPath/AbortPath פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.318.0

Added

  • קבוצות כפתורי רדיו של תוכן אופציונלי: RegisterOptionalContentRadioGroup חדש מצהיר על קבוצות שכבות המוציאות זו את זו שבהן איברים מכבים זה את זה (PDF 1.7 §8.11.4.3 /RBGroups); שימוש טיפוסי הוא פנלי שכבות עם בחירה יחידה כמו "Draft / Review / Final"

Version 2.317.0

Added

  • THPDFDocOutlineObject.InsertBefore / InsertAfter מחברים אח חדש לתוך הרשימה המקושרת הדו-כיוונית של התרשים הקיים במיקום שרירותי, ומשלימים את העוזרים הקיימים AddChild (הוספה בסוף) ו-AddChildFirst (הוספה בהתחלה) כך שניתן לבנות עצי תרשים בכל סדר מבלי לנתק ולחבר מחדש צמתים
  • ייבוא EMF/WMF מזהה כעת במפורש את משפחת ה-ICM/פלטה (‏EMR_SETBRUSHORGEX,‏ EMR_SELECTPALETTE,‏ EMR_SETCOLORADJUSTMENT,‏ EMR_SETICMMODE,‏ EMR_CREATECOLORSPACE,‏ EMR_SETCOLORSPACE,‏ EMR_DELETECOLORSPACE,‏ EMR_GDICOMMENT) ואת המשפחה ללא מיפוי PDF (‏EMR_FRAMERGN,‏ EMR_INVERTRGN,‏ EMR_PAINTRGN,‏ EMR_FLATTENPATH,‏ EMR_WIDENPATH,‏ EMR_SETMETARGN,‏ EMR_OFFSETCLIPRGN,‏ EMR_PLGBLT,‏ EMR_POLYTEXTOUTA,‏ EMR_POLYTEXTOUTW), ומעביר ל-DC הייחוס של GDI היכן שרלוונטי מבלי לפלוט לזרם התוכן של ה-PDF; בעבר רשומות אלו נזרקו בשקט, כעת הן מתועדות ונשמרות עקביות עם צד ה-GDI

Version 2.316.0

Added

  • הדגמת JBIG2Benchmark חדשה מייצר ארבעה קובצי PDF מאותה סריקה סינתטית בת שלושה דפים, אחת לכל תצורת THPDFJBIG2Options (ללא אובדן נתונים לכל תמונה, LossyLevel=5 לכל תמונה, גלובליים מצטברים בין דפים, חילוץ סמלי מלבן), ומדפיסה כל גודל פלט כך שניתן להשוות ישירות את הפשרות בין ברירות המחדל הידידותיות לסריקה של גרסה 2.310.0, המצבר בין דפים של גרסה 2.314.0 ומצבי החילוץ

Version 2.315.0

Changed

  • מילון JBIG2 המצטבר בין דפים מבצע כעת חלוקה אוטומטית לקבוצות: ברגע שסך רוחב הגליפים המצטבר עובר 131,071 פיקסלים, המילון הנוכחי מוקפא, נפלט כזרם /JBIG2Globals אחד, והמצבר מאופס, כך שהקבוצה הבאה מתחילה זרם גלובליים חדש; הדבר משקף את השפיכה המבוססת על TotalWidth של llPDFLib ושומר על זרמי גלובליים בודדים בגודל שקוראים מטפלים בו ביעילות בהרצות סריקה גדולות מאוד

Version 2.314.0

Added

  • מילון סמלים JBIG2 מצטבר בין דפים: הצטרפות באמצעות THPDFJBIG2Options.AccumulateGlobalsAcrossPages := True (לצד מתגי UseSymbolDictionary +‏ UseGlobalSegments + נסיגה מקומית הקיימים) ותמונות icJBIG2 עוקבות של 1 סיבית משתפות מילון סמלים אחד ההולך וגדל בזיכרון וזרם עקיף /JBIG2Globals אחד, במקום שכל תמונה תפלוט מילון משלה; THPDFJBIG2SymbolDictionary חדש מחזיק את ערכת הגליפים המתמדת עם אותה התאמה עם/ללא אובדן נתונים שבה משתמש המקודד לכל תמונה; בדיקת העשן smoke_jbig2_accum_decode החדשה מאמתת ששני דפים בעלי פריסות גליפים שונות משתפים הפניה יחידה לאובייקט גלובליים ומפוענחים בחזרה לפיקסלים המקוריים ביט-אחר-ביט

Version 2.313.0

Added

  • זרמי מקטע גלובליים של JBIG2 המיוצרים על ידי מקודד מילון הסמלים המקומי ממוענים כעת לפי תוכן ברמת המסמך באמצעות THPDFJBIG2GlobalsPool, כך שתמונות המניבות גלובליים זהים בבייתים משתפות זרם עקיף /JBIG2Globals אחד במקום שכל אחת תפלוט זרם משלה; בדיקת העשן החדשה smoke_jbig2_globals_multi מכסה שלושה דפים של גליפים זהים המתכווצים לזרם גלובליים משותף יחיד

Version 2.312.0

Added

  • ייבוא EMF/WMF מכסה כעת את EMR_SCALEVIEWPORTEXTEX,‏ EMR_SCALEWINDOWEXTEX,‏ EMR_EXCLUDECLIPRECT,‏ EMR_CREATEDIBPATTERNBRUSHPT,‏ EMR_SETMITERLIMIT,‏ EMR_SETTEXTJUSTIFICATION ו-EMR_SETROP2, ובכך סוגר את פער שבע הרשומות מול llPDFLib כך שזרמי EMF שנפלטו על ידי שרשראות כלים ישנות יותר של GDI אינם משמיטים עוד בשקט רשומות אלו; SETMITERLIMIT ו-SETROP2 נכנסים לתוקף מייד, בעוד שהאחרים שומרים מצב עבור חיבור עתידי בצד הרנדור מבלי להפריע לפלט הקואורדינטות או הגזירה הנוכחי

Version 2.311.0

Added

  • HPDFCMSSHA256StreamRanges מעכל כעת את שני חלונות ה-PDF של /ByteRange ישירות מתוך TStream במקטעים של 256 KB, כך שקובצי PDF חתומים בגודל של מספר ג'יגה-בייט יכולים להיות מגובבים מבלי להעתיק תחילה את כל הקובץ לתוך AnsiString; הדבר סוגר את הפער מול CalcHash מבוסס הזרם של llPDFLib, שבו HPDFCMSSHA256ByteRanges הקיים בזיכרון לא יכול היה להתחרות עבור קלטים גדולים מאוד

Version 2.310.0

Changed

  • THPDFJBIG2Options מוגדר כעת כברירת מחדל להגדרות ידידותיות לסריקה (‏LossyLevel = 5,‏ RemoveIsolatedBlackPixels = True,‏ BlackDotSize = 3) כך שתמונות סרוקות של 1 סיבית נדחסות לגודל קטן בהרבה ישירות מהקופסה; הגדר LossyLevel = 0 או Lossless = True כדי לשחזר התאמה קפדנית ללא אובדן נתונים

Performance

  • גידול טבלת ה-xref הוא כעת גיאומטרי (מסמכים קטנים ‎+N, מסמכים גדולים יותר ‎+25%) במקום הקצאה מחדש של המערך הדינמי בכל אובייקט עקיף, ובכך מסיר את עלות ה-O(n²) ששלטה בטעינה ובבנייה של קובצי PDF גדולים עם אובייקטים רבים

Version 2.309.4

Added

  • נוסח THPDFDocOutlineObject.AddChildFirst כך שצומתי תרשים שנוצרו יכולים להוסיף פריט בן בהתחלה לפני אחים קיימים תוך שמירה על סדר התרשים השמור

Version 2.309.3

Added

  • נוסח pmUseOC ל-THPDFPageMode כך שמסמכים שנוצרו יכולים לבקש את פנל שכבות התוכן האופציונלי עם קטלוג /PageMode /UseOC

Version 2.309.2

Added

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

Version 2.309.1

Fixed

  • ניקוי THotPDF.OutputStream על ידי הקצאת nil משחזר כעת פלט FileName רגיל במקום להשאיר את המסמך במצב פלט זרם

Version 2.309.0

Fixed

  • ייבוא EMF/WMF מכבד כעת מצבי אזור EMR_EXTSELECTCLIPRGN עבור העתקה, חיתוך וגזירה של אי-הכללה, בעוד ש-EMR_SETWORLDTRANSFORM,‏ EMR_MODIFYWORLDTRANSFORM ו-EMR_SETPIXELV נשמרים מכוסים על ידי בדיקות רגרסיה שאינן של ממשק משתמש (non-GUI)

Version 2.308.0

Added

  • רישום בזמן עיצוב של תוסף FastReport נשלח כעת כ-frxHotPDFDesign, ומציב את TfrxHotPDFExport בפלטת FastReport VCL תוך שמירה על יחידת זמן הריצה הקיימת ונקודת הכניסה Register זמינות לצורכי תאימות

Version 2.307.0

Added

  • SignPDFWithPFX מנתח כעת קובצי PFX מוצפנים מסוג PKCS#12 PBE-SHA1-3DES מיושנים בנוסף לפרופילי PBES2 AES-256-CBC

Version 2.306.0

Changed

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

Version 2.305.0

Added

  • TfrxHotPDFExport.PageRange מאפשר כעת לייצוא FastReport לבחור בסינון דפים מבוסס 1 כגון 1,3-5 תוך שימוש חוזר במנתח טווחי הדפים המשותף של HotPDF

Version 2.304.0

Fixed

  • השטחת טבלאות XFA-to-AcroForm מאפשרת כעת לעמודות אוטומטיות בודדות הניתנות להרחבה מלאה לרשת את רוחב תוכן הטבלה, כך ששדות ללא רוחב w משלהם עדיין מקבלים רוחב מדיד ושומרים על ריווח שורות

Version 2.303.0

Fixed

  • השטחת טבלאות XFA-to-AcroForm מאפשרת כעת לתאי טקסט הניתנים להרחבה לרשת ערכי columnWidths קבועים כאשר הם משמיטים את הרוחב w משלהם, כך שגבהי השורות נמדדים והשורות הבאות נשארות מופרדות

Version 2.302.0

Fixed

  • השטחת XFA-to-AcroForm מודדת כעת שדות טקסט הניתנים להרחבה בתוך זרימות layout="tb" מקוננות וזרימות layout="lr-tb" עטופות, ושורות טבלה שומרות כעת על גובה תאי טקסט הניתנים להרחבה בעת מיקום השדות הבאים

Version 2.301.0

Fixed

  • השטחת XFA-to-AcroForm שומרת כעת שדות טקסט במכלי זרימה של layout="tb" ו-layout="lr-tb" כאשר הם משמיטים גובה h מפורש, ומודדת את גובה התוכן העטוף שלהם במקום לדלג עליהם כפריסה ניתנת להרחבה שאינה נתמכת

Version 2.300.0

Fixed

  • THotPDF.ExtractObjectFromStream מחזיר כעת את המילון המנותח עבור איברי זרם אובייקטים שהתממשו ואינו מייצר עוד מפתחות אבחון נתונים גולמיים כאשר קוראים בוחנים זרמי אובייקטים טעונים של PDF 1.5+

Version 2.299.0

Added

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

Version 2.298.0

Fixed

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

Version 2.297.0

Added

  • רשומת TDBGridHotPDFExportOptions ורכיב TDBGridHotPDFExport חושפים כעת את PDFACompliance ו-PDFXCompliance כך שייצוא טבלאות DBGrid יכול לבחור באותם שערי תאימות לתקנים של HotPDF המשמשים ליצירת מסמכים ישירה

Version 2.296.0

Added

  • TQRHotPDFExportFilter ו-TdxHotPDFExportOptions חושפים כעת את PDFACompliance ו-PDFXCompliance כך שייצוא QuickReport ו-DevExpress יכול לבחור באותם שערי תאימות לתקנים של HotPDF המשמשים ליצירת מסמכים ישירה

Version 2.295.0

Added

  • TfrxHotPDFExport ו-TppHotPDFDevice חושפים כעת את PDFACompliance ו-PDFXCompliance כך שייצוא דוחות יכול לבחור באותם שערי תאימות לתקנים של HotPDF המשמשים ליצירת מסמכים ישירה

Version 2.294.0

Added

  • בוני קנבס של Form XObject ותבניות אריח (tiling pattern) מאפשרים כעת לקוראים להרכיב משאבים לשימוש חוזר באמצעות עוזרי ציור מוגדרים לפני רישומם לשימוש חוזר בדפים
  • THPDFExtGStateOptions מאפשר כעת ל-ExtGState יחיד לשלב הגדרות אטימות, מצב ערבוב, רוחב קו, קצה קו, חיבור קו ומגבלת זווית חדה

Version 2.293.0

Added

  • קידוד JBIG2 מקומי תומך כעת בדחיסת מילון סמלים עם מילונים גלובליים משותפים אופציונליים, מצבי חילוץ של מלבן ותמונה בלבד, שומרי הבדלי פיקסלים עם אובדן נתונים ונסיגה של PDF/A ל-CCITT היכן ש-JBIG2 אינו מותר
  • רנדור EMF/WMF מטפל כעת ברשומות מפת סיביות של TransparentBlt ו-MaskBlt דרך נתיבי מסכת תמונה ואטימות של PDF
  • FastReport ו-ReportBuilder מצבי ייצוא מקומיים מכסים כעת פלט רב יותר ברמת האובייקט, כולל תזכיר/טקסט עשיר מעוצב, ברקוד, תמונה, צורה וקטורית, קו, גזירה, מסגרת, מקווקו ונתיבי הערות URL
  • הדגמות HugeFileBenchmark מדווחות כעת על מדדי working-set ו-peak-working-set, תומכות במגבלת זיכרון אופציונלית ושומרות על קובצי עבודה שנוצרו נפרדים מפלט הדוחות
  • הדגמת PDFOptimize של Delphi מתעדת כעת אפשרויות דחיסה בצד היצרן עבור זרמי תוכן, זרמי אובייקטים, איכות JPEG,‏ CCITT ופלט JBIG2

Fixed

  • בדיקות כיסוי של הדגמות כוללות כעת קובצי README של הדגמות בבסיס אנגלי, ממפות דוגמאות consolidated של C++Builder לקבצים הממשיים שלהן ושומרות על הדגמות GUI מושבתות כברירת מחדל בהרצות בדיקה שגרתיות

Version 2.292.32

Added

  • מברשות קוווקוו (hatch brushes) של EMF/WMF ממופות כעת לתבניות אריח של PDF כך שסרטוטי CAD ודוחות מיובאים יכולים לשמר מרקם קוווקוו במקום להשטיח מילויים אלו לצבע אחיד

Fixed

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

Version 2.292.31

Added

  • THPDFEmfOptions.ShowNullBrush מאפשר כעת לרנדור EMF/WMF לחשוף מילויים של null-brush לצורכי אבחון ותהליכי עבודה של ייבוא בסגנון CAD, בעוד שמילויים לא ממולאים נשמרים כברירת מחדל

Version 2.292.30

Added

  • THPDFEmfOptions.CanvasOver מאפשר כעת להרצת Canvas של הדף להציב תוכן PDF קיים מעל מטא-קובץ ה-Canvas המנותח, בעוד שברירת המחדל שומרת על הסדר הנוכחי שבו ה-Canvas מלמעלה

Version 2.292.29

Added

  • THPDFEmfOptions.Redraw מאפשר כעת לקוראי EMF/WMF לשמור על נתיב הציור מחדש הזמני של ברירת המחדל או לבטל אותו ולנתח את המטא-קובץ המקורי ישירות

Version 2.292.28

Added

  • THPDFEmfOptions.UseFrame מאפשר כעת לרנדור EMF/WMF לגזור פלט מיובא למסגרת כותרת ה-EMF עבור מטא-קבצים המסתמכים על גבולות מסגרת מוצהרים

Version 2.292.27

Added

  • THPDFEmfOptions.ShowNullPen מאפשר כעת לרנדור EMF/WMF לחשוף קווי מתווה של null-pen לצורכי אבחון ותהליכי עבודה של ייבוא בסגנון CAD, בעוד שעטים בלתי נראים נשמרים כברירת מחדל

Version 2.292.26

Added

  • THotPDF.SetFormFieldTooltip מאפשר כעת לאפליקציות להקצות רמזי שדה /TU של AcroForm לפי שם שדה עבור יישומונים שנוצרו באמצעות מתדות השדה Add... הקיימות

Version 2.292.25

Fixed

  • מצב אובייקט מקומי TfrxHotPDFExport משמר כעת גזירת TfrxPictureView ורנדור מסגרת כאשר תצוגות תמונה נכתבות ישירות כאובייקטי תמונה XObjects של HotPDF

Version 2.292.24

Added

  • מצב אובייקט מקומי TfrxHotPDFExport ממפה כעת תצוגות ברקוד חד-ממדיות אופקיות נתמכות של FastReport ישירות לאופרטורי ברקוד של HotPDF, תוך שמירה על טקסט קריא לבני אדם, יצירת סכומי ביקורת (checksum), טקסט משלים, סיבוב, פסים צבעוניים וסימבולוגיות שאינן נתמכות בנתיב הנסיגה הקיים

Version 2.292.23

Added

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

Version 2.292.22

Fixed

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

Version 2.292.21

Added

  • ל-THPDFPage.ShowMetafileEx יש כעת עומס יתר של THPDFEmfOptions לכל קריאה, המאפשר לקוראים לעקוף את הגדרות הרנדור של EMF/WMF עבור ציור מטא-קובץ בודד תוך שמירה על ברירות המחדל ברמת המסמך

Version 2.292.20

Added

  • TfrxHotPDFExport חושף כעת פקדי פלט של HotPDF עבור ייצוא FastReport, כולל AutoCreateURL,‏ FontEmbedding,‏ NotEmbeddedFonts,‏ ActivateProtection,‏ UserPassword,‏ OwnerPassword,‏ CryptKeyLength,‏ ProtectOptions ו-EncryptMetadata

Version 2.292.19

Added

  • נוספה יחידת תוסף ייעודית dbGridHotPDFDesign כך שחבילות זמן עיצוב יכולות לרשום את TDBGridHotPDFExport בפלטת ה-IDE של HotPDF בעוד שמתאם ייצוא זמן הריצה של DBGrid נותר שמיש ללא הפניות לחבילת זמן עיצוב

Version 2.292.18

Changed

  • HPDFParsePFX תומך כעת בפרופילי PBES2/PBKDF2 המשתמשים ב-HMAC-SHA-1 PRF כברירת מחדל כמו גם ב-HMAC-SHA-256 מפורש, ובכך משפר את התאימות עם ייצוואי AES-256-CBC PKCS#12 ישנים יותר בעוד שפרופילי PBE-SHA1-3DES שאינם נתמכים נדחים עם אבחון

Version 2.292.17

Added

  • נוספו THPDFTextOutBoxResult פלוס THPDFPage.TextOutBoxEx ו-THPDFPage.WideTextOutBoxEx כך שפלט תיבת טקסט עטופה יכול לדווח על מספר התווים שנכתבו, השורות שנכתבו, והאם הטקסט המקורי גלש מהתיבה בעוד שהשיטות הישנות ממשיכות להחזיר את מספר התווים שנכתבו

Version 2.292.16

Added

  • נוספה THPDFPage.TextFromBaseLine(Boolean) למעבר של פלט טקסט הדף בין סמנטיקת קואורדינטת Y של הקצה העליון ושל קו הבסיס, פלוס THPDFPage.AppendScopedRawContent לעטיפת אופרטורי תוכן גולמי מומחים בצמד שמירה ושחזור אוטומטיים של מצב הגרפיקה

Version 2.292.15

Changed

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

Version 2.292.14

Added

  • TppHotPDFDevice חושף כעת RenderMode לבחירה עבור ייצוא פקודות ציור מקומיות של ReportBuilder, הממפה פקודות טקסט, צורה, קו, תמונה והיפר-קישור URI נפוצות ישירות לפעולות דף HotPDF בעודו נסוג אוטומטית לגשר המטא-קובץ המורחב הקיים עבור דפים המכילים פקודות שאינן נתמכות

Version 2.292.13

Added

  • נוספה THotPDF.EncryptMetadata להצפנת סיסמת AES סטנדרטית כך שקוראים יכולים לכתוב /EncryptMetadata false, לשמור על זרמי XMP /Metadata כטקסט גלוי, ולפלוט את גזירת מפתח ה-AES-128 התואמת או דגל מטא-נתונים /Perms של AES-256 במקום להסתמך על התנהגות הצפנת מטא-נתונים קבועה של תמיד-פעילה

Version 2.292.12

Added

  • נוספו עטיפות שדות AcroForm בזמן יצירה דרך THPDFAcroFormField ו-THPDFPage.CreateTextField,‏ CreateCheckBox,‏ CreateRadioButton,‏ CreateComboBox ו-CreateListBox, המאפשרות הגדרת רמז צץ (tooltip) שרשיר, דגל משותף, מראה ברירת מחדל ופעולה נוספת לשדה או יישומון מיד לאחר יצירת השדה

Version 2.292.11

Added

  • נוספו עוזרי מסכת תמונה ברמה גבוהה, שקיפות, איכות JPEG לכל תמונה ודחיסה מונוכרומית אוטומטית: AddImageAsMask,‏ AddImageWithMask,‏ AddImageWithTransparency,‏ AddImageWithTransparency32,‏ AddImageWithJpegQuality,‏ AddMonochromeImageAuto ובורר דחיסת icAutoMono לבחירה

Version 2.292.10

Added

  • נוספו עוזרי נוחות לפעולות נוספות של שדות AcroForm עבור שרשראות THPDFActionBuilder, כולל עטיפות בעלות שם עבור /AA /K,‏ /AA /F,‏ /AA /V,‏ /AA /C, טריגרים של עכבר ומיקוד של יישומונים, ועוזרי ניקוי תואמים עבור רשומות טריגר של שדות והערות

Version 2.292.9

Added

  • נוספו עוזרי פעולות נוספות למחזור חיים של מסמך עבור שרשראות THPDFActionBuilder:‏ SetDocumentCloseAction,‏ SetDocumentWillSaveAction,‏ SetDocumentDidSaveAction,‏ SetDocumentWillPrintAction,‏ SetDocumentDidPrintAction ושיטות ניקוי תואמות הכותבות רשומות קטלוג /AA /WC,‏ /AA /WS,‏ /AA /DS,‏ /AA /WP ו-/AA /DP

Version 2.292.8

Added

  • נוספה תמיכה בפעולות נוספות של דפים שנוצרו עם THPDFPageActionTrigger, עוזרים לדף הנוכחי עבור SetPageAdditionalAction,‏ SetPageOpenAction,‏ SetPageCloseAction ושיטות ניקוי תואמות, פלוס עוזרים מונחי אינדקס דפים של THotPDF הכותבים פעולות /AA /O ו-/AA /C של דפים מתוך שרשראות THPDFActionBuilder לשימוש חוזר מבלי לשנות את דף הציור הפעיל

Version 2.292.7

Added

  • נוספו כתיבת תוויות דף של מסמכים שנוצרו וחרוזי שרשור מאמרים דרך THPDFPageLabelStyle,‏ THotPDF.SetPageLabel, חמשת עוזרי תוויות הדף הספציפיים לסגנון, THotPDF.ClearPageLabels,‏ THotPDF.RegisterArticleThread ו-THPDFPage.AddArticleBead

Version 2.292.6

Added

  • THPDFActionBuilder בונה כעת מילוני פעולות מתקדמים עבור Thread,‏ Sound,‏ Movie,‏ Rendition, נראות שכבות SetOCGState, מעברי דפים Trans ו-GoTo3DView, עם עוזרי ShowLayer,‏ HideLayer ו-ToggleLayer בתוספת מגבלות PDF/A/PDF/X

Version 2.292.5

Added

  • THPDFPage.SetAnnotationAdditionalAction ו-THotPDF.SetFormFieldAdditionalAction מחברים כעת שרשראות THPDFActionBuilder לשימוש חוזר למילוני טריגר /AA של הערות ושל AcroForm תוך החלפת הטריגר שנבחר בלבד ושמירה על מגבלות פעולה של PDF/A/PDF/X

Version 2.292.4

Added

  • THPDFNamesFacade מוסיף כעת עטיפות פונקציות JavaScript ותצלומי מצב של מערכים עבור JavaScript טעון ויעדים בעלי שם, THPDFActionBuilder בונה כעת פעולות הגשה/איפוס מונחות שדה ויעדי דפים מרוחקים, ומצב אובייקט מקומי של מתאם FastReport משמר רקעי תזכיר, יישור טקסט וסגנונות מסגרת

Version 2.292.3

Added

  • THPDFActionBuilder תומך כעת ביעדים בעלי שם מרוחקים ובפעולות Launch, ומצב אובייקט מקומי של מתאם FastReport ממפה כתובות URL של תצוגות להערות קישור URI של HotPDF

Version 2.292.2

Added

  • THPDFActionBuilder תומך כעת בפעולות GoToPage מונחות דף ישירות, עוזרי שמות קבצים של EMF/WMF מקבלים THPDFEmfOptions לכל קריאה, ומצב אובייקט מקומי של מתאם FastReport ממפה תצוגות תמונה ישירות לאובייקטי תמונה XObjects של HotPDF

Version 2.292.1

Added

  • רנדור EMF/WMF תומך כעת בעקיפות THPDFEmfOptions לכל קריאה דרך עומסי היתר ShowEnhancedMetafile,‏ EnhancedShowMetafile ו-ShowMetafile המשופר, כך שמטא-קובץ בודד יכול לבחור דחיסה, קנה מידה, DC ייחוס, מצב מתיחה והתנהגות עט מורחב מבלי לשנות את THotPDF.EmfOptions ברמת המסמך

Version 2.274.1

Fixed

  • תהליכי גליף Type3 המוצהרים עם d1 מתעלמים כעת מאופרטורים של בחירת צבע בתוך התהליך ומציירים תמיד עם צבע המילוי הנוכחי של הטקסט, כפי שדורש מפרט ה-PDF; גליפים המוצהרים עם d0 שומרים על הצבעים שלהם
  • הדיכוי חל רק בתוך הרצת הגליף מחדש (כולל אובייקטי טפסים מקוננים) ואינו משפיע לעולם על צבעים שנבחרו על ידי תוכן הדף שמסביב

Version 2.274.0

Added

  • תהליכי גליף Type3 המצהירים על תיבה חוסמת d1 נגזרים אליה כעת במהלך רנדור הדף, כך שתהליכי גליף פגומים או גדולים מדי אינם יכולים לצייר עוד מחוץ לגבולות המוצהרים שלהם
  • גליפים המשתמשים בתצורת d0 שומרים על התנהגותם הבלתי מוגבלת, ותיבות מנוונות (ריקות או הפוכות) זוכות להתעלמות במקום להפוך את הגליף לריק

Version 2.273.0

Added

  • רנדור דפים פותר כעת מילוני /Encoding של גופנים פשוטים: מערכי /Differences ממפים מחדש קודי תווים לגליפים בעלי שם, תוך מתן עדיפות על פני מפת התווים של תוכנת הגופן עצמה כפי שדורש מפרט ה-PDF — מסמכים שנוצרו על ידי שרשראות כלים הנגזרות מ-TeX ומ-PostScript, המסתמכות במידה רבה על /Differences, מרנדרים כעת את הגליפים המיועדים
  • שמות גליפים נפתרים דרך Adobe Glyph List (כולל תצורות uniXXXX ושמות תתי-קבוצות gNN/glyphNN subset names), דרך ערכת התווים של תוכנת גופן דחוסה, או דרך מפת התווים של תוכנת TrueType, לפי מה שנתמך על ידי הגופן המוטמע
  • קידודי הבסיס המוגדרים מראש StandardEncoding,‏ WinAnsiEncoding ו-MacRomanEncoding מכובדים עבור קודים ללא עקיפת /Differences, ובכך מתקנים את טווח ה-0x80–0x9F שהנחת Latin-1 פשוטה מטפלת בו בצורה שגויה
  • תוכנות דחוסות (Type1C) המסתמכות אך ורק על קידוד מוגדר מראש — שנפלו בעבר לגופן מערכת עבור כל ההרצה — מרנדרות כעת את קווי המתווה המוטמעים שלהן דרך חיפוש השם הסטנדרטי

Version 2.272.0

Added

  • רנדור דפים עם גליפים מוטמעים מכסה כעת גופני Type1 פשוטים (שאינם CID) עם תוכנת FontFile3 Type1C דחוסה: קודי תווים של בייט אחד נפתרים דרך הקידוד המובנה של תוכנת הגופן לקווי מתווה של מחרוזות תווים (charstring) אמיתיות מסוג Type 2, ובכך משלימים את כיסוי קווי המתווה המוטמעים בין סוגי גופנים פשוטים וגופני CID
  • גופני TrueType פשוטים מקבלים בנוסף תוכנת FontFile3 OpenType (בסגנון CFF) כאשר אין FontFile2 נוכח
  • קודי תווים שהקידוד המובנה אינו יכול למפות שומרים על נסיגת גופן המערכת לכל גליף, וגופנים המסתמכים אך ורק על קידודי Standard/Expert המוגדרים מראש ממשיכים להשתמש בנסיגת ההרצה המלאה הקודמת

Version 2.271.0

Added

  • רנדור דפים תומך כעת בגופני Type3: תהליך זרם התוכן של כל גליף מורץ מחדש דרך המרנדר כאשר מטריצת הגופן, גודל הגופן, מטריצת הטקסט והטרנספורמציה הנוכחית מורכבים יחד, כך שחותמות, גופני ברקוד וגליפים אחרים המצוירים על ידי תהליכים מופיעים בפלט המרונדר במקום שידלגו עליהם
  • מפת /Encoding /Differences קושרת קודי תווים לתהליכי גליף, ורוחבי מרווח גליף /Widths מפורשים דרך /FontMatrix, ובכך שומרים על התקדמות נכונה עבור מערכות קואורדינטות גליף לא סטנדרטיות
  • תהליכי גליף עשויים להפנות למילון /Resources של הגופן עצמו (עם נסיגה למשאבי הדף) ומוגנים על ידי אותו שומר רקורסיה כמו Form XObjects

Version 2.270.0

Added

  • רנדור דפים עם גליפים מוטמעים מכסה כעת גופני TrueType פשוטים (שאינם CID): קודי תווים של בייט אחד ממופים לגליפים דרך טבלת cmap של תוכנת הגופן המוטמעת עצמה, כך שדפים המשתמשים בגופני TrueType מוטמעים רגילים מרנדרים עם צורות הגליף המדויקות שלהם במקום גופן מערכת בעל שם דומה
  • חיפוש ה-cmap עוקב אחר שרשרת תת-טבלאות חסונה — Unicode (תבנית 4 ותבנית 12) תחילה, לאחר מכן תתי-טבלאות מקודדות סמלים עם מראת השימוש הפרטי F000, ולאחר מכן תתי-טבלאות מורשת מקינטוש (תבניות 0 ו-6) — תוך התאמה להתנהגות הנסיגה של צינור היצירה
  • קודי תווים שטבלת ה-cmap המוטמעת אינה יכולה למפות נסוגים לציור גופן המערכת הקודם לכל גליף, כך שגופנים מעורבים או חלקיים מתדרדרים בחן במקום להשמיט טקסט

Version 2.269.0

Added

  • רנדור דפים עם גליפים מוטמעים מכסה כעת תוכנות גופן CFF: טקסט בגופני Type0/CIDFontType0 עם תוכנת FontFile3 (‏CIDFontType0C,‏ Type1C או עטיפת OpenType) מרנדר מקווי מתווה של מחרוזות תווים (charstring) אמיתיות מסוג Type 2 במקום להחליף בגופן מערכת בעל שם דומה
  • מפענח ה-charstring תומך בערכת אופרטורי הציור המלאה — קווים, עקומות, משפחת ה-flex, מסכות רמז (hint masks) וקריאות לתת-שגרות מקומיות/גלובליות עם הטיית תת-שгרה — כך שגופני CFF המיוצרים באופן מקצועי משחזרים את צורות הגליף המדויקות שלהם
  • תוכנות CFF המבוססות על מפתח CID ממפות קודי תווים דרך ערכת התווים של הגופן, ובכך שומרות על בחירת גליפים נכונה עבור גופני תתי-קבוצות שסדר הגליפים שלהם שונה מסדר ה-CID; בחירת font-DICT לכל גליף (‏FDArray/FDSelect) מכובדת
  • תוכנות מוטמעות של TrueType (‏FontFile2) ושל CFF (‏FontFile3) משתפות כעת צינור רנדור יחיד; גופנים ללא תוכנה מוטמעת שמישה שומרים על נסיגת גופן המערכת הקודמת

Version 2.268.0

Added

  • רנדור דפים עם גליפים מוטמעים: טקסט בגופני Type0/CIDFontType2 עם תוכנת TrueType מוטמעת (FontFile2) מרנדר כעת מקווי מתווה הגליף האמיתיים של הגופן — קווי מתאר ריבועיים, נקודות מרומזות על העקומה וגליפים מורכבים מורצים מחדש כנתיבים וקטוריים מלאים — במקום להחליף בגופן מערכת בעל שם דומה
  • הן פריסת Identity והן פריסת זרם מפורשת CIDToGIDMap נתמכות, ומכסות גופני תתי-קבוצות מוטמעים; מסמכים שנוצרו על ידי צינור ה-Unicode של HotPDF עצמה מבצעים כעת סבב מלא דרך RenderLoadedPageToBitmap עם צורות הגליף המוטמעות המדויקות
  • התקדמויות CID מכבדות כעת את רשומות הרוחב /W ו-/DW וקודי Identity-H של שני בייתים צועדים נכון, ובכך מתקנים את מיקום הטקסט עבור גופנים מבוססי מפתח CID בפלט המרונדר
  • גופנים ללא תוכנה מוטמעת שמישה (בסגנון CFF FontFile3, כשלי מיפוי) שומרים על נסיגת גופן המערכת הקודמת

Version 2.267.0

Added

  • מטמון תמונות מפוענחות עבור רנדור דפים: אובייקטי תמונה XObjects החוזרים על עצמם בין דפים (סמלי לוגו, נייר מכתבים, תמונות סימן מים) מפוענחים כעת פעם אחת לכל טעינת מסמך במקום פעם אחת לכל ציור, ובכך מקצצים כמעט בחצי את זמן הרנדור עבור דפים בעלי תמונות משותפות ומאיצים את ייצוא ה-TIFF הרב-דפי בהתאם
  • המטמון מוגבל על ידי ImageCacheMaxBytes (ברירת מחדל 32 MB) עם פינוי לפי שימוש פחות תדיר (LRU), מנוקה אוטומטית כאשר מסמך נטען, ומתרוקן יחד עם InvalidateRenderedPageCache לאחר עריכות במקום
  • רכיב THPDFWeightedCache חדש לשימוש חוזר (יחידה HPDFCache): מטמון מבוסס תקציב בייתים לשימוש האחרון השכיח ביותר (MRU) עם סטטיסטיקת פגיעות/החטאות ועוזר מפתח של גיבוב תוכן SHA-256, הזמין לאפליקציות מארחות לצורך שמירה במטמון של מוצרי ביניים יקרים משלהן

Version 2.266.0

Added

  • תמיכה בגופני סמלים וגופני מורשת ב-RegisterUnicodeTTF: גופנים הנושאים מפת תווים של סמלים בלבד (Wingdings,‏ Webdings וגופני (3,0)-cmap דומים) נרשמים כעת עם מפת נקודות קוד עובדת במקום לפתור כל תו ל-.notdef
  • נקודות קוד של סמלים נגישות הן דרך טווח ה-U+F0xx המקומי שלהן והן דרך ASCII פשוט ('A' מגיע לאותו גליף כמו U+F041), תוך התאמה לאופן שבו תוכנות צפייה מתייחסות לטקסט מקודד סמלים
  • גופני מורשת שמפת התווים שלהם מציעה רק תת-טבלה של תבנית 6 (טבלה קצוצה) או תבנית 0 (טבלת בייתים) נסוגים כעת אליהן, כך שגופנים ישנים של מורשת מק משתלבים נכון; נתיבי ה-Unicode הראשיים של תבנית 4 ותבנית 12 נותרים ללא שינוי

Version 2.265.0

Added

  • מטמון דפים מרונדרים: RenderLoadedPageToBitmapCached שומר דפים שרונדרו לאחרונה עם מפתח לפי דף ו-DPI, כך שרנדור מחדש של אותו דף (תצוגות מקדימות של דפים, תמונות ממוזערות, ייצוא חוזר) חוזר בתוך מיקרו-שניות במקום לפרש מחדש את זרם התוכן — פגיעות במטמון הן בדרך כלל מהירות פי אלפים
  • המטמון מחזיק עד RenderCacheCapacity דפים (ברירת מחדל 8) בסדר שימוש אחרון שכיח ביותר ומחזיר מפת סיביות עצמאית בבעלות הקורא בכל קריאה; טעינת מסמך חדש מנקה אותו אוטומטית, ו-InvalidateRenderedPageCache מנקה אותו לאחר עריכות דפים במקום

Version 2.264.0

Added

  • פלט טקסט עשיר: THPDFPage.TextOutHTML מרנדר מחרוזת המסומנת עם תת-קבוצה של HTML —‏ <b>,‏ <i>,‏ <u>,‏ <s>,‏ <br> ו-<font size color face> עם קינון, כך שפסקאות מעוצבות אינן דורשות עוד קריאת SetFont/TextOut נפרדת לכל שינוי סגנון
  • גדלי גופנים מעורבים בשורה אחת משתפים קו בסיס משותף (הגופן הגדול ביותר בשורה קובע אותו), והמרווח (leading) של כל שורה עוקב אחר הגופן הגדול ביותר שלה, ובכך מעניק פלט נכון מבחינה טיפוגרפית עבור כותרות המעורבות עם טקסט גוף
  • צבעים מקבלים את #RRGGBB ואת 16 שמות צבעי ה-HTML הסטנדרטיים; הישויות &amp;&lt;&gt;&quot;&nbsp; ונקודות קוד מספריות &#N; (כולל נקודות קוד במישור המשלים) מפוענחות
  • הקריאה מחזירה את קואורדינטת ה-Y שבה שורה עוקבת תמשיך, כך שבלוקים עוקבים של TextOutHTML נערמים באופן טבעי

Version 2.263.0

Added

  • חילוץ טקסט משמר פריסה: ExtractLoadedPageTextLayout משחזר את הסידור החזותי של דף כטקסט פשוט — גליפים מקובצים לקווי בסיס ורווח לבן אופקי / אנכי מיוצר מחדש על גבי רשת תווים, כך שעמודות, הזחה ויישור טבלאות נשמרים בפלט
  • מרווחים רחבים בין קטעי טקסט באותו קו בסיס הופכים לרצפי רווחים, ומרווחי קו בסיס גדולים הופכים לשורות ריקות, ובכך הופכים את התוצאה למתאימה לצורכי השוואה (diffing), חיפוש (grepping) והזנה לצינורות ניתוח טקסט המסתמכים על יישור מיקומי
  • חילוץ זרם הקריאה הקיים ExtractLoadedPageText נותר ללא שינוי; בחר בו כאשר רק תוכן הטקסט חשוב, ובקריאה החדשה כאשר הפריסה חשובה

Version 2.262.0

Added

  • חיפוש סימניות בכל העץ: FindLoadedOutlineByTitle סורק את כל היררכיית התרשים של מסמך טעון (כל רמות הקינון, לא רק פרקים ברמה העליונה) ופותח את דף היעד של הסימנייה התואמת, עם התאמה חלקית ורגישות לאותיות רישיות אופציונליות
  • הן יעדי /Dest ישירים והן יעדי פעולת GoTo נפתרים לאאינדקס דפים, כך שניתן לקפוץ לסימנייה שנמצאה באופן מיידי
  • GetLoadedOutlineTitlesDeep מונה כל כותרת סימנייה בעץ בסדר עומק תחילה (קריאה), ומשלים את המנייה הקיימת של הרמה העליונה בלבד

Version 2.261.0

Added

  • חילוץ קבצים מצורפים באצווה: SaveAllLoadedEmbeddedFiles כותב כל קובץ מוטמע של מסמך טעון לתוך ספריית יעד בקריאה אחת, יוצר את הספרייה כאשר היא חסרה ומחזיר את מספר הקבצים שנכתבו
  • שמות הקבצים המצורפים מנוקים לפני השימוש — מפרידי נתיבים ותווים שמערכת הקבצים דוחה הופכים לקווים תחתונים, כך שמסמך אינו יכול לכתוב מחוץ לספרייה הנבחרת — ושמות כפולים מקבלים אוטומטית סיומת _CopyN לפני הרחבת הקובץ

Version 2.260.0

Added

  • ייצוא TIFF רב-דפי עבור מסמכים טעונים: SaveLoadedPagesToTiff מרנדר את הדפים שנבחרו וכותב אותם לתוך קובץ TIFF 6.0 יחיד עם תמונה אחת לכל דף — פורמט ההחלפה המצופה על ידי תהליכי ארכוב מסמכים, סריקה ופקס
  • דפים נבחרים באמצעות תחביר הטווח המוכר המבוסס על 1 (‏"1,3-5,7-"; ערך ריק בוחר כל דף), מרונדרים ב-DPI שנבחר על ידי הקורא, ומאוחסנים כ-24-bit RGB עם דחיסת Deflate אופציונלית (פעילה כברירת מחדל; העבר False עבור פלט לא דחוס)
  • SaveLoadedPagesToTiffStream כותב את אותו קובץ TIFF רב-דפי לכל TStream; שתי הקריאות מחזירות את מספר הדפים שנכתבו בפועל

Version 2.259.0

Added

  • אימות חתימה דיגיטלית עבור מסמכים טעונים: VerifyLoadedSignature מחשב מחדש את תמצית (digest) ה-/ByteRange ובדווק קריפטוגרפית את חתימת ה-RSA מול התעודה המוטמעת בחתימה, תוך דיווח על פסק דין מדויק (תקף, המסמך שונה לאחר החתימה, החתימה לא תקפה, אלגוריתם לא נתמך, או מכל מולקולרי פגום)
  • GetLoadedSignatureInfo מחזיר את שם החותם, שמות הנושא והמנפיק (distinguished names), המספר הסידורי ותקופת התוקף של התעודה, שעת החתימה, אלגוריתם הגיבוב, תת-המסנן (subfilter) וערכי /Reason//Location//ContactInfo עבור כל שדה חתימה מבלי לגעת בבייתים של המסמך
  • VerifyLoadedSignatureEx משלב את שניהם: קריאה אחת מאמתת ומחזירה את רשומת המידע המאוכלסת, כולל האם החתימה מכסה את כל המסמך; VerifyAllLoadedSignatures בודק את כל שדות החתימה בבת אחת
  • אלגוריתמים נתמכים: RSA (PKCS#1 v1.5) עם תמציות SHA-1,‏ SHA-256,‏ SHA-384 או SHA-512, המכסים חתימות adbe.pkcs7.detached ו-ETSI.CAdES.detached signatures עם או בלי מאפיינים חתומים
  • עומס יתר של TStream מאמת מסמכים שנטענו מתוך זרמים; אימות שרשרת התעודות והאמון נותרים באחריות הקורא

Version 2.258.0

Added

  • מפענח ה-JBIG2 החיצוני בעל הביצועים הגבוהים זמין כעת בבנייות 32 סיביות (Win32); בעבר הוא היה של 64 סיביות בלבד. טעינת קובצי PDF עם תמונות /JBIG2Decode ושימוש ב-ExtractLoadedImage משתמשים בו כברירת מחדל בשתי הפלטפורמות, תוך פענוח מהיר יותר בדרך כלל פי 3–9 ממפענח ה-Pascal המקומי
  • מתג UseExternalJBIG2Decoder מתנהג ב-32 סיביות בדיוק כמו ב-64 סיביות: הגדר אותו ל-False כדי לבחור במפענח ה-Pascal המקומי

Version 2.257.1

Fixed

  • שוחזר מנוע מקודד JBIG2 החיצוני בעל הביצועים הגבוהים בבנייות 64 סיביות (Win64): נסיגת בדיקת פלטפורמה שהוצגה במהלך חיבור מנוע ה-32 סיביות גרמה להסרת המקודד החיצוני מבנייות Win64, כך ש-AddImage עם דחיסת icJBIG2 נסוג בשקט למקודד ה-MMR של Pascal המקומי. בניית Win64 מקודדת כעת שוב דרך מנוע הקידוד האריתמטי, בדרך כלל מהר יותר פי 4–8 עם דחיסה שווה או טובה יותר; THPDFJBIG2Options.UseExternalEncoder := False נותר הדרך המפורשת לבחור בנסיגת MMR

Version 2.257.0

Added

  • מנוע מקודד JBIG2 בעל הביצועים הגבוהים זמין כעת בבנייות 32 סיביות (Win32); בעבר הוא היה של 64 סיביות בלבד. AddImage עם דחיסת icJBIG2 משתמש בו כברירת מחדל בשתי הפלטפורמות, ומייצר זרמי JBIG2 מקודדים אריתמטית התואמים לתקנים ומהירים פי 4–7 מנסיגת ה-Pascal המקומית
  • מתג THPDFJBIG2Options.UseExternalEncoder מתנהג ב-32 סיביות בדיוק כמו ב-64 סיביות: הגדר אותו ל-False כדי לסגת למקודד ה-MMR של Pascal המקומי

Fixed

  • נפתרה סדרה של קריסות (access violations) בבנייות 32 סיביות בלבד בשכבת התמיכה של המקודד המקושר סטטית שהפכה את מנוע מקודד ה-JBIG2 לבלתי שמיש בבנייות Win32; פלט הקידוד מאומת כזהה ביט-אחר-ביט למנוע ה-64 סיביות ומבצע סבב מלא ללא אובדן נתונים דרך מפענחי ה-JBIG2 המצורפים והמקומיים כאחד

Version 2.256.0

Added

  • הורחבה התמיכה בהערות XFDF לארבעת תתי-הסוגים הנותרים של ISO 19444-1 טבלה 1, ובכך הושלם כיסוי מלא של כל 18 רכיבי הערות ה-XFDF:‏ <fileattachment> (מפענח את ה-base64 של <data> לזרם קובץ מוטמע + Filespec בייבוא, ומקודד מחדש בייצוא), <sound> (זרם /Sound מוטמע עם פרמטרי שמע /R /B /C /E), <redact> (הערת /Redact סטנדרטית עם /OverlayText,‏ /DA,‏ /Q ו-/IC — שונה ממסכת RedactLoadedRect של זרם התוכן הקיים), ו-<link> (‏<OnActivation><Action> ממופה למילון פעולה של URI או Named, עם יעדים בעלי שם <Dest>)
  • נוסף מקודד/מפענח base64 עצמאי (‏HPDFXFDFEncodeBase64 / HPDFXFDFDecodeBase64) כך ששכבת ה-XFDF אינה תלויה ב-HPDFXFA; הספרייה סיפקה בעבר מפענח בלבד
  • הורחב THPDFXFDFAccess עם קריאות חוזרות של זרם מוטמע (‏ResolveStream / NewIndirectStream / ReadStreamBytes) המחוברות ל-THotPDF.ResolveLoadedStream / NewIndirectStream / HPDFReadStreamBytes
  • נוספו 3 מקרי DUnitX ל-HotPDF.XFDFTests (סבב מלא של base64,‏ Redact עם OverlayText, קישור עם פעולת URI) — הערכה המלאה עומדת כעת על 310/310 ב-Win32 וב-Win64

Version 2.255.0

Added

  • נוסף ייצוא/ייבוא XFDF (ISO 19444-1):‏ THotPDF.ExportLoadedFormToXFDF / ImportLoadedFormFromXFDF מבצעים סבב מלא של ערכי שדות AcroForm דרך תבנית XML Forms Data Format (מקבילת ה-XML של FDF), ומכסים שדות פשוטים ומקוננים (שמות עם נקודות), רשימות מרובות בחירות (מספר רכיבי <value> אחים), ערכי ייצוא של תיבות סימון / כפתורי רדיו ושדות חתימה (שם בלבד, ללא <value> לפי סעיף 6.3.3.1). הפלט הוא מסמך UTF-8 <xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve"> עם מרחב השמות של Adobe כפי שנדרש לפי סעיף 5.5.2
  • נוספו THotPDF.ExportLoadedAnnotationsToXFDF / ImportLoadedAnnotationsFromXFDF עבור 14 תתי-סוגי הערות של ISO 19444-1 טבלה 1 ש-HotPDF כבר מייצרת (טקסט / טקסט חופשי / קו / ריבוע / עיגול / מצולע / פולי-קו / הדגשה / קו תחתון / קו חוצה / קו גלי / חותמת / דיו / סימן כניסה), הנושאים את המאפיינים המשותפים (דף, מלבן, צבע, דגלים, שם, תאריך, כותרת, תוכן, נושא, תאריך יצירה, אטימות, כוונה), גיאומטריה ספציפית לסוג (QuadPoints עבור סימון, קודקודים עבור מצולע/פולי-קו, L עבור קו, InkList עבור דיו), האייקון עבור טקסט/חותמת, ויישומונים בנים צצים. תתי-סוגים של FileAttachment / Sound / Redact / Link-action נדחים לשלב מאוחר יותר
  • נוספה יחידת Lib/HPDFXFDFXml.pas: מנוע XML קל משקל ועצמאי (ללא תלות ב-MSXML / OmniXML, נבנה ב-Delphi 5 .. RAD Studio) המספק DOM מינימלי (THPDFXFDFNode), מנתח סלחן (BOM, הערות, CDATA, הוראות עיבוד, סדר מאפיינים, סגירה עצמית, UTF-8 רב-בייט) וכותב UTF-8 המחיל את מוסכמת ההמלטה (escape) של ISO 19444-1 סעיף 5.8.2 (ישויות עבור & < > ", הפניות תווים עבור LF/CR/TAB, ליטרלים אוקטליים עבור בייטי בקרה אחרים)
  • נוספה יחידת Lib/HPDFXFDF.pas: שכבת הליבה העסקית של XFDF, המנותקת מ-HPDFDoc באמצעות רשומה של מצביעי פונקציות (THPDFXFDFAccess) הקשורים על ידי סעיף המימוש של HPDFDoc (אותו דפוס כמו HPDFTextExtraction). מספקת עוזרי צבע #RRGGBB ↔ DeviceRGB ודגל-שם ↔ ערך ביטים שלם
  • נוספו HotPDF.XFDFTests (8 מקרי DUnitX) המכסים את מנוע ה-XML (סבב מילוט מלא, סלחנות ניתוח, שדות מקוננים, UTF-8), ייצוא/ייבוא שדות מעל רשומת גישה מדומה, וייצוא/ייבוא הערות מעל סימולציה שנבנתה מאובייקטי THPDFDictionaryObject אמיתיים — כולם עוברים ב-Win32 וב-Win64

Version 2.254.0

Added

  • נוסח חילוץ חשבוניות מובנות בצד הקריאה: HPDFFacturXXMLElementText מבצע סריקת מחרוזת מודעת לגבולות מילים עבור כל רכיב CII/UBL (ללא XML DOM, עובד בכל Delphi נתמך), HPDFFacturXInvoiceSummaryFromXML ו-THotPDF.GetLoadedInvoiceSummary מחזירים רשומת THPDFFacturXInvoiceSummary עם השדות המשותפים BT-1/2/5/27/44/106/110/112/115 (מספר חשבונית, תאריך הנפקה, מטבע, שמות מוכר/קונה, סכומי שורה/מס/סה"כ כללי), כאשר שם הקונה מזוקק על ידי איתור צבר BuyerTradeParty במקום רק ה-ram:Name הראשון
  • נוספה סריקת רגרסיה מבנית של PDF/A-3 בשם THotPDF.GetLoadedPDFAIssues, מופרדת במכוון מ-ValidateFacturXInvoice כך שפסק הדין של מכל ה-Factur-X נשאר יציב (חשבונית היברידית עם OutputIntent חסר היא עדיין מכל תקף, פשוט לא קובץ תואם PDF/A-3); משקף את קביעות ה-ISO 19005-3 ש-veraPDF מעלה עבור גופנים לא מוטמעים (fxviFontsNotEmbedded),‏ OutputIntent חסר (fxviMissingOutputIntent) והצפנה אסורה (fxviEncryptedDocument), כולם איברים חדשים של ה-enum THPDFFacturXValidationIssue
  • נוספה סיווג קבצים מצורפים מוטמעים דרך THotPDF.GetLoadedFacturXAttachments: מונה כל קובץ מוטמע ומסווג אותו תחת טקסונומיית מפרט Factur-X 1.09 סעיף 6.4 (חשבונית CII ראשית, ייצוג משלים של UBL או EDIFACT, מסמך תומך) תוך שימוש ב-enum החדש THPDFFacturXAttachmentRole, כך שמקבלים יכולים לנתב קבצים מצורפים מבלי לחשב מחדש את התפקיד משמות הקבצים
  • נוספה תמיכה בקובץ מצורף משלים של EDIFACT סימטרית ל-UBL:‏ THotPDF.AddEDIFACTSupplementaryFile מטמיע הודעת EDIFACT כ-factur-xedifact.edi (מסוג MIME text/plain, קשר Alternative),‏ HPDFIsFacturXEDIFACTFileName מזהה את שם הקובץ, ו-DetectFacturXInvoice רושם אותו בשדה THPDFFacturXInvoiceInfo.EDIFACTFileName חדש
  • נוספה תמיכה ב-PDF/A-4 / PDF/A-4f (‏ISO 19005-4, הערת שוליים 2 במפרט Factur-X 1.09):‏ PDFAPart מזהה כעת '4'/'4F' (פליטת pdfaid:part=4) ו-PDFAConformanceLevel מחזיר ריק עבור חלק 4 מכיוון ש-PDF/A-4 מסיר את רמות ה-A/B/U;‏ IsPDFA2OrLater מכסה אוטומטית את חלק 4 כך שבדיקות הגבלה קיימות חלות
  • נוספה בדיקת עקביות חזותית/XML של עיקרון 4 בשם THotPDF.ValidateVisualXmlConsistency: פורק את הטקסט הגלוי של כל דף ומאמת שמספר החשבונית, המוכר, הקונה וערכי הסה"כ הכללי המופיעים ב-XML המוטמע מופיעים גם בייצוג הקריא לבני אדם (מפרט Factur-X 1.09 סעיף 5.1); אי-התאמה מדווחת כרשימה של שמות שדות חסרים, המנוסחת כאזהרה היוריסטית ולא ככישלון אימות קשיח מכיוון שה-PDF עשוי לעצב או לעטוף ערכים

Changed

  • דוגמת ה-E-Invoice‏ ShowValidationReport now renders the read-side invoice summary, the independent PDF/A-3 issue set, the classified attachment list, and the Principle 4 visual/XML consistency verdict alongside the existing container and Schematron business-rule checks, demonstrating the new read-side APIs on every generated PDF

Version 2.253.1

Fixed

  • התאמת מקור הדגמת ה-E-Invoice עם טענות בדיקות הרגרסיה שלו: TInvoiceForm = class(TForm) משתמש כעת בהצהרה עם רווחים סטנדרטית, ו-IsDefaultOutputFile מציג משתנה מקומי Profile לכל איטרציה (המוגדר מתוך GetProfile(I)) כך שהמקור נושא את הליטרל המדויק string(Profile.OutputBaseName)+ '.pdf' שהבדיקות מחפשות, תוך הימנעות מקריאת GetProfile כפולה לכל איטרציה בלולאה. פותר את שני כשלי ה-EInvoiceDemoDefaultOutputUsesProfileSuffix / EInvoiceDemoUsesProjectFileAndOutputNames failures

Version 2.253.0

Added

  • נוסח רנדור דפים של מסמכים טעונים: THotPDF.RenderLoadedPageToBitmap(PageIndex, DPI) מצייר דף לתוך TBitmap של GDI ב-24 סיביות RGB (הקורא משחרר) על ידי פענוח זרם ה-/Contents מול מצב גרפי מלא (CTM, צבעים, מאפייני קווים, מצב טקסט) ונתיב נוכחי, ומזין כל אופרטור ל-GDI דרך גשרי נתיב / טקסט / תמונה. ערכת האופרטורים הנתמכת מכסה את תת-הקבוצה הנפוצה של מסמכי PDF: טקסט (‏BT ET Tf Tc Tw Tz TL Tr Ts Td TD Tm T* Tj TJ ' "), בניית נתיבים וצביעתם (‏m l c v y re h S s f F f* B b B* b* n W W*), צבע (‏rg RG g G k K), מצב גרפי (‏q Q cm w) ו-Do עבור תמונה ורמה אחת של רקורסיית Form XObject. מרחבי הצבע המטופלים הם DeviceRGB / Gray / CMYK ו-Indexed;‏ CalRGB / Lab / ICCBased מתדרדרים לקירוב של המאמץ הטוב ביותר. שש יחידות חדשות (‏HPDFRenderMatrix,‏ HPDFRenderGraphicsState,‏ HPDFRenderColorSpace,‏ HPDFRenderPath,‏ HPDFRenderFontMetrics,‏ HPDFPageRenderer) שומרות על המרנדר מנותק מ-HPDFDoc via a record of function-pointer accessors
  • נוספו HotPDF.RenderTests (3 מקרי DUnitX) המכסים רנדור דפי טקסט (מפת סיביות שאינה ריקה), התאמת גודל דף ל-DPI, והחזרת nil עבור אינדקס דף מחוץ לטווח — all pass on Win32 and Win64

Version 2.252.0

Added

  • נוספה החלפת טקסט במסמך טעון: THotPDF.ReplaceLoadedPageText ו-ReplaceLoadedDocumentText כותבים מחדש כל מופע של מחרוזת חיפוש על ידי קידוד הפוך של ההחלפה דרך טבלת קוד התווים של הגופן (HPDFEncodeUnicode) וחיבור התוצאה בדיוק לטווחי בייטי הקוד התואמים של כל אופרנד מחרוזת — בייתים שאינם תואמים, רווחים בין אסימונים ואופרטורים נשמרים מילה במילה. כל זרם /Contents מעובד בנפרד כך שדפים מרובי זרמים נשארים תקינים; זרמים דחוסים מופחתים מדחיסה לצורך עריכה ונשמרים ללא דחיסה (רשומת /Filter מושמטת, מה שמגדיל את הקובץ).‏ ReplaceCount מדווח על מספר כתיבות האופרנדים שבוצעו
  • נוספה HPDFEncodeUnicode בתוך HPDFTextExtraction: ההיפך מ-HPDFDecodeCharCode, הממפה נקודת קוד של Unicode בחזרה לבייטי קוד תווים של גופן על ידי הליכה באותה שרשרת אסטרטגיות בסדר הפוך (ToUnicode bfchar/bfrange, זרם Encoding‏ cidchar/cidrange + CIDToUnicode,‏ Type0 CIDToGID/CIDIdentity, טבלאות WinAnsi/MacRoman מוגדרות מראש), כך שסבב קידוד←פענוח יציב עבור כל קוד שהמפענח יכול לפתור
  • נוספו HPDFSerializeStringLiteral / HPDFSerializeHexString בתוך HPDFContentStream: מבצעים סריאליזציה מחדש של בייטי קוד תווים גולמיים בחזרה לליטרל מחרוזת של זרם תוכן PDF (בתצורת (...) עם תתווים ( ) \ ומילוטים אוקטליים) או מחרוזת הקסדצימלית (בתצורת <...>), תוך שיקוף ה-ReadLiteralString/ReadHexString של המנתח כך שסבב ניתוח←סריאליזציה מחדש מנקה לחלוטין
  • נוספה HPDFMatchGlyphs בתוך HPDFContentStream: התאמת רצף גליפים פונקציונלית טהורה שנשלפה מתוך SearchLoadedPageText כך שנתיבי החיפוש וההחלפה משתפים ליבה תואמת אחת
  • נוספה THPDFPageFontResolver.LookupDecoder כך שנתיב ההחלפה יכול להשיג עותק מפענח גופנים לצורך קידוד הפוך מחוץ ללולאת המפרש
  • נוספו HotPDF.ReplaceTests (8 מקרי DUnitX) המכסים סבבים מלאים של סריאליזציה (מילוט ליטרלי/הקס/בייט גבוה), ותרחישי קצה של אותו אורך, אורך שונה, מספר התאמות, ירידת זרם דחוס ומחרוזת חיפוש חסרה — all pass on Win32 and Win64

Version 2.251.0

Added

  • נוסח חישוף טקסט במסמך טעון: THotPDF.SearchLoadedPageText ו-SearchLoadedDocumentText מאתרים כל מופע של מחרוזת חיפוש על ידי התאמת רצף גליפי ה-Unicode המיוצר על ידי ExtractLoadedPageGlyphs, ומחזירים THPDFTextMatchArray שהרשומות שלו נושאות את טווח הגליפים, מוצא ורוחב מרחב המשתמש, ואינדקס האסימון/פריט המקורי כך שקורא יכול לכתוב מחדש את בייטי האופרנד מאוחר יותר; התאמה לא רגישה לאותיות רישיות משתמשת בקיפול של ASCII בלבד כדי לשמור על התנהגות זהה בין שרשראות הכלים של Delphi 5–XE
  • הרחבת מנתח זרם התוכן והמפרש עם מעקב אחר היסט בייתים (byte-offset):‏ THPDFContentToken ו-THPDFArrayItem רושמים כעת את StartOfs/EndOfs המקיפים כל אופרנד בדיוק כפי שנכתב (כולל תוחמי ( ) או < >), וכל THPDFGlyphRecord נושא TokenIndex/ItemIndex/ByteOffset המצביעים בחזרה לאופרנד וליחידת הקוד שייצרו אותו — התשתית להחלפת טקסט במקום
  • נוספו HotPDF.SearchTests (10 מקרי DUnitX) המכסים שחזור מרווחי היסט עבור אופרנדים של מערך ליטרלי/הקס/TJ, התייחסות גליף←אסימון בחזרה, וחיפוש קצה לקצה יחיד/לא רגיש לאותיות/מרובה התאמות/רחב-מסמך פלוס מקרי הקצה של מחרוזת חיפוש ריקה וחסרה — all pass on Win32 and Win64

Version 2.250.0

Fixed

  • חיזוק ImportLoadedFormFromFDF: החלפת סורק רמת הבייטים /T+רווח + /V+רווח (שפירש בטעות את /Type /Catalog ואסימוני /T* אחרים כשמות שדות, בלע בייתים בין אובייקטים ל-( הבא, והחמיץ ערכי מחרוזת הקס) בניתוח מבני — כל מילון שדה << /T ... /V ... >> בתוך מערך ה-/Fields נפרס על ידי מעקב אחר עומק סוגריים (תוך כיבוד ליטרלים של מחרוזות הקס ורגילות) ומועבר ל-HPDFParserParseSimpleDictionary, כך שערכי מחרוזת, מחרוזת הקס, שם וערכי /V מספריים מבצעים כולם כעת סבב מלא תקין
  • ערכי /V הנישאים כמחרוזות הקס UTF-16BE (‏<FEFF...>) שומרים כעת על תצורת ההקס שלהם במהלך ייבוא: HPDFSetDictFormValue מזהה את קידומת ה-BOM של FEFF ומגדיר את IsHexadecimal כך שהכותב פולט מחדש <FEFF...> במקום ליטרל משובש (FEFF...); ערכי שמות של תיבות סימון / כפתורי רדיו (‏/Yes,‏ /Off) נשמרים כשמות מכיוון שנתיב תיקון הטיפוס הקיים כבר שומר על מקום ה-THPDFNameObject

Added

  • נוספו HotPDF.FDFTests (5 מקרי DUnitX) המכסים את סבב הייצוא←ייבוא המלא עבור שדות טקסט, שימור סוג שם-ערך של תיבת סימון, דילוג שקט על שמות שדות לא מוכרים, סבב ערכי הקס UTF-16BE ונסיגת רעש מילת המפתח /Type — all pass on Win32 and Win64

Version 2.249.0

Added

  • נוספה תמיכה במטא-נתונים של ZUGFeRD 2.5 / Factur-X 1.09:‏ HPDFIsFacturXVersion מקבל את כינוי הגרסה 2p5, עוזר ה-HPDFFacturXNormalizeVersion החדש ממפה אותו בחזרה ל-2p0 ב-XMP הנפלט לפי מפרט Factur-X 1.09 סעיף 6.3.2 (גרסת סכמת הרחבת ה-XMP מנותקת מגרסת מפרט נתוני ה-XML), וכן HPDFFacturXFileNameOK,‏ HPDFFacturXXMLGuidelineOK והשלשה שם-סכמה/namespace-uri/קידומת של XMP מתייחסים ל-2p5 באופן זהה ל-2p0; דוגמת ה-E-Invoice מקבלת רשומת פרופיל שביעית (ZUGFeRD 2.5 / Factur-X 1.09, EN 16931) המאומתת מול מאגר הדוגמאות הרשמי של 2.5
  • נוספה תמיכה בקובץ מצורף משלים של UBL לפי מפרט Factur-X 1.09 סעיף 6.4:‏ THotPDF.AddUBLSupplementaryFile מטמיע ייצוג UBL כקובץ משויך משני בשם factur-xubl.xml עם יחס Alternative ו-MIME מסוג application/xml לצד חשבונית ה-CII הראשית (תוך האצלה לצינור ה-AddPDFA3AssociatedFile הקיים),‏ HPDFIsFacturXUBLFileName מזהה את שם הקובץ,‏ DetectFacturXInvoice רושם אותו בשדה THPDFFacturXInvoiceInfo.UBLFileName חדש, ודוגמת ה-E-Invoice מאפשרת מעבר בין הטמעה כפולה באמצעות תיבת סימון כאשר BuildUBLSupplementaryXML פולט שלד UBL 2.1 EN 16931 קומפקטי
  • נוסח אימות חוקי עסק אופציונלי של EN 16931 Schematron כיחידה חדשה HPDFEInvoiceValidator: מפיץ את חמשת קובצי החוקים הרשמיים של Factur-X 1.09 (‏MINIMUM/BASIC WL/BASIC/EN16931/EXTENDED) תחת Lib/resources/Schematron/ וחושף את HPDFValidateEInvoice שמריץ את בדיקת המכל דרך ValidateFacturXInvoice ואז מעריך כל חוק מול ה-XML המוטמע; המנוע מבוסס MSXML (ב-XE2+ בלבד, תת-קבוצה של XPath 1.0) מסמן טענות של XPath 2.0 כ-skipped, בעוד ש-Delphi 7 מקמפל מעטפת שמדווחת על המנוע כלא זמין מבלי להשפיע על פסק הדין של המכל; דוגמת ה-E-Invoice ומערכת ההרצה ללא ממשק משתמש EInvoiceValidation מציגות כעת תוצאות חוקים פנימיות לצד דוחות המאמתים החיצוניים

Changed

  • AddFacturXAssociatedFile מנרמל כעת את הארגומנט Version דרך HPDFFacturXNormalizeVersion לפני כתיבת XMP, כך שקוראי 2p5 פולטים את אסימון ה-XMP התואם למפרט של 2p0 מבלי לשנות את התנהגות ה-1.0/2p0 הקיימת
  • פרמטר AttachUBL אופציונלי (ברירת מחדל False, תוך שמירה על קריאות קיימות) מתווסף ל-GenerateInvoicePDF בדוגמת ה-E-Invoice ומתייג את שם פלט ברירת המחדל עם -withUBL כאשר מתבקש הקובץ המצורף של UBL

Version 2.248.0

新增

  • 加固 E-Invoice 例程的 profile 索引模型:把 GetProfile 从 1 基 case 加 else 兜底改为显式 0 基双射(0 BASIC .. 5 EN 16931),下拉框顺序同步重排,默认仍为 EN 16931;补全 E-Invoice 例程 README 对 ZUGFeRD 1.0 COMFORT 和 ZUGFeRD 2.0 BASIC 两个 profile 的输出文件、校验状态和运行输出描述

Version 2.247.0

新增

  • 新增已加载文档的 22 项创建/写入 API(第九轮,实现中等工程量特性,全部在已加载对象图上构造字典并注册到 AcroForm/Page):表单字段创建——文本字段(AddLoadedTextField)、复选框(AddLoadedCheckBox)、组合框(AddLoadedComboBox)、列表框(AddLoadedListBox)、按钮(AddLoadedPushButton)、签名字段(AddLoadedSignatureField),自动建立/补全 AcroForm 与 /NeedAppearances;注释子类型——橡皮图章(AddLoadedStampAnnotation)、高亮/下划线/波浪线/删除线(AddLoadedHighlightAnnotation)、矩形/圆形(AddLoadedSquareAnnotation)、直线(AddLoadedLineAnnotation)、墨迹(AddLoadedInkAnnotation)、多边形/折线(AddLoadedPolygonAnnotation)、插入符(AddLoadedCaretAnnotation);FDF 表单数据互换(ExportLoadedFormToFDF/ImportLoadedFormFromFDF);N-up 拼版(StitchLoadedPage/StitchLoadedPageSideBySide);脱敏遮罩(RedactLoadedRect

Version 2.246.0

נוסף

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםGetLoadedFormFieldOption/GetLoadedFormFieldOptions)/write (SetLoadedFormFieldOptions), field default-value read/write (GetLoadedFormFieldDefaultValue/SetLoadedFormFieldDefaultValue), field reset (ResetLoadedFormField), text-note annotation (AddLoadedTextAnnotation), free-text annotation (AddLoadedFreeTextAnnotation), annotation color (SetLoadedAnnotationColor), cross-page annotation move (MoveLoadedAnnotation), bookmark color (SetLoadedOutlineColor)/style (SetLoadedOutlineStyle)/delete (RemoveLoadedOutline), document Trapped flag (SetLoadedTrapped), optional-content group visibility (SetLoadedOCGVisibility), page-label write (SetLoadedPageLabel)

Version 2.245.0

נוסף

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםSetLoadedAnnotationFlagsפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםAddLoadedLinkAnnotation), bookmark expand/collapse state (SetLoadedOutlineOpen), document open-action (SetLoadedOpenActionPage), form-field export-value read/write (SetLoadedFormFieldExportValue/GetLoadedFormFieldExportValue), form-field tooltip (SetLoadedFormFieldTooltip/GetLoadedFormFieldTooltip), form-field border width/background color (SetLoadedFormFieldBorderWidth/BackgroundColor), clear all JavaScript (RemoveLoadedJavaScriptAll), page content copy (CopyLoadedPage)

Version 2.244.0

新增

  • 新增已加载文档的 15 项写入/编辑 API(第二轮写入,覆盖 RemoveAnnotation/SetRotationAngle 等模式):页面旋转写入(SetLoadedPageRotation)、注释删除/内容修改/清空(RemoveLoadedAnnotation/SetLoadedAnnotationContents/ClearLoadedAnnotations)、查看器偏好写入(SetLoadedViewerPreferences)、日期写入(SetLoadedCreationDate/ModDate)、Catalog 版本写入(SetLoadedCatalogVersion)、页面持续时间/过渡效果写入(SetLoadedPageDuration/Transition)、书签标题修改(SetLoadedOutlineTitle)、嵌入文件删除(RemoveLoadedEmbeddedFile)、表单字段值写入(SetLoadedFormFieldValueByIndex/ByName

Version 2.243.0

新增

  • 新增已加载文档的 14 项写入/编辑 API(首次突破只读检视,覆盖 SetXMLMetadata/InsertAnnotation/Stitch 等模式):页面模式/布局写入(SetLoadedPageMode/PageLayout)、文档语言写入(SetLoadedLanguage)、文档信息写入(SetLoadedCreator/Producer/Title/Author/Subject/Keywords)、Info 键删除(RemoveLoadedInfoKey)、XMP 元数据写入(SetLoadedXMPMetadata)、文档级 JavaScript 增删(AddLoadedDocumentJavaScript/RemoveLoadedJavaScript)、页面框写入(SetLoadedPageBox)。这些方法修改已加载的对象图,调用 SaveLoadedDocument 持久化

Version 2.242.0

新增

  • 新增已加载文档的 15 项检视 API(第四轮标准 PDF 功能差距扫除):页面模式/布局读取(GetLoadedPageMode/PageLayout)、Catalog 版本(GetLoadedCatalogVersion)、页面对象号(GetLoadedPageObjectNumber)、表单字段标志位组合(GetLoadedFormFieldFlags)/NoExport 检测(IsFormFieldNoExport)、注释标志解码(IsLoadedAnnotationHidden/Printable/Locked)、度量单位转换(PointsToMM/MMToPoints/PointsToInches/InchesToPoints/PointsToCm/CmToPoints

Version 2.241.0

新增

  • 新增已加载文档的 20 项深度检视 API(第三轮标准 PDF 功能差距扫除):Info 字典键枚举(GetLoadedInfoKeyCount/KeyName/KeyValue)、表单字段矩形/页索引(GetLoadedFormFieldRect/PageIndex)、注释 URI/弹出框/名称/修改日期(GetLoadedAnnotationURI/PopupRect/Name/ModDate)、书签颜色/样式(GetLoadedOutlineColor/Style)、元数据流检测(HasLoadedMetadata)、Trailer ID(GetLoadedTrailerID)、XRef 类型(GetLoadedXRefType)、最大对象号(GetLoadedMaxObjectNumber)、源文件大小(GetLoadedSourceFileSize)、嵌入字体计数(GetLoadedEmbeddedFontCount)、文档语言(GetLoadedLanguage)、页面持续时间/过渡效果(GetLoadedPageDuration/Transition)、表单字段必填标志(IsFormFieldRequired

Version 2.240.0

新增

  • 新增已加载文档的 20 项深度检视 API(第二轮标准 PDF 功能差距扫除):嵌入文件保存到磁盘(SaveLoadedEmbeddedFileToDisk)、设置文档信息字段(SetLoadedDocumentInfo)、读取 JavaScript 源码(GetLoadedJavaScriptSource)、命名目标枚举(GetLoadedNamedDestinationCount/Name)、OCG 可见性(GetLoadedOCGVisibility)、页面标签详情(GetLoadedPageLabelInfo)、全文档注释/字体计数(GetLoadedTotalAnnotationCount/TotalFontCount)、PDF/A 与 PDF/X 合规检测(IsLoadedPDFA/IsLoadedPDFX/GetLoadedPDFAVersion/GetLoadedPDFXVersion)、批量便捷方法(GetLoadedOutlineTitles/AllLinkURIs/ImageCountPerPage/AllPageBoxes/FormFieldNames/FormFieldValues)、一键文档摘要(GetLoadedSummary 返回页数/注释/字体/图像/表单/签名计数 + 加密/AcroForm/结构树标志)

Version 2.239.0

新增

  • 新增已加载文档的 20 项检视 API(标准 PDF 功能差距批量扫除):PDF 版本字符串(GetLoadedPDFVersionString)、线性化检测(IsLoadedLinearized)、XMP 元数据读取(GetLoadedXMPMetadata)、文档级 JavaScript 枚举(GetLoadedJavaScriptCount/Name)、页面标签计数(GetLoadedPageLabelCount)、查看器偏好(GetLoadedViewerPreferences)、结构树检测(HasLoadedStructureTree)、签名字段计数(GetLoadedSignatureFieldCount)、可选内容组(OCG)枚举(GetLoadedOCGCount/Name)、OutputIntent 检测(HasLoadedOutputIntent/GetLoadedOutputIntentInfo)、AcroForm 检测(HasLoadedAcroForm)、创建/修改日期(GetLoadedCreationDate/ModDate)、批量数组便捷方法(GetLoadedEmbeddedFileNames/LinkURIs/AnnotationSubtypes/FontNames 返回 THPDFAnsiStringArray

Version 2.238.0

新增

  • 新增已加载文档的深度检视 API(8 个只读方法):GetLoadedPageWidth/GetLoadedPageHeight 读取页面尺寸(pt);GetLoadedLinkCount/GetLoadedLinkInfo 枚举超链接注释(URI + 矩形);GetLoadedEncryptionInfo 查询加密版本、密钥长度、权限标志;GetLoadedEmbeddedFileCount/GetLoadedEmbeddedFileName 枚举文档嵌入文件(附件)。这些 API 遍历已加载的对象图但不修改它,仿现有 GetLoadedImageInfo/GetLoadedAnnotationInfo 模式。LoadedDocInspector 例程同步更新,演示页面尺寸/旋转/链接计数、加密状态、嵌入文件清单

Version 2.237.0

新增

  • 新增已加载文档的元数据查询 API:GetLoadedDocumentInfo 从 Info 字典读取标题、作者、主题、关键词、创建者、生成器;GetLoadedPageRotation 读取页面旋转角度;GetLoadedOutlineCount/GetLoadedOutlineItem 枚举书签树的顶层条目(标题 + 目标页索引)。这些都是只读查询,仿现有 GetLoadedImageInfo 模式,不修改文档对象图

Version 2.236.0

נוסף

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים THotPDF methods: HPDFCMapReader parses both ToUnicode beginbfchar/beginbfrange פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים begincidchar/begincidrange פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים HPDFContentStream פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםBT/ET, Tf, Tj/TJ/'/", Td/TD/Tm/T*, q/Q, inline-image BI/ID/EI פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים HPDFTextExtraction פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים/ToUnicode/Encoding פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים /DescendantFonts /CIDToGIDMapcid2code.txtפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • Added THotPDF.GetLoadedFontDecoder, THotPDF.ExtractLoadedPageGlyphs and THotPDF.ExtractLoadedPageText פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים ExtractLoadedPageText פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • Added ExtractText פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים LoadedDocInspector read-only console layout

שונה

  • HPDFDoc now uses HPDFCMapReader, HPDFContentStream and HPDFTextExtraction פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים THotPDF פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים HPDFParser standalone-unit pattern (no dpk contains פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים HPDFDocפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים THPDFFontDocAccess פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים ResolveLoadedDictionary / ResolveLoadedStream / HPDFReadStreamBytes helpers

Version 2.235.1

新增

  • 新增 PDFOptimize 控制台例程(Delphi):演示生成端 PDF 体积优化,通过同内容、不同压缩设置的多份 PDF 横向对比量化每种策略的收益 —— 文本/矢量文档的 cmNone vs cmFlateDecodeUseObjectStreams 对象流打包、彩色照片的 icJpeg JpegQuality 扫描对比 icFlate、双层扫描图的 icCCITT42(G4)对比 icJBIG2 lossless/lossy,控制台打印体积对比表,所有测试图像均在内存合成生成不依赖外部文件,并明确标注 HotPDF 压缩为生成端能力(无法对已加载 PDF 重新压缩)

Version 2.235.0

Added

  • נוסף דמו Stamp מאוחד (Delphi ו-C++Builder): ממזג את הדמואים הקודמים Modify, MultiPageStamp ו-Watermark לתוכנית VCL אחת המציבה שלוש שכבות חותמת הניתנות להחלפה באופן עצמאי על טווח עמודים מנותח —— סימן מים טקסטואלי בזרימת התוכן (AddTextWatermark), הערת חותמת גומי אינטראקטיבית (AddStampAnnotation) ומפת סיביות פינתית (AddImage + ShowImage), תוך שמירת ניתוח טווח העמודים (HPDFParsePageRange) ומיקום בארבע פינות
  • נוסף דמו קונסול PageSizes מאוחד: ממזג את הדמואים הקודמים SmallSize, NormalSize ו-LargeSize לתוכנית אחת הסופרת את כל ערכי ה-enum של THPDFPageSize בקטגוריות קטן/רגיל/גדול בתוספת ממדי Width/Height מותאמים אישית במעבר אחד

Changed

  • מוזגו 5 התוכניות העצמאיות של קבוצת דמו Security (Encryption, SecurityAES256, DecryptPDF, PFXSignature, SignatureField) לתוכנית קונסול אחת המכסה הצפנת RC4-128, הצפנת AES-256 R5/R6, פענוח סיסמה, ממלאי מקום של שדות חתימה וחתימת PFX (מדלג אוטומטית כאשר חסר פיקסצ'ר PFX)
  • מוזגו ממשקי GUI AddPages ו-DelPages ל-GUI יחיד AddDelPages, תוך שדרוג PageMultiSize ו-AddDelPages בצד C++Builder כדי להתאים לעושר של Delphi (Size/Orientation/רוחב-גובה מותאם אישית/ספירה/תווית/התקדמות)
  • הועבר כלי רגרסיית גליפים FontTest מ-Demo ל-Tests\Delphi\FontTest ו-Tests\C++Builder\FontTest, המבהיר את תפקידו ככלי בדיקה ולא דמו פונקציונלי

Removed

  • הוסר דמו TiffToPDF הכפילותי לחלוטין (Delphi ו-C++Builder); יכולתו מכוסה במלואה על ידי נתיב המרת TIFF ב-ConvertTo
  • הוסר דמו CopyPages בצד C++Builder; יכולתו מכוסה במלואה על ידי PDFmerge השלם יותר
  • הוסר דמו Logger; השימוש בחזית רישום זמן ריצה HPDFLogger / HPDFLog שהדגים הועבר לדף נושא תיעוד API Docs/zh-cn/topics/HPDFLoggerFacade.html (הספרייה שומרת על יחידת HPDFLogger; רק פרויקט הדמו נמחק)

Fixed

  • תוקן אלגוריתם מחיקת עמודים זוגיים ב-DelPages לשעבר (כעת ממוזג ל-AddDelPages): הלולאה המקורית ספרה מספר עמודים סטטי מול המסמך המתכווץ, ולמעשה מחקה אינדקסים 1..נקודת אמצע במקום עמודים זוגיים אמיתיים; כעת עובר מלמעלה למטה מהעמוד הזוגי הגבוה ביותר ומוחק אינדקסים מבוססי אפס, ומתקן את דליפת המשתנה הגלובלי THotPDF בכל לחיצה

Version 2.234.1

תיקונים

  • תוקנה שגיאת הידור ביחידת HPDFJBIG2Enc (E2003 Undeclared identifier: 'Invariant'): ב-RTL של גרסאות ישנות של Delphi חסר TFormatSettings.Invariant, ו-atof משתמש כעת ב-TFormatSettings מובנה ידנית התואם ל-HPDFXFA.XFAInvariantFormatSettings כדי לשחזר את תמיכת הבנייה של RAD Studio 12.0 Win64

Version 2.234.0

תוספות

  • מפענח בעל ביצועים גבוהים נוסף לתמונות JBIG2: חילוץ תמונות בצד הטעינה (ExtractLoadedImage וכד') מפעיל כעת כברירת מחדל רקע זה לפענוח תמונות JBIG2 המוטמעות ב-PDF
  • נוסף מאפיין THotPDF.UseExternalJBIG2Decoder (ברירת מחדל True): הגדרה ל-False מאפשרת חזרה למפענח Pascal המקורי כגיבוי

Version 2.233.0

תוספות

  • מקודד בעל ביצועים גבוהים נוסף לתמונות JBIG2: הפונקציה AddImage, בעת שימוש ב-icJBIG2 לדחיסת מפות סיביות בשחור-לבן, מפעילה כעת כברירת מחדל רקע זה, המפיק זרם JBIG2 בקידוד אריתמטי מהיר יותר ותקני
  • נוספה האפשרות THPDFJBIG2Options.UseExternalEncoder (ברירת מחדל True): הגדרה ל-False מאפשרת חזרה למקודד MMR ב-Pascal כגיבוי

Version 2.232.1

תיקונים

  • תוקן פגם התפשטות נשא (carry propagation) במקודד האריתמטי generic-region של JBIG2 (HPDFJBIG2Codec) בתמונות בעלות אנטרופיה גבוהה: פלט הבתים (byte-out וריפוד 0xFF) במקודד MQ השמיט ניקוי ביטים גולשים, מה שגרם לקידוד שגוי במפות סיביות בשחור-לבן בעלות אנטרופיה גבוהה כמו רעש ומסמכים דלילים (תבניות סדירות ובעלות אנטרופיה נמוכה אינן מפעילות זאת ואינן מושפעות); כמו כן נורמלו סמני סיום של זרם הקידוד לצורתם התקנית כך שמפענחים של צד שלישי יוכלו לפענחם במלואם

Version 2.232.0

תוספות

  • רקע פענוח JBIG2 (HPDFJBIG2Codec) הורחב לתמוך בקידוד אריתמטי (MQ): חילוץ תמונות בצד הטעינה (ExtractLoadedImage) יכול כעת לפענח תמונות JBIG2 בקידוד אריתמטי — generic region אריתמטי (GBTEMPLATE 0-3 + TPGDON), מילוני סמלים ואזורי טקסט; בעבר נתמך רק MMR generic region

Version 2.231.3

תוספות

  • נוספה תמיכה בפלט PNG עבור מפענח ההתייחסות jbig2dec: נוסף הקובץ build-libpng-vc64.bat (משתמש ב-MSVC כדי לקמפל 16 אובייקטי ליבה של libpng 1.8 לתוך Win64\libpng-*.obj, מייצר אוטומטית כותרות zlib-ng ומשתמש מחדש ב-pnglibconf.h.prebuilt); שונה הקובץ build-jbig2dec-vc64.bat כדי להפעיל אוטומטית את jbig2_image_png.c ואת HAVE_LIBPNG ולקשר את אובייקטי libpng + zlib-ng כאשר מזוהים אובייקטי libpng. jbig2dec.exe תומך כעת בפלט PNG דרך -t png, המייצר תמונות 64x56 בגווני אפור של 1-bit מ-annex-h.jbig2 (פלט ה-SHA-1 תואם את פלט ה-PBM)

Version 2.231.2

תוספות

  • נוספה תשתית בנייה ל-Windows עבור מפענח ההתייחסות המסופק jbig2dec (Lib/thirdparty/jbig2dec): נוסף build-jbig2dec-bcc64x.bat (לקמפול 15 אובייקטי COFF64 הניתנים לקישור ב-Delphi באמצעות Embarcadero bcc64x, שיועברו בעתיד ל-HPDFJBIG2.pas דרך {$L}), ו-build-jbig2dec-vc64.bat (לייצור מפענח משורת פקודה עצמאי jbig2dec.exe דרך MSVC); כמו כן נוספו התבנית config_types.h.in ו-.gitignore, ותוקנו חוקי אובייקט חסרים ב-msvc.mak

תיקונים

  • בעיות קומפילציה וניידות בקוד המקור של jbig2dec במערכות כלים מודרניות של Windows: הפונקציה getopt מ-GNU משנות ה-90 שלא התקמפלה (getopt.c/getopt.h) הוחלפה במימוש מודרני (MSVC נכשל בגלל שחסר strings.h, ו-bcc64x/C23 דחו הצהרות ללא אב-טיפוס); תוקנו קיטוע של size_t ל-64 ביט ב-jbig2dec.c::hash_image, גלישה כלפי מטה של uint32→int ב-jbig2_segment.c::jbig2_find_segment, ספירת ביטים של 64 ביט ב-sha1.c::SHA1_Update, וכן שימוש שגוי בערך החזר של fread, מציין פורמט %lu, ואזהרות התיישנות של POSIX ב-jbig2dec.c. אלגוריתם הליבה לפענוח JBIG2 נותר ללא שינוי כפי שהיה במקור

Version 2.231.1

תוספות

  • חילוץ תמונות בצד הטעינה (ExtractLoadedImage) תומך כעת בשרשראות סינון מרובות: מסנני נתונים שלפני התמונה (כגון ASCIIHexDecode / ASCII85Decode / FlateDecode / LZWDecode / RunLengthDecode) מפוענחים ברצף, ואז מועברים למסנן התמונה הסופי (DCTDecode / JPXDecode או מפת סיביות רסטר) לפענוח, לדוגמה [/ASCII85Decode /FlateDecode]

Version 2.231.0

תוספות

  • נוסף רקע לפענוח פקס CCITT (יחידת HPDFCCITTDecode): הוטמע פענוח פקס חד-ממדי ודו-ממדי מסוג ITU-T T.4 (G3) ו-T.6 (G4), המאפשר לחילוץ תמונות בצד הטעינה (ExtractLoadedImage) לפענח כעת תמונות בשני צבעים מסוג CCITTFaxDecode. הפענוח תומך בפרמטרים של /DecodeParms: K, Columns, Rows, BlackIs1 ו-EncodedByteAlign

Version 2.230.2

תוספות

  • חילוץ תמונות בצד הטעינה (ExtractLoadedImage) תומך כעת בתמונות רסטר מסוג DeviceGray ו-Indexed בעלות 1, 2 או 4 ביטים לכל רכיב: הן מפורקות בצורה סיבית ומורחבות יחסית לגווני אפור של 8 ביט

Version 2.230.1

תוספות

  • חילוץ תמונות בצד הטעינה (ExtractLoadedImage) תומך כעת בתמונות מסוג DeviceCMYK: תמונות רסטר של 4 ערוצי CMYK מומרות למפות סיביות RGB באמצעות נוסחה סטנדרטית

Version 2.230.0

תוספות

  • נוסף רקע לפענוח JBIG2 (יחידת HPDFJBIG2Codec): הוטמע פענוח דו-ממדי של ITU-T T.6 (G4 / MMR) והופעל ה-THPDFJBIG2Decoder שהיה רדום, מה שמאפשר לחילוץ תמונות בצד הטעינה (ExtractLoadedImage) לפענח תמונות JBIG2Decode בשני צבעים. תומך ב-generic region בקידוד MMR (כולל קטע /JBIG2Globals עולמי משותף); פענוח אזורים אריתמטיים, מילוני סמלים, ואזורי טקסט / גווני ביניים (halftone) אינו נתמך כרגע

Version 2.229.3

תוספות

  • חילוץ תמונות בצד הטעינה (ExtractLoadedImage) תומך כעת בתמונות בעלות צבע אינדקס (Indexed): תמונות רסטר מסוג FlateDecode / LZWDecode המאוחסנות במרחב צבעים Indexed משוחזרות למפות סיביות בצבע מלא באמצעות חיפוש בלוח צבעים. צבעי בסיס מסוג DeviceRGB / DeviceGray / DeviceCMYK ולוחות חיפוש הקסדצימליים או מחרוזות נתמכים

Version 2.229.2

תוספות

  • חילוץ תמונות בצד הטעינה (ExtractLoadedImage) תומך כעת בתמונות JPXDecode (JPEG 2000): תמונות XObject המקודדות ב-JPXDecode יפוענחו למפות סיביות דרך רקע OpenJPEG; הפונקציה GetLoadedImageInfo מדווחת Decodable=True על תמונות אלו. משמעות הדבר היא שניתן לחלץ ישירות תמונות JPEG 2000 המוטמעות ב-PDF למפות סיביות מסוג VCL, וההמרה הלוך-ושוב ל-JPEG 2000 ללא אובדן נתונים היא מדויקת ברמת הפיקסל

Version 2.229.1

תוספות

  • חילוץ תמונות בצד הטעינה (ExtractLoadedImage) תומך כעת בתמונות DCTDecode (JPEG): תמונות XObject המקודדות ב-DCTDecode יפוענחו למפות סיביות דרך TJPEGImage; הפונקציה GetLoadedImageInfo מדווחת Decodable=True על תמונות אלו

Version 2.229.0

新增

  • 新增加载侧图像提取 API:GetLoadedImageCount / GetLoadedImageInfo / ExtractLoadedImage,可枚举已加载 PDF 中的图像 XObject 并将其解码回 VCL 位图(TBitmap)。GetLoadedImageInfo 通过 THPDFLoadedImageInfo 返回每张图像的尺寸、位深、颜色空间、过滤器与可解码标志,便于在提取前预检。本版可解码以 FlateDecode / LZWDecode / ASCIIHex / ASCII85 / RunLength 编码的 DeviceRGB 与 DeviceGray 8 位栅格;索引色、CMYK、DCTDecode(JPEG)与 JPXDecode(JPEG 2000)图像将在后续版本接入

Version 2.228.0

新增

  • 新增 TJpeg2000BitmapTBitmap 派生类):可直接读写 JPEG 2000 图像,LoadFromStream 将 JP2 / J2K 解码为位图、SaveToStream 将位图编码为 JPEG 2000 码流;支持无损(LosslessCompression)与有损质量(CompressionQuality)两种模式、灰度 / RGB / CMYK 通道,并附带低层解码器 THPDFJpeg2000Decoder 供自定义图像管线直接取用解码后的像素数据

修复

  • 恢复 JPEG 2000(JPXDecode,PDF 1.7 ISO 32000-1 7.4.9)图像支持:此前解码后端因库源损坏退化为占位桩,无法解码任何 JP2 / J2K 码流;现重新接入 OpenJPEG 2.5.4 引擎,可将灰度、RGB 与 YCbCr 图像解码为 8 位样本(高位深分量重采样为 8 位、YCbCr 自动转 RGB、子采样分量按最近邻上采样),兼容带 JP2 box 头的文件与裸 J2K 码流
  • AddImage 现可直接传入 .jp2 / .j2k / .jpt / .jpc 文件并按所选压缩方式嵌入 PDF(自动识别格式),无需先行手工转码

Version 2.227.0

变更

  • 将 GSUB/GPOS 上下文应用与 Mark 定位函数(37 个纯函数)从 HPDFDoc.pas 追加提取到 HPDFShaping.pas。这批函数覆盖 GSUB 上下文/链式上下文/反向链式替换、GPOS 上下文/链式上下文/嵌套定位、Mark-to-Base/Mark-to-Mark/Cursive/Mark-to-Ligature 定位、GDEF 类查找、Collect-GID 子集闭包等,全部接收 TBytes 表切片 + glyph ID 值参数,不触碰实例状态。HPDFDoc.pas 本轮减约 11000 行(含被提取函数之间的 forward 声明和注释块),累计六轮拆分减约 21700 行(原文件的 26%)

Version 2.226.0

变更

  • 将简单对象解析器(ParseSimpleDictionaryParseSimpleArray)从 HPDFDoc.pas 提取到新单元 HPDFParser.pas。这两个 byte 级递归下降解析器从 AnsiString 内容构建 THPDFDictionaryObject / THPDFArrayObject 树,不触碰 THotPDF 实例状态;原方法保留为转发 stub,公开 API 不变。这是巨石拆分第五轮,本轮减约 2060 行,五轮累计减约 10700 行(原文件的 13%)

Version 2.225.0

变更

  • 将 OpenType 整形原语(71 个纯函数)从 HPDFDoc.pas 提取到新单元 HPDFShaping.pas。这批函数覆盖 GSUB 覆盖表/查找/替换、GDEF 类查找、TTF 表读取器、脚本重排与整形(Arabic、Syriac、Indic 语系、Thai/Lao、Hebrew、Javanese 等),全部接收值参数(TBytes 表切片、UnicodeString run、glyph ID)从不触碰 THotPDFTHPDFPage 实例。HPDFDoc.pas 通过 implementation 段 uses HPDFShaping 访问,TGPOSValue/TGPOSValueArray 类型一并迁移。这是巨石拆分第四轮,本轮减约 3000 行

Version 2.224.0

变更

  • 将 Factur-X / ZUGFeRD / XMP 电子发票辅助函数(22 个 standalone 函数)从 HPDFDoc.pas 提取到新单元 HPDFFacturX.pas。这批函数覆盖 FX/Basic/Minimum/EN16931 合规验证、XMP 元数据生成、嵌入式 XML 解析,全部自包含(仅操作值参数与 TBytes,不触碰 THotPDF 实例状态)。HPDFDoc.pas 通过 implementation 段 uses HPDFFacturX 访问,公开 API 不变。这是 HPDFDoc.pas 巨石拆分的第三轮,累计三轮减约 5600 行

Version 2.223.0

变更

  • 将 Direct File API 的底层 I/O helper(44 个共享函数)从 HPDFDoc.pas 提取到新单元 HPDFDirectFileIO.pas。这些 byte / xref / object-body / AES-crypt 读取函数被加载器和 Direct File 子系统共用,提取后两个子系统都通过 uses HPDFDirectFileIO 访问。HPDFDoc.pas 因此再减少约 1640 行(累计两轮拆分减约 5200 行)。DA 专用类型(THPDFDirectReadBufferTHPDFDirectWriteBufferTHPDFDirectIntArray)和全局缓冲(GHPDFCopyBuffer)一并迁移到新单元

Version 2.222.0

变更

  • 将预检(preflight)、合规检查、PDF/VT 验证相关代码从 HPDFDoc.pas 提取到新单元 HPDFPreflight.pas。原有 25 个公开方法(CreatePreflightReportValidatePDFVTEmbedPreflightReportAsXMP 等)签名完全不变,实现改为转发到新单元的自包含 standalone 函数;HPDFDoc.pas 因此减少约 3500 行。新增 3 个只读访问器(LoadedObjectCountGetLoadedObjectByIndexLoadedRootObjectIndex)让独立单元可枚举已加载文档的对象图

Version 2.221.0

新增

  • 全面支持多语言化:将 Readme.html 提取至 Docs/en-us 目录,并新增其他 37 种语言的翻译版本;更新了安装程序脚本(HotPDF-FULL.issHotPDF-TRIAL.iss),现在会根据安装时所选的语言,自动提取并放置对应语言版本的 Readme.html 至安装根目录

Version 2.220.0

新增

  • 新增统一运行期日志门面 THPDFLogger 与全局实例 HPDFLog:把原本散落的编译期调试开关统一为运行期可控的日志门面。提供 Error / Warning / Info / Debug 四级严重度过滤,可同时输出到文件、OutputDebugString(IDE Event Log 可见)和控制台;文件目标带 10 MB 单备份滚动;线程安全(TCriticalSection 保护);关闭态热路径仅一次布尔判断即返回,发布版零开销。LoadFromFileCreatePreflightReport 和 xref-stream 解析 fallback 三处诊断点已接入,加载成功 / 失败、preflight 摘要、对象流回退等事件会在启用日志时写入结构化记录。取代改 HotPDF.inc 重编包的传统做法,用户可在运行期随时开关诊断输出

Version 2.219.0

新增

  • 新增 THotPDF.GetGPOSSingleAdjustment(GID, FeatureTag, out XPlacement, YPlacement, XAdvance, YAdvance): Boolean:OpenType GPOS LookupType 1 Single Adjustment 的独立公开查询。按任意 4 字节 feature tag(典型 'size' 光学尺寸 / 'vhal' 半高度)收集 GPOS lookup,解包 Extension(Type 9)后对 LookupType 1 子表应用已有的 _GPOSApplySingle,返回单字形的 XPlacement / YPlacement / XAdvance / YAdvance 调整(1000-em,含正负号)。至此 GPOS 9 个 LookupType 全部 spec-complete——binary applier 早被 contextual kern 嵌套消费,本版补齐 standalone 查询入口填掉 spec matrix 里最后一条 GPOS gap

Version 2.218.1

新增

  • 新增 THPDFPage.GetWideCharAdvances(Text, out TotalWidth, out Advances):一次性返回 Unicode 文本的总宽和每字形自然 advance(含 kerning)。底层用 GDI GetTextExtentExPointW 一次调用同时拿总宽 + 累积宽度数组,差分后得到每字形 advance。调用方需预先 SetLength(Advances, Length(Text))。可用于自定义排版、表格列宽计算、签名块布局等需要全部字形宽度的一次性场景

变更

  • 优化 jtJustify 两端对齐性能:v2.218.0 的 _HPDFEmitJustifiedWideLine 对每行做 N+1 次 GetWideTextWidth(总宽 1 次 + 前缀差值 N 次,每次都是完整 GDI 往返)。改为一次 GetWideCharAdvances 调用,每行 GDI 往返从 N+1 次降到 1 次。典型 A4 整页 justify(45 行 × 80 字符)从约 3645 次 GDI 往返降到 45 次,约 80 倍提升。justify 视觉输出不变(同一度量引擎,含相同 kerning)

Version 2.218.0

新增

  • 新增 jtJustify 两端对齐模式(THPDFJustificationType 枚举第四值):传入 WideTextOutBox 后,每行(除末行)的自然宽度与框宽之间的差额会分摊到行内的可拉伸间隙,使文本左右两边都对齐到框边。Latin 文本在词间空格分摊;CJK 文本(Han / 假名 / 韩文等无词间空格的脚本)在任意相邻字形间均等分摊(日式排版均等割付)。末行及已达到 / 超过框宽的行保持自然左对齐宽度。底层用 v2.215.0 的 ExtTextOut TJ 数组 emit,测量用 v2.216.0 的 GetWideTextWidth

Version 2.217.0

新增

  • 新增 THPDFPage.WideTextOutBox:Unicode 多行自动换行。镜像 TextOutBox 的契约(返回放入框内的 WideChar 数),但用 GetWideTextWidth 测量、按 WideChar 索引切分。换行规则支持两种脚本:CJK(Han / 假名 / 韩文 / CJK 标点 / 全角)在任意两个字形间断行(CJK 无词间空格的标准行为);Latin 及其他脚本在最后一个空格 / Tab 处断词,无空格时硬断。硬换行(CR / LF / CRLF)照原样执行。修复 TextOutBox(AnsiString) 对中文 / 日文 / 韩文 / 代理对文本逐字节切分导致乱码换行的问题

Version 2.216.0

新增

  • 新增 THPDFPage.GetWideTextWidth(Text: WideString): Single:Unicode 文本宽度测量。现有 TextWidth(AnsiString) 先把 WideString 收窄成 AnsiString 再查 0–255 ABC 宽度表,对 CJK / 代理对 / 多字节文本测出无意义的值;新方法用 GDI GetTextExtentPoint32WlfHeight = -1000)按当前字体整串测量,返回用户空间点宽(与 TextWidth 同坐标系,可直接做布局预算)。同 _XFAMeasureTextImpl 的测量策略
  • 新增 THPDFPage.GetWideTextRowCount(BoxWidth: Integer; Text: WideString): Integer:Unicode 行数预测,镜像 GetTextRowCount 的 AnsiString 契约,基于 GetWideTextWidth 让 CJK / 代理对文本正确换行计数

Version 2.215.0

新增

  • 新增 THPDFPage.ExtTextOut(三个重载:PWORD / WideString / AnsiString):GDI ExtTextOut 风格的扩展文本输出,接受每字形水平位移数组 Dx,emit 单个 [<hex> <num> ...] TJ 数组,让调用方精确控制每个字形原点——用于表格数字对齐、手动字距、两端对齐、表单值填充和签名块排版。复用现有 _GPOSEmitPositionedRun TJ emit 器与 _GPOSGlyphAdvance1000 hmtx 读取,Dx 为 PDF 用户空间点(与 TextOut 的 X/Y 同坐标系);当 Dx 值等于字形自然 advance 时 TJ 调整数归零,可在一次调用内混排自然与覆盖字形。仅支持简单 LTR 文本,RTL bidi 重排与 producer-side shaping 被旁路

Version 2.214.0

新增

  • 新增 THPDFPage.AttachSignatureFieldAppearance:给已通过 AddSignatureField / AddSignedSignatureField / AddPAdESSignatureField 创建的签名字段挂上可见外观 /AP /N Form XObject,并返回 Form 让调用方在 widget 本地坐标系内绘制签名图片、签名者姓名、日期或原因文字;内置薄边框加浅灰底色作为默认的“在此签名”占位外观
  • 新增 HPDFNormalizeRect 工具函数(三个重载:TRect / THPDFRectangle / 四个 Extended 变参):把矩形角点重排为 Left<=RightTop<=Bottom,让鼠标拖框等无序输入可安全传给绘图 API
  • THPDFPage.RotateCoordinate 从 protected 提到 public:外部调用方现在可直接复用与 RectangleRotate 相同的旋转约定,计算旋转矩形角点、多边形顶点或文字包围盒

Version 2.213.0

新增

  • 新增 THPDFPage 几何便利方法套件:Arc 角度定义弧、Pie 角度定义扇形、Chord 弓形、ArcTo 中心加半径加扫角弧、Polyline 折线、Polygon 多边形、PolyBezier 三次贝塞尔样条。所有方法都复用已有的 MoveTo / LineTo / CurveToC / CurveArc 底层路径原语,对齐 GDI TCanvas 角度与点数组语义,让画弧、扇形、折线和样条曲线不必再手写操作符循环

Version 2.212.0

Added

  • נוסף THPDFPage.SetAnnotationJavaScriptAction: כעת ניתן להגדיר להערות רגילות JavaScript action עבור כניסת עכבר, יציאת עכבר, לחיצה, שחרור, קבלת פוקוס ואובדן פוקוס באמצעות /AA, מה שמקל על הוספת סקריפטים אינטראקטיביים בתהליכי עזר להערות, קישורים ומראה טפסים

Version 2.211.0

Added

  • נוסף THPDFDocOutlineObject.SetURIAction: צמתי מתאר המוחזרים על ידי OutlineRoot.AddChild יכולים כעת לעבור מ-/Dest בעמוד הפנימי של ברירת המחדל ל-action מסוג /S /URI, מה שמקל על אספקת עזרה חיצונית, פורטלי תמיכה או קישורים למשאבים קשורים ישירות בחלונית הסימניות

Version 2.210.0

Added

  • נוסף THotPDF.AutoCreateURL: כאשר מופעל, שורת THPDFPage.TextOut אופקית יחידה יכולה לכתוב באופן אוטומטי טקסט URL של http://, https://, mailto: ו-www. כהערות קישור של /S /URI, מה שמקל על דוחות, ספריות ודפי מידע ליצירת קשר ליצור קישורים לחיצים באופן ישיר

Version 2.209.0

Added

  • נוספו THotPDF.SetOpenNamedDestinationAction ו-THotPDF.ClearOpenNamedDestinationAction: ניתן כעת להגדיר את ה-Catalog /OpenAction של המסמך לקפוץ ליעדים בעלי שם הרשומים על ידי THotPDF.RegisterNamedDestination, מה שמקל על ניווט למבוא פרק יציב בפתיחה של כריכות, טבלאות תוכן או מסמכים שבהם סדר היצירה משתנה

Version 2.208.0

Added

  • נוסף THPDFPage.AddPushButtonWithNextAction: כעת ניתן לשרשר action של PDF שני לפעולה הראשית של כפתור דרך /Next, מה שמקל על תהליכי טפסים אינטראקטיביים בקליק אחד, כגון ביצוע /ResetForm ולאחריו הצגת שדות, או הסתרת שדות לפני הפעלת פעולה עם שם

Version 2.207.0

Added

  • שיפור ב-THotPDF.RegisterOptionalContentGroup: הוספת הפרמטר UserToggleAllowed, המאפשר לכתוב קבוצות תוכן אופציונליות ל-/OCProperties /D /Locked תוך שמירה על מצב נראות ברירת מחדל, שימושי עבור מפות, שרטוטי הנדסה ושכבות מרובות שפות שבהן משתמשי הצופה לא אמורים לשנות את המצב

Version 2.206.0

Added

  • נוסף THPDFPage.AddNamedDestinationLink: קישורי עמודים יכולים כעת להפנות ישירות ליעדים עם שמות הרשומים על ידי THotPDF.RegisterNamedDestination, מה שמוציא פלט של action מקומי /S /GoTo ומחרוזת שמות יעדים /D, מה שמקל על עמודי תוכן עניינים, הפניות צולבות ומסמכים עם מספרי עמודים משתנים לשמור על ניווט יציב

Version 2.205.0

Added

  • נוספו THotPDF.JBIG2Options ו-THPDFJBIG2Options: כעת AddImage(..., icJBIG2) יעביר כוונות קידוד ברמת המסמך עבור Lossless, LossyLevel ו-UseSymbolDictionary אל backend מקודד ה-JBIG2 הרשום; ערכי ברירת המחדל שומרים על נתיב הפלט MMR ללא אובדן הקיים, והגדרות עם אובדן עדיין נדחות כאשר לא רשום backend

Version 2.204.0

Added

  • נוספו THotPDF.EmfOptions ו-THPDFEmfOptions: הייבוא המשופר של EMF/WMF יכול כעת להגדיר יחס fit, קנה מידה של רינדור מפת סיביות EMF, קנה מידה של רינדור מפת סיביות WMF, שיטות דחיסה של מפות סיביות צבעוניות ודחיסת מפות סיביות של 1-bit לפי מסמך; ערכי ברירת המחדל שומרים על התנהגות הפלט הקיימת, וניתן להעביר מפות סיביות צבעוניות של EMF ל-icFlate או לשמור על ברירת המחדל icJpeg

Version 2.203.0

Added

  • ב-TfrxHotPDFExport נוספו המאפיין ExportMode ו-enum TfrxHotPDFExportMode: ברירת המחדל hemPageMetafile שומרת על התנהגות ייצוא תצוגה מקדימה של עמוד שלם, hemObjectCanvas מאפשר ל-FastReport לצייר עצמי TfrxView בזה אחר זה במהלך מעבר ExportObject, ואז HotPDF מייבא את קובץ ה-meta של העמוד הנוכחי, מה שמקל על תרחישי שילוב FastReport הדורשים שליטה בסדר הייצוא ברמת האובייקט

Version 2.202.0

Added

  • נוסף פלט תמונה מונוכרומטית מקורית JBIG2: כעת THPDFImageCompressionType כולל את icJBIG2, ו-AddImage כמו גם AddImage(FileName) יכולים לכתוב bitmap של 1-bit כזרם תמונות של /JBIG2Decode עבור PDF 1.4+; כאשר לא רשום backend חיצוני לקידוד, ייעשה שימוש בנתיב מובנה של אזור כללי MMR ללא אובדן איכות, תוך שמירה על מנגנון ההרחבה שבו יש עדיפות ל-backend רשום

Version 2.201.0

Added

  • נוספו גשר JBIG2 backend ומתאם ייצוא PDF טבעי ל-TDBGrid: כעת חשופים RegisterJBIG2DecoderBackend, RegisterJBIG2EncoderBackend, איתור יכולות ומחלקות delegator ל-encoder / decoder, ועדיין מחזירים במפורש False כאשר לא רשום backend ברמת ייצור; DBGridHotPDFExport יכול לייצא עמודות גלויות של VCL TDBGrid או שדות dataset גלויים כטבלאות מחולקות לעמודים ל-file או stream, ולשחזר את ה-bookmark המקורי של ה-dataset לאחר הייצוא

Version 2.200.4

Fixed

  • דוגמת E-Invoice מוסיפה כעת את ChargeTotalAmount ואת AllowanceTotalAmount לסיכום הכותרת עבור פרופיל ZUGFeRD 1.0 COMFORT: סכמת ZUGFeRD 1.0 COMFORT דורשת שכל אחד מרכיבי הסכום יופיע בדיוק פעם אחת, והיעדרם גרם לנתוני החשבונית להיכשל באימות כללי העסק של ZUGFeRD/Factur-X

Version 2.200.3

Added

  • דוגמת E-Invoice מוסיפה את הפרופילים ZUGFeRD 1.0 COMFORT ו-ZUGFeRD 2.0 BASIC: הראשון יוצר XML של חשבונית עבור סכמת CrossIndustryDocument 1p0 הישנה, ואילו השני משתמש בסכמת CrossIndustryInvoice 100 וב-zugferd-invoice.xml; שניהם עוברים את אימות Factur-X/ZUGFeRD המובנה
  • דוגמת E-Invoice מוסיפה בורר רמת תאימות PDF/A, כך שבזמן היצירה ניתן להחליף את ברירת המחדל של הפרופיל ב-PDF/A-3b או PDF/A-3u

Version 2.200.2

Fixed

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

Version 2.200.1

Fixed

  • אימות ZUGFeRD ו-Factur-X מפענח כעת XML של חשבוניות מוטמעות ומטא-נתוני XMP דחוסים ב-Flate מתוך קובצי PDF טעונים, מזהה מזהי PDF/A בסגנון תכונות, ומקבל קובצי XML של חשבוניות XRECHNUNG המשתמשים ב-/AFRelationship /Source

Version 2.200.0

Added

  • כעת ניתן לבדוק חשבוניות היברידיות טעונות של Factur-X ו-ZUGFeRD באמצעות דוח אימות מובנה המזהה מטא-נתוני PDF/A-3, רישום /AF בקטלוג, רישום עץ שמות ב-EmbeddedFiles, עקביות שמות קבצים ב-XMP, כללי שמות קבצים של פרופיל, כללי /AFRelationship והתאמה להנחיות XML

Version 2.199.0

Added

  • ניתן כעת לבדוק קובצי חשבונית היברידיים מסוג PDF/A-3 שנטענו באמצעות ממשקי קורא של Factur-X ו-ZUGFeRD החושפים את הקטלוג שנטען, ערכי EmbeddedFiles, בייטים של XML מוטמע, מטא-נתוני XMP של המסמך, פרטי פרופיל החשבונית שזוהה וחילוץ XML של החשבונית

Version 2.198.1

Added

  • תהליכי עבודה של Factur-X PDF/A-3 חושפים כעת את FacturXWarnings כדי שהקוראים יוכלו לזהות קבצים מצורפים תומכים נוספים שסוגי ה-MIME שלהם נמצאים מחוץ לתבניות מסמכי התמיכה המומלצות PDF, טקסט, תמונה, CSV, XML, JSON, גיליון אלקטרוני ו-ODS, מבלי לדחות את הקובץ המצורף

Version 2.198.0

Added

  • הטמעת חשבונית PDF/A-3 Factur-X מקבלת כעת את רמות ההתאמה הצרפתיות EXTENDED-CTC-FR ו-EXTENDED-B2B-FR, ומאמתת אותן מול מזהה ההנחיה Factur-X 1.09 EXTENDED לפני כתיבת מטא-נתוני החשבונית ההיברידית

Version 2.197.18

Fixed

  • אימות PDF/A-3 Factur-X מתייחס כעת ל-COMFORT כשם פרופיל המיועד ל-ZUGFeRD 1.0 בלבד, ודוחה מכלי factur-x.xml נוכחיים לפני שהם יכולים לכתוב מטא-נתוני חשבונית היברידית שאינם תואמים

Version 2.197.17

Fixed

  • מטא-נתוני PDF/A-3 ZUGFeRD 2.0 כותבים כעת את מרחב השמות הישן של הרחבת PDF/A urn:zugferd:pdfa:CrossIndustryDocument:invoice:1p0# תוך שמירה על zf:Version כ-2p0, בהתאם לכללי אימות החשבונית ההיברידית לפני סיום המכל

Version 2.197.16

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים MINIMUM and BASIC WL פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים AFRelationship Data, enforces Alternative פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים XRECHNUNGפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.15

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים Version values 1.2, 2.0, 2.1, 2.2, 2.3, and 3.0פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.14

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים EN16931 פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים EN 16931, matching current sample metadata while preserving existing EN 16931 calls

Version 2.197.13

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים urn:factur-x.eu:1p0:basic and urn:factur-x.eu:1p0:extended פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים BASIC and EXTENDED פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.12

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים ZUGFeRD-invoice.xml filename, COMFORT profile, urn:ferd:pdfa:CrossIndustryDocument:invoice:1p0# פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים urn:ferd:CrossIndustryDocument:invoice:1p0 פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.11

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים zugferd-invoice.xml filename with Version 2p0פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים urn:zugferd.de:2p0 פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.10

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים fx:Version as 3.0 while keeping ordinary Factur-X metadata at 1.0פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.9

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים ConformanceLevel פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.8

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים signature-time-stamp פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.7

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים signature-policy-identifier פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.6

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים Reason פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים /Reason פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים signature-policy-identifier פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.5

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים CountryCode policy so current German ZUGFeRD invoices reject MINIMUM and BASIC WL, enforce Alternative פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים XRECHNUNG פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.4

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים CountryCode policy so German ZUGFeRD invoices can enforce Alternative פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים XRECHNUNG פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.3

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים xrechnung.xml פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים XRECHNUNG, factur-x.xml פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.2

נוסף

  • PDF/A-3: THotPDF.AddFacturXAssociatedFile פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים factur-x.xml or xrechnung.xml in Catalog /AF and /Names /EmbeddedFilesפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

שונה

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים /ModDate and raw MD5 /CheckSum פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים /Params פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.1

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים UseXRefStream / UseObjectStreams פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.197.0

שונה

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים /CIDToGIDMap פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים /CIDSet פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.196.8

Fixed

  • PDF/A-1 Info dictionary and XMP metadata equivalence פועל כעת כראוי ומונע את הפלט הקודם שהיה לא תקין או לא תואם

Version 2.196.7

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.196.6

Fixed

  • PDF/A markup-annotation print flags and appearance streams פועל כעת כראוי ומונע את הפלט הקודם שהיה לא תקין או לא תואם
  • PDF/A rejection for non-standard named actions on form push buttons פועל כעת כראוי ומונע את הפלט הקודם שהיה לא תקין או לא תואם

Version 2.196.5

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.196.4

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.196.3

Added

  • graceful XFA calculate evaluation for unsupported FormCalc constructs זמין כעת, והפלט הקיים נשאר ללא שינוי אלא אם היישום משתמש ביכולת זו

Version 2.196.2

Added

  • XFA calculate evaluation for .rawValue, Sum(arr[*].field), and JavaScript this.rawValue זמין כעת, והפלט הקיים נשאר ללא שינוי אלא אם היישום משתמש ביכולת זו

Version 2.196.1

נוסף

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים+ - * /פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.196.0

נוסף

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים <calculate> פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.195.0

נוסף

  • XFA <exData> פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים <a href> פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • XFA flatten: exData rich text degraded-markup handling — unsupported inline tags (<b>, <em>פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים <exData contentType="text/html"> פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.193.0

נוסף

  • XFA <exData> פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים <p> פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים text-align property on <p>: center and right פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים justify פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים margin-top, margin-bottom, space-before, and space-after in the <p> style attribute, giving control over vertical gaps between paragraphs

Version 2.192.0

Added

  • שיטוח של ציור טקסט עשיר XFA מסוג <exData> מציב כעת כמה ריצות <span> מפסקה אחת זו לצד זו, וכל אחת שומרת על ה־CSS ה־inline שלה — מודגש, נטוי, צבע וגודל גופן — במקום שהשלב הקודם יעבד רק את ה־span הראשון
  • כל ריצה ממוקמת לפי הרוחב שנמדד לה, כך שה־spans עם הסגנונות השונים זורמים משמאל לימין לאורך השורה בלי לחפוף
  • ערימת פסקאות עם יישור טקסט וקישורים לחיצים יגיעו בעדכונים הבאים

Version 2.191.0

Added

  • שיטוח של טופס XFA מציג כעת ערך טקסט עשיר של <exData> (ציור text/html) כריצת טקסט מעוצבת במקום לדלג עליו — ה־CSS בתוך ה־span קובע מודגש, נטוי, צבע וגודל גופן
  • השלב הראשון הזה מכסה ריצה מעוצבת אחת (פסקה אחת, span אחד); זרימה מרובת span, יישור פסקאות וקישורים לחיצים יגיעו בעדכונים הבאים

Version 2.190.43

Fixed

  • Fallback השחזור של object-stream מאתר כעת איבר לפי המיקום שלו בתוך הזרם במקום להתייחס למיקום הזה כמספר אובייקט PDF, כך שה־fallback באמת מחזיר נתונים במקום להישאר ריק תמיד
  • ה־fallback הזה כבר לא מתייג כל אובייקט משוחזר כדף — רק אובייקט שהנתונים הגולמיים שלו מצהירים שהוא דף מסווג ככזה, כך שחברי object-stream לא קשורים כבר לא מנפחים את מונה הדפים — ואובייקט שנותר ברשימת ה־indirect-object אחרי שגיאת parse מוסר כעת לפני שהוא משוחרר

Version 2.190.42

Security

  • ייבוא קובץ מפתח PKCS#12 ‏(.pfx/.p12) דוחה כעת מונה איטרציות PBKDF2 מחוץ לטווח במקום לחתוך אותו לשדה של 32 ביט; קובץ שנבנה בזדון כבר לא יכול לבקש מיליארדי סבבי גזירת מפתחות (מניעת שירות) או לגרום למונה להתגלגל לערך לא מכוון

Version 2.190.41

Fixed

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

Version 2.190.40

Fixed

  • העתקה של דף שמשתמש בכמה משאבי graphics-state ‏(ExtGState) כבר לא ממפה את כולם לשם אחד ומוחקת את כולם מלבד אחד; כל מצב שהועתק מקבל כעת שם נפרד

Version 2.190.39

Fixed

  • הוספת hyperlink לדף טעון ש־/Annots הקיים שלו הוא הפניה תלויה או לא מערך כבר לא גורמת לקריסה; במצב כזה מותקן מערך annotations חדש במקום ללהק את הערך הבלתי שמיש

Version 2.190.38

Fixed

  • פיצול או חילוץ של דפים כבר לא מקצה מידות דוגמה קשיחות לתמונה שחסר לה /Width או /Height, דבר שדפק תמונות במסמכים לא קשורים בגודל קבוע; מידה חסרה נשארת כעת ללא שינוי
  • בחירת content-stream במהלך חילוץ דפים כבר לא מעניקה בונוס קבוע לאובייקט שמספרו 192, דבר שעיוות את דירוג הזרמים בכל מסמך שבמקרה השתמש במספר האובייקט הזה

Version 2.190.37

Fixed

  • תיקון של דף שמפנה למשאב תמונה חסר (XObject) או graphics-state ‏(ExtGState) במהלך העתקה או פיצול פותר כעת את אובייקט המקור לפי מספר האובייקט שלו במקום להתייחס למספר כאל מיקום ברשימה, כך שמועתק האובייקט הנכון — או אף אחד — במקום אובייקט לא קשור, והעתקה שנכשלה כבר לא מבצעת dereference ל־nil

Version 2.190.36

Fixed

  • עריכה ושמירה מחדש של דף שהתוכן שלו מפוצל בין כמה content streams כבר לא מציירת את הזרמים המוקדמים פעמיים — התוצאה המאוחדת נשמרת בזרם אחד והאחרים מרוקנים, והזרמים מחוברים עם whitespace כך שטוקנים סמוכים לא יתאחדו לטוקן לא חוקי אחד ‏(ISO 32000-1 §7.8.2)
  • דף שיש בו משאב /XObject אבל אין בו משאב /Font כבר לא משאיר במקומם את שמות הגופנים של הדף הקודם; רשימת שמות הגופנים מתאפסת כעת במקום רשימת שמות התמונות

Version 2.190.35

Fixed

  • יצירת subset לגופן TrueType מוטמע עם טבלת glyph-location ‏(loca) פגומה כבר לא קוראת מחוץ לגבולות — זוג היסטים הפוך או מחוץ לטווח נדלג כעת במקום לגלוש לאחור לאורכי העתקה עצומים, וטבלת horizontal-metrics ‏(hmtx) נבדקת מול הגבולות לפני ההעתקה שלה

Version 2.190.34

Fixed

  • העתקת מטא־נתוני מסמך ‏(page labels ו־named destinations) למסמך שכבר יש בו רשומות כאלה כבר לא דולפת את הערכים הקודמים; הרשומות מוחלפות כעת דרך מסלול ההחלפה של ה־dictionary עצמו במקום להתנתק בלי שחרור

Version 2.190.33

Fixed

  • טעינת מסמכי PDF 1.6 מסוימים שהדפים שלהם משוחזרים מ־object streams כבר לא משתפת ערכי dictionary בין שני אובייקטי דף, דבר שהיה עלול לשחרר את אותו אובייקט פעמיים כשהמסמך שוחרר; הערכים מועתקים כעת לעומק

Version 2.190.32

Fixed

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

Version 2.190.31

Fixed

  • רינדור טקסט שמכיל את קוד הנקודה U+FFFF כבר לא כותב איבר אחד מעבר לסוף טבלת ה־glyphs הפנימית של הגופן; הטבלה גדלה לפי הצורך לפני ששומרים את ערך ה־glyph

Version 2.190.30

Fixed

  • BeginParagraph דוחה כעת אינדקס פסקה של 0 במקום לקרוא לפני תחילת מערך הפסקאות, ומשחרר כל פסקה שכבר נמצאת בתהליך כך שקריאות חוזרות כבר לא דולפות
  • EndParagraph מנקה כעת את ההפניה שלו אחרי שחרור הפסקה הנוכחית, כך שהפעלה כפולה כבר לא משחררת את אותו אובייקט פעמיים

Version 2.190.29

Security

  • וקטורי אתחול ומפתחות של AES כבר לא נוצרים מ־fallback צפוי ולא קריפטוגרפי כשהמקור האקראי של המערכת אינו זמין לזמן קצר; הספרייה מסרבת כעת להצפין במקום לייצר IV או מפתח חלשים וניתנים לניחוש

Fixed

  • חישוב MD5 של מחרוזת ריקה כבר לא מבצע dereference למצביע לא תקין

Version 2.190.28

Fixed

  • רינדור EMF metafiles שמכילים רשומות PolyDraw מחיל כעת את דגל הסוג של כל נקודה במקום לקרוא את הדגל של הנקודה הבאה — ובגרסת 16 ביט, במקום להשתמש שוב בדגל של הנקודה הראשונה לכל נקודה — כך שמקטעי קו, עקומה ו־close-figure מצוירים נכון וה־parser כבר לא קורא מעבר לסוף מערך הנקודות

Version 2.190.27

Fixed

  • פענוח של זרם LZWDecode שמצהיר על TIFF Predictor 2 עם ערך Columns או Colors אפס בפרמטרי הפענוח שלו כבר לא מעלה שגיאת division-by-zero; שלב ה־predictor נדלג כאשר אי אפשר להשתמש בערכים האלה
  • ה־LZW decoder עם ארגומנט יחיד מאתחל כעת במלואם את פרמטרי הפענוח שלו, וכך אין עוד תלות בערכי stack לא מאותחלים

Version 2.190.26

Fixed

  • חישוב תו הביקורת של Code 93 כבר לא מאפס את מונה המשקל הלא נכון, כך שנתונים ארוכים מ־14 תווים מפיקים כעת את סמלי הביקורת הנכונים
  • Code 128 set B מקודד כעת נכון את האות הקטנה i במקום להחליף אותה ברווח, דבר שקלקל את הסימן ואת ה־checksum שלו
  • חישוב ספרת הביקורת של MSI barcode משתמש כעת בערך המספרי של כל ספרה במקום בקוד התו שלה, בהתאם לקוראי MSI תקניים
  • ברקודים שנציירים עם רוחב module גדול כבר לא מציפים מונה פנימי, דבר שיכול היה לייצר רוחבי פס שליליים או משובשים
  • ציור של ברקוד שהנתונים שלו נכשלים בבדיקת תקינות כבר לא דולף את אובייקטי font, pen ו־brush השמורים
  • השגרה העצמאית DrawText משחזרת כעת את ה־canvas font ששמרה בפועל, במקום לאפס את font של הקורא לברירת מחדל ריקה

Version 2.190.25

Fixed

  • פענוח של זרם מקוצר או פגום ASCIIHexDecode, ASCII85Decode או RunLengthDecode שחסר לו סימון סוף־נתונים כבר לא נתקע בלולאה אינסופית שצורכת זיכרון — המפענחים עוצרים כעת כשהקלט נגמר במקום לעבד שוב בתים ישנים
  • ה־filter ‏ASCIIHexDecode שוב דוחה תווי הקסה לא חוקיים; טעות קדימות אופרטורים אפשרה לחלק מהבתים מחוץ לטווח לעבור את בדיקת התקינות

Version 2.190.24

Fixed

  • העתקה או מיזוג של אובייקטים שה־nested dictionaries שלהם משוחזרים במהלך recovery של מסמך כבר לא משבשת את ה־dictionary או דולפת זיכרון — השגרה אחסנה מופעי אובייקטים בחריצים שמיועדים לרשומות פריט פנימיות, וזרקה רשומות בלי לשחרר אותן; החלפות והסרות פועלות כעת נכון על רשומות הפריט

Version 2.190.23

Fixed

  • הטמעת גופן Type 0 ‏(CID) שומרת כעת את מפת /ToUnicode שלה גם כשדחיסת מפת התווים לא מפיקה פלט — מסלול ה־fallback דילג בעבר על רישום המפה, כך שטקסט בגופן הזה לא היה ניתן להעתקה או לחילוץ, והוא גם היה עלול לשחרר את זרמי העבודה שלו פעמיים; המפה נשמרת כעת תמיד, לא דחוסה אם צריך, וכל זרם משוחרר בדיוק פעם אחת

Version 2.190.22

Fixed

  • טעינת cross-reference table שמפנה לאובייקטים עם מספר generation של 10 ומעלה — תופעה נפוצה ב־PDFs שעברו הרבה incremental updates — כבר לא כותבת מחוץ לטבלת זיהוי הכפילויות הפנימית; ערכים כאלה מתקבלים כעת בלי de-duplication במקום להשחית את ה־heap, וערך פגום שמספר האובייקט שלו נקרא כאפס מדולג במקום לאנדקס לפני תחילת הטבלה

Version 2.190.21

Fixed

  • העברת שם font באורך 32 תווים או יותר ל־SetFont כבר לא חורגת משדה face-name הקבוע של מבנה הגופן הפנימי — השם מועתק כעת באותה שגרה מוגבלת־אורך שכבר משמשת לבדיקת גופנים מותקנים, כך ששם face ארוך מדי נחתך בבטחה במקום להשחית את ה־stack

Version 2.190.20

Fixed

  • הוספת תמונה לא מונוכרומית עם דחיסת CCITT Group 3/4, או כ־1-bit image mask, כבר לא משחיתה את ה־heap — בונה התמונה שחרר בעבר את הזרם שלו ובלע את שגיאת ההמרה במסלול הכשל, כך שה־destructor נאלץ לשחרר את אותו זרם פעם נוספת; השגיאה מתפשטת כעת ולכן אובייקט התמונה נכשל בבנייה בצורה נקייה במקום זאת
  • בניית טבלת חיפוש הצבעים עבור תמונה indexed של 8 ביט כבר לא מבקשת ערך palette אחד יותר ממה שמאגר ה־lookup יכול להכיל, וכך נעלמת כתיבה מחוץ לגבולות שיכלה להתרחש כשה־bitmap המקורי נושא palette מלא של 256 רשומות

Version 2.190.19

Security

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

Version 2.190.18

Security

  • ייבוא של credential או certificate פגום מסוג PKCS#12 ‏(.pfx/.p12) במהלך digital signing כבר לא קורא מעבר לסוף המאגר שלו — שדה ASN.1 length גדול מדי שעבר בעבר את בדיקת הגבולות נדחה כעת, כך שחומר signing לא מהימן כבר לא יכול להפעיל קריאה מחוץ לגבולות

Version 2.190.17

Added

  • הטוען הסטנדרטי של מסמכים קורא כעת hybrid-reference PDFs — קבצים ש־cross-reference table trailer שלהם נושא section צדדי /XRefStm, כפי שמפיקים exporter-ים נפוצים של אופיס — כך ש־LoadFromFile טוען את האובייקטים שקבצים כאלה שומרים בתוך compressed object streams במקום לראות רק מסמך חלקי
  • cross-reference streams ו־object streams שמאוחסנים בלי compression filter נטענים כעת כראוי; ‏ISO 32000-1 מתיר למפתח /Filter להיעדר

Fixed

  • שמירה מחדש של מסמך hybrid-reference טעון עם הגנת AES-256 — ActivateProtection יחד עם SaveLoadedDocument, או EncryptFile — כבר לא נכשלת עם list-index error, והפלט המוצפן שומר כל אובייקט של קובץ המקור

Version 2.190.16

Changed

  • איתור object header ומילת המפתח stream במהלך rewrites של Direct File API כבר לא סורק מחדש את התצוגה המקדימה של כל אובייקט מההתחלה או משכפל אותה לניסיון חוזר, וכך הצפנת AES-256 של מסמך benchmark בגודל 2 GB עם 1.67 מיליון אובייקטים מהירה בערך פי 2.3 ‏(49 ל־14 שניות), הפענוח מהיר בערך פי 2.7 ‏(43 ל־16 שניות), ו־direct rewrite מלא יורד מכ־10 ל־6 שניות

Version 2.190.15

Fixed

  • LoadFromFile ו־LoadFromStream כבר לא עוצרים לפני תחילת הניתוח כאשר בתים מופיעים לפני כותרת %PDF — קבצים שנשמרו בתוך HTTP או Signed HTTP Exchange ‏(SXG) wrappers, תצלומי דואר ותכולות דומות מגיעים כעת למסלולי שחזור המסמך במקום להיכשל עם שגיאת המרת מספר גרסה
  • טעינת שחזור של מסמכים עם נתוני cross-reference לא שמישים לוקחת כעת את מונה הדפים מעץ הדפים החי במקום לספור כל אובייקט מסוג דף בקובץ, כך שדף שנמחק בעדכון מצטבר כבר לא קם לתחייה והמונה המדווח תואם לקוראים אחרים
  • כאשר מסמך פגום משוחזר באמצעות סריקה, גרסאות אובייקט שנכתבו מאוחר יותר בקובץ מקבלות כעת עדיפות על פני גרסאות מוקדמות יותר של אותו מספר אובייקט, בהתאם לסמנטיקה של incremental update

Version 2.190.14

Added

  • ה־Direct File API קורא כעת hybrid-reference PDFs — קבצים ש־cross-reference table שלהם נושא section צדדי /XRefStm, כפי שמפיקים exporter-ים נפוצים של אופיס — כך ש־direct open, copy, rewrite ו־AES-256 encryption רואים את האובייקטים הדחוסים שהקבצים האלה שומרים ב־object streams במקום לפספס אותם

Fixed

  • אובייקטים ששוחררו על ידי גרסה חדשה יותר של PDF שעבר incremental update עם cross-reference table מסורתי כבר לא יכולים לקום לתחייה מגרסה ישנה יותר במהלך direct rewrite
  • רשומות cross-reference חופשיות כבר לא תורמות גבולות אובייקט מזויפים, דבר שיכול היה לחתוך אובייקטים שנשמרו סמוך לתחילת הקובץ במהלך direct rewrites של מסמכים עם מספרי אובייקט ממוחזרים

Version 2.190.13

Changed

  • פתיחת PDFs שה־document catalog שלהם נמצא בתוך compressed object stream עם DAOpenFileReadOnly או DACopyFile כבר לא נופלת לטעינת מסמך מלאה כדי לגלות את מונה הדפים: בקובץ benchmark של 1.25 GB הפתיחה הישירה ירדה מכ־0.9 שניות לכמה מילישניות, וההעתקה הקלה בערך נחצתה

Fixed

  • ה־Direct File API עוקב כעת אחרי שרשרת /Prev של cross-reference stream, כך ש־PDFs עם incremental updates חושפים את כל האובייקטים שלהם ל־direct open, copy, rewrite ו־AES-256 encryption במקום רק את הגרסה האחרונה ביותר
  • אובייקטים ששוחררו על ידי גרסה חדשה יותר של PDF עם incremental update כבר לא יכולים לקום לתחייה מקטע cross-reference ישן יותר במהלך direct rewrite

Version 2.190.12

Changed

  • נתיבי ה־rewrite של Direct File API — EncryptFile, DecryptFile ו־DASaveAsFile אחרי שינויי מסמך — קוראים כעת את המקור דרך חלון מחליק ומאגדים כתיבות פלט, כך שעיבוד PDFs עצומים עם מיליוני אובייקטים רץ כמה פעמים מהר יותר: בבדיקות על מסמך של 2 GB, הצפנת AES-256 ירדה מכ־153 ל־49 שניות, הפענוח מכ־121 ל־43 שניות, ו־direct rewrite מלא מכ־48 ל־10 שניות
  • גופי אובייקט שכבר מוחזקים בזיכרון כבר לא נשלפים מהדיסק פעם שנייה בזמן ש־direct rewrite מעתיק אותם לקובץ הפלט
  • פתרון הפניות עקיפות /Length במהלך direct AES-256 rewrite כבר לא פותח מחדש את קובץ המקור עבור כל חיפוש

Version 2.190.11

Added

  • השטחת טפסים קלה יותר להפעלה מתוך קוד יישום: FlattenFormFields מחזיר את מספר שדות ה־AcroForm שהשטיח, בעוד שהעוזרים החדשים HasFormFields ו־FormFieldExists מאפשרים ליישומים לבדוק PDFs טעונים או טפסים בתהליך לפני הסרת שדות אינטראקטיביים
  • הדגמות Preflight ב־CLI מכסות כעת פלט CSV, אימות פרופילים ו־presets, נתיבי פלט מדויקים של קובץ יחיד, דוחות אימות PDF/VT, סיכומים מצטברים וקישורי dashboard, בעוד שהדגמות Preflight Report ב־GUI מאמתות פרופילים לפני יצירה ושומרות פלט CSV מסונן־פרופיל בפורמט CSV

Version 2.190.10

Fixed

  • אחרי MovePage למסמך יש שוב דף נוכחי פעיל, בדומה ל־DeletePage: ציור מיד אחרי מעבר עובד כעת בלי לבחור דף קודם, הציור נוחת על אותו דף שהיה פעיל לפני המעבר, וסגירת המסמך מיד אחרי מעבר כותבת באופן אמין כל font דרך המסלול הרגיל

Version 2.190.9

Fixed

  • מסמכים שהושלמו מיד אחרי MovePage כבר לא מאבדים את הגופנים שלהם: נתוני הגופן המשותפים שנדחו מדפים שכבר נכתבו נפלטים כעת תמיד בסגירת המסמך, גם כשאין דף פעיל באותו רגע, כך שהטקסט בכל דף שומר את משאבי הגופן שלו ומעובד נכון
  • חזרה לדף קודם ובחירת font נוסף כבר לא כותבות מעל font שכבר שימש בדף הזה: שמות משאבים שממתינים ברישום הגופנים המשותף נשמרים כעת, כך שכל font שומר על שמו והם שניהם מעובדים נכון
  • אם דחיסה של font מוטמע נכשלה אי פעם, תוכנית הגופן נשמרת כעת לא דחוסה ואובייקט הגופן מושלם כרגיל, במקום לייצר רשומת font לא שלמה שכמה viewers לא יכלו לעבד
  • כאשר SimpleLatinFonts מופעל, טקסט שנצייר עם Symbol או ZapfDingbats שומר על המשמעות הסימבולית שלו: faces סימבוליים מודרים מקיצור הטקסט הפשוט ללא הטמעה, שהיה משנה אילו glyphs מופיעים ‏(ISO 32000-1 §9.6.6.2)
  • יצירת PDFs כבר לא מעלה שגיאות integer-overflow בפרויקטים שמודבקים עם overflow checking מופעל כאשר font subsetting פעיל, ושימוש חוזר באותו מופע component על פני כמה מסמכים כבר לא דולף זיכרון בתהליכים נדירים שמאתחלים מחדש או בונים מחדש מסמך באמצע

Version 2.190.8

Fixed

  • Contextual kerning כבר לא מוחל פעמיים כאשר font מספק כמה כללי context חלופיים ב־OpenType lookup אחד: תתי־הטבלאות של הכללים נבדקות כעת לפי הסדר וההתאמה הראשונה מנצחת, כפי שמחייבת מפרט OpenType
  • התאמות context חופפות כבר לא מצטברות זו על זו: אחרי שכלל positioning context מופעל, ההתאמה ממשיכה אחרי טווח ה־glyphs שהותאם, כך שתבניות חוזרות מקבלות כל התאמת kerning בדיוק פעם אחת
  • הקשחנו את ניתוח OpenType layout מול fonts מקוצרים או פגומים: dispatch של lookup מקונן גם במנוע ה־positioning וגם במנוע ה־substitution מאמת כעת את כל הטווח של כל רשומת טבלה לפני הקריאה ממנה

Version 2.190.7

תוקן

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםfracפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

שונה

  • פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים

Version 2.190.6

Fixed

  • כמה סימני ניקוד על ליגטורה אחת ממוקמים כעת נכון בטקסט מימין לשמאל: הסימנים השני והבאים נקשרים לרכיב הליגטורה שלהם ‏(GPOS mark-to-ligature) במקום ליפול אל קו הבסיס
  • סימני ניקוד מוערמים שחולקים רכיב ליגטורה, כגון shadda ואחריו סימן תנועה, נערמים כעת זה על זה במקום לחפוף על אותו עוגן
  • מספרי רכיבי ליגטורה עוקבים כעת אחרי נתוני ה־GPOS attachment של הגופן, כך שתווי ליגטורה מורכבים מראש עם מיפויי text-extraction ארוכים כבר לא דוחפים סימני ניקוד עוקבים מחוץ לטווח
  • תווי supplementary-plane יחידים כבר לא מתבלבלים כליגטורות במהלך מיקום סימנים
  • סימן ניקוד שהגופן מזהה כרכיב ליגטורה אמיתי כבר לא מצויר פעם שנייה ליד הליגטורה
  • מטא־נתונים של רכיבי ליגטורה כבר לא דולפים בין קריאות text-output לא קשורות

Version 2.190.5

Added

  • טקסט Hanifi Rohingya מקבל כעת shaping קורסיבי מימין לשמאל דרך המאפיין החדש AutoShapeHanifiRohingya: כאשר הוא מופעל, המנוע בוחר את צורות האות ההתחלתיות, האמצעיות, הסופיות והבודדות של הגופן כך שהכתב יעובד עם התנהגות החיבור הנכונה שלו
  • טקסט Tai Viet מקבל כעת reordering חזותי דרך דגל ה־shaping החדש sfTaiVietReorder: תנועות שמופיעות לפני העיצור שלהן בסדר חזותי מוצגות כעת במיקום הנכון במקום לעקוב אחרי סדר ההקלדה
  • טקסט Meetei Mayek מקבל כעת סידור מחדש של הברות דרך הדגל החדש sfMeeteiMayekShaping: סימני תנועה שמאליים עוברים לפני העיצור שלהם להצגה חזותית נכונה
  • כל שלושת הכתבים ממשיכים לעקוב אחרי מודל opt-in הקיים: מסמכים שלא מפעילים את המאפיין או הדגלים החדשים מפיקים פלט זהה־בייט

Version 2.190.4

Fixed

  • טקסט משמאל לימין כבר לא מתהפך כאשר אינדקס ה־glyph של תו נופל במקרה לחלון המספרי שהגלאי של ימין־לשמאל שומר עבור נקודות קוד עבריות וערביות; הגלאי מדלג כעת לחלוטין על מטעני glyph-index
  • מסמכים שמערבבים אותיות לטיניות, יווניות או קיריליות לא שכיחות מגופנים גדולים עוברים רינדור בסדר המקורי שלהם בכל המקרים

Version 2.190.3

Fixed

  • high surrogate בודד ואחריו תווי BMP מסוימים כבר לא מזייפים נקודת קוד של supplementary-plane במהלך זיהוי ימין־לשמאל: קלט UTF-16 פגום שומר כעת על הסדר הלוגי שלו במקום להיות מקובץ ומהופך כטקסט Adlam או Hanifi Rohingya
  • זוגות surrogate תקינים עבור Adlam ו־Hanifi Rohingya אינם מושפעים וממשיכים לקבל shaping מימין לשמאל

Version 2.190.2

Fixed

  • דגלי shaping של כתב מבודדים כעת לפי מערכת כתיבה: הפעלה של sfMeeteiMayekShaping לבדה כבר לא מסדרת מחדש טקסט Devanagari, Bengali, Tamil, Khmer, Myanmar או טקסט Indic אחר, והפעלה של sfIndicShaping או sfIndicGSUB לבדה כבר לא משפיעה על טקסט Meetei Mayek
  • הפלט נשאר זהה־בייט לכל כתב שדגל ה־shaping שלו כבוי, וכך משוחזרת התנהגות ה־opt-in המתועדת למסמכים מרובי כתבים

Added

  • ApplyIndicReorder מקבל כעת overload שלוקח קבוצת תכונות מפורשת עבור שאילתות reorder תחומות־דגל; הצורה הקיימת ללא פרמטרים שומרת על כיסוי מלא של הכתב

Version 2.190.1

Fixed

  • הושלמה סיווג האותיות של Meetei Mayek מול Unicode Character Database: האותיות PHAM, ATIYA ו־GOK עד BHAM ‏(U+ABD0–U+ABDA) מתחילות כעת הברות, כך שסימני תנועה שמאליים וסימנים מוערמים שאחריהם מסתדרים מחדש נכון כאשר sfMeeteiMayekShaping מופעל
  • מילים שנבנו על אות נושאת־תנועה הנפוצה מאוד ATIYA שמרו בעבר את סימני התנועה שלהן בסדר לוגי; כעת הן מפיקות את אותו סדר חזותי כמו שאר בלוק Meetei Mayek

Version 2.190.0

Fixed

  • Combining marks ‏(accents, Arabic harakat, Hebrew niqqud, סימני תנועה Thai ו־Lao) מוצגים כעת במיקום הנכון מעל או מתחת לאות המיועדת בכל מציגי ה־PDF; בעבר הם יכלו להיראות מוזזים לעבר תחילת השורה
  • Combining marks מוערמים מצטברים כעת על הסימן שמתחתיהם במקום להתמוטט על אות הבסיס כאשר הגופן נושא גם anchor בסיסי ישיר לסימן העליון
  • היסטי חיבור קורסיבי ו־mark-to-ligature attachments פועלים לפי מפרט אובייקטי הטקסט של PDF ‏(ISO 32000-1), וכך נעלת סטייה במיקום אחרי טקסט מקושט
  • טקסט שאחרי סימן ממוקם או ריצת cursive ממשיך כעת במיקום העט הנכון

Changed

  • Kerning, מיקום סימנים ו־cursive attachment משתלבים כעת בתוך אותה ריצת טקסט במקום להחריג זה את זה

Version 2.189.1

Fixed

  • טקסט מימין לשמאל מחיל כעת את רכיב ה־advance של GPOS pair kerning על רוחב הריצה, כך שטקסט שאחרי ריצת RTL עם kerning ממשיך במיקום הנכון
  • ריצות RTL עם kerning שנושאות rise אנכי מחילות את אותה תיקון advance על ה־glyph הסופי שלהן

Version 2.189.0

Added

  • הורחב opt-in OpenType shaping עם פורמטי contextual GPOS placement, מיקום לפי מרחק, שילוב reorder של Khmer ו־Myanmar, חלופות אנכיות לגופנים אנכיים, ומתגי טיפוגרפיה נוספים עבור case forms, figure widths, scientific inferiors, numerators, denominators ו־slashed zero

Changed

  • הצפנת וקידוח קבצים ב־AES-256 משתמשים כעת במסלול direct file rewrite עבור PDFs גדולים, וכך נמנעת טעינת מסמך מלאה לזיכרון עבור קלטים נתמכים כולל קבצים מרובי ג׳יגה־בייט
  • Win32 AES-256-CBC משתמש כעת באותו backend של AES-NI שמוגבל ב־CPUID כמו Win64, עם fallback אוטומטי ל־pure-C במעבדים ללא תמיכה ב־AES-NI

Version 2.188.2

Added

  • sfStylisticAlternates מחיל כעת אוטומטית substitutions של OpenType מסוג salt במהלך פלט טקסט Unicode כאשר הגופן הרשום חושף stylistic alternates תואמים

Fixed

  • GPOS pair ו־mark-positioning lookups דוחים כעת היסטי class ו־anchor פגומים שמספרי הגופנים הגדולים שלהם יכלו להציף חשבון 32 ביט, וכך נמנעים קריאות לא בטוחות מנתוני font פגומים או עוינים
  • GPOS mark-positioning lookups מכבדים כעת סינון marks של LookupFlag, כך שגופנים שמבקשים marks מתעלמים, סוגי mark attachment או mark filtering sets כבר לא מחילים את עוגני הסימנים האלה בטעות
  • shaping מיקומי של Adlam משתמש כעת באותו guard של זמינות מפת Unicode כמו נתיבי shaping של Syriac, N'Ko ו־Mongolian

Version 2.188.1

Fixed

  • מימין לשמאל Arabic and Hebrew טקסט פלט כעת שומר GPOS pair kerning active כאשר מיקום סימנים is also enabled, so harakat and niqqud are anchored without losing base-glyph spacing adjustments

Version 2.188.0

Added

  • New sfFractions shaping option automatically applies OpenType frac substitutions during Unicode טקסט פלט, including numerator digits, ה fraction slash, and chained-context denominator digits with ToUnicode mappings back to ה original טקסט

Version 2.187.0

Added

  • New shaping options automatically apply OpenType single-substitution typography features during Unicode טקסט פלט: sfSmallCaps for smcp, sfCapsToSmallCaps for c2sc, sfOldstyleFigures for onum, sfLiningFigures for lnum, sfSuperscripts for sups, sfSubscripts for subs, and sfOrdinals for ordn

Version 2.186.0

Added

  • New sfDiscretionaryLigatures and sfHistoricalLigatures shaping options automatically apply OpenType dlig and hlig חיפוש during Unicode טקסט פלט, emitting font-native ligature glyph IDs with ToUnicode mappings בעוד remaining off by default

Version 2.185.1

Fixed

  • Arabic Extended-B letters U+0870-U+089F כעת participate in producer-side Arabic joining and native GSUB positional shaping כאשר Arabic auto-shaping is enabled, so font with matching OpenType Arabic features can emit connected forms with ToUnicode mappings

Version 2.185.0

Added

  • Native Arabic GSUB shaping for opt-in Arabic טקסט פלט: כאשר sfArabicGSUB is enabled, HotPDF כעת applies ה registered font's init, medi, fina, isol, rlig, calt, and rclt חיפוש to logical Arabic runs and emits ה resulting font-native contextual glyph IDs with ToUnicode mappings
  • New sfCursiveAttachment shaping option applies OpenType GPOS cursive entry/exit anchors during Unicode טקסט פלט, allowing connected Arabic glyphs shaped through ה native GSUB נתיב to align through ה font's own curs data

Version 2.184.2

Fixed

  • מימין לשמאל Adlam fallback טקסט כעת preserves תקין UTF-16 surrogate-pair order כאשר a font cannot apply Adlam positional substitutions, and N'Ko U+07FA כעת acts only as a join-causing character so adjacent N'Ko letters connect without replacing U+07FA with a positional form

Version 2.184.1

Fixed

  • mark-to-ligature placement כעת also covers מימין לשמאל Arabic ligatures: a harakat on a ligature such as ה Allah ligature is placed on ה correct ligature component, whereas ה per-component placement previously applied only to משמאל לימין טקסט and מימין לשמאל harakat stayed at ה ligature's plain advance width; already-formed Arabic ligatures (for example ה Allah and lam-alef ligatures) are כעת recognized for component tracking, and ה mark-to-ligature option remains off by default

Version 2.184.0

Added

  • Producer-side cluster and component tracking for ה טקסט shaping pipeline: as ligatures are formed, ה engine כעת records which original characters each פלט glyph covers and how many ligature components it carries, laying ה groundwork for precise mark placement and חילוץ טקסט on ligated runs
  • Combining marks are כעת attached to ה correct component of a ligature (OpenType GPOS mark-to-ligature) כאשר ה new mark-to-ligature shaping option is enabled, for משמאל לימין ligated טקסט; פלט is unchanged כאשר ה option is off
  • Multi-component ligatures הפיק by זה נתיב carry precise טקסט-extraction mappings, so העתקה and paste recovers ה original character sequence

Version 2.183.0

Added

  • עיבוד מקדים של כתב ג׳אווי למיקום תנועות נכון: כאשר אפשרות הסידור מחדש לג׳אווי מופעלת, סימני התנועה שלפני הבסיס (taling ו-dirga mure), שנשמרים אחרי עיצור אך מוצגים משמאלו, מועברים לפני צביר העיצורים (כולל צירופים מוערמים המחוברים ב-pangkon) לפני הרינדור, כך שהטקסט נפרס בסדר החזותי הנכון; הפלט אינו משתנה כאשר האפשרות כבויה

Version 2.182.0

Added

  • Hebrew טקסט preprocessing for correct vowel-point placement: כאשר ה Hebrew reordering option is enabled, ה points זה follow a letter (vowel points, dagesh, ה shin and sin dots, and cantillation marks) are put into their canonical order לפני עיבוד, so ה mark-מיקום step places them correctly even כאשר ה source stores them in a different order; פלט is unchanged כאשר ה option is off

Version 2.181.0

Added

  • Thai and Lao טקסט preprocessing for correct mark placement: כאשר ה Thai/Lao reordering option is enabled, ה SARA AM vowel sign is split into its above and trailing parts so an accompanying tone mark lands in ה right place, and stacked vowel and tone marks are put into their canonical order לפני עיבוד; זה lets ה mark-מיקום step align tones and vowels correctly, and פלט is unchanged כאשר ה option is off

Version 2.180.0

Added

  • Producer-side automatic shaping for Adlam טקסט (ה West African Fula script, U+1E900-U+1E95F in ה Supplementary Multilingual Plane): כאשר ה Adlam auto-shaping option is enabled, each letter is עיבוד in its correct cursive joining form (isolated, initial, medial, or final) משתמש ה font's OpenType positional substitutions, with ה surrogate-pair encoding of אלה characters handled correctly and העתקה/הדבקה recovering ה original letters; פלט is unchanged כאשר ה option is off

Version 2.179.0

Added

  • Producer-side automatic shaping for N'Ko טקסט (ה West African Manding script, U+07C0-U+07FF): כאשר ה N'Ko auto-shaping option is enabled, each letter is עיבוד in its correct cursive joining form (isolated, initial, medial, or final) משתמש ה font's OpenType positional substitutions, and העתקה/הדבקה still recovers ה original letters; פלט is unchanged כאשר ה option is off

Version 2.178.0

Added

  • Vertical טקסט פלט כעת applies OpenType vertical kerning: כאשר ה vertical-kerning shaping option is enabled and a vertical font carries vkrn / vpal data, ה spacing between stacked glyphs is tightened or loosened according to ה font's vertical pair adjustments; פלט is unchanged כאשר ה option is off

Version 2.177.0

Added

  • Support for קריאה OpenType GPOS vertical kerning (ה vkrn feature) and vertical proportional alternates (ה vpal feature), exposing ה vertical advance adjustment a font defines between stacked glyphs in vertical writing so it can be applied to vertical טקסט פלט

Version 2.176.0

Fixed

  • Kerning כעת applies ה GPOS glyph placement offsets (horizontal XPlacement and vertical YPlacement) carried by a font's pair and single מיקום, which were previously קריאה but discarded; font זה fine-tune individual glyph positions through their kern feature כעת עיבוד אלה offsets in addition to ה advance adjustment, for both משמאל לימין and מימין לשמאל טקסט

Version 2.175.0

Fixed

  • Layered combining marks in מימין לשמאל טקסט (such as an Arabic letter carrying a shadda with a vowel above it, or stacked Hebrew points) are כעת מיקום correctly: each additional mark stacks onto ה mark it sits on במקום collapsing onto ה base letter, matching ה mark-to-mark stacking already applied to משמאל לימין טקסט

Version 2.174.0

Added

  • Support for OpenType GPOS mark-to-ligature attachment (LookupType 5), reporting ה placement of a combining mark (such as an Arabic vowel or Quranic mark) onto a specific component of a ligature glyph, so each mark anchors to its own part of a multi-letter ligature rather than to a single base מיקום

Version 2.173.0

Added

  • Support for קריאה OpenType GPOS cursive attachment (LookupType 3), exposing ה entry and exit connection anchors זה cursive scripts such as Arabic Nastaliq use to align joined letters along a flowing baseline

Version 2.172.0

Added

  • Kerning is כעת applied to מימין לשמאל טקסט (such as Arabic and Hebrew) כאשר kerning is enabled; previously ה מימין לשמאל show נתיב מיקום combining marks only and left kerning unapplied
  • OpenType GPOS contextual kerning (LookupType 7 Context and LookupType 8 Chained Context) is כעת emitted for both משמאל לימין and מימין לשמאל טקסט, so context-dependent kerning — notably Arabic kerning זה several font express purely through chained-context חיפוש — tightens ה generated פלט במקום being קריאה but discarded

Version 2.171.0

Added

  • Support for OpenType GPOS contextual kerning (LookupType 7 Context and LookupType 8 Chained Context מיקום), so context-dependent kerning carried by אלה חיפוש — used by Arabic and by some Latin, Hebrew and Syriac font — is כעת קריאה from ה font and made available for טקסט מיקום, complementing ה existing pair-kerning support זה covered only LookupType 1 and 2

Version 2.170.0

Added

  • Optional automatic application of ה OpenType locl (Localized Forms) feature, selecting locale-specific letter shapes (such as Serbian and Bulgarian Cyrillic forms or Turkish dotless i) כאשר a shaping language is set

Version 2.169.0

Added

  • Optional automatic application of ה OpenType calt (Contextual Alternates) feature to טקסט under ה active script, enabled via ה contextual-alternates shaping option; unencoded contextual glyphs are embedded with a ToUnicode mapping so העתקה and paste recover ה original טקסט

Version 2.168.0

Added

  • Optional automatic application of ה OpenType rclt (Required Contextual Alternates) feature to shaped Arabic טקסט, enabled via ה contextual-alternates shaping option, so contextual letter selection כבר לא requires a downstream shaper

Version 2.167.0

Added

  • Automatic producer-side GSUB shaping for Devanagari and ה other Indic scripts handled by ה Indic reordering pipeline: כאשר Indic GSUB shaping is enabled, each syllable is reordered and then shaped through ה loaded font's OpenType Indic features (half-forms, reph, below-base and post-base forms, conjuncts and presentation forms), so clusters such as क्ष display as a single conjunct glyph במקום unshaped base letters, without relying on a viewer-side shaper
  • ה new Indic GSUB shaping is a separate opt-in mode from ה existing reorder-only Indic option, so generated פלט is unchanged unless it is enabled
  • Producer-side complex-shaper פלט כעת carries ToUnicode reverse mappings on its synthetic shaping codepoints, so העתקה and paste of shaped Indic clusters (and ה other GSUB-shaped scripts זה emit synthetic glyphs) recovers ה original source טקסט

Version 2.166.0

Added

  • Automatic producer-side shaping for ה Mongolian script (U+1820-U+18AA, covering ה Todo, Sibe, Manchu and Ali Gali letters as well as basic Mongolian), selecting initial / medial / final / isolated letterforms via ה loaded font's OpenType GSUB tables כאשר Mongolian shaping is enabled, so generated PDF display correctly joined Mongolian without relying on a viewer-side shaper
  • Correct חילוץ טקסט (העתקה and paste) for shaped Mongolian letters through ToUnicode reverse mapping

Version 2.165.1

Fixed

  • Shaped Syriac (U+0700-U+074F) and Arabic Supplement / Extended-A (U+0750-U+077F, U+08A0-U+08FF) words are כעת laid out מימין לשמאל in ה correct order; previously ה positional glyphs of אלה scripts were emitted משמאל לימין (mirror-reversed) because their shaped forms travel as private-use synthetic codepoints זה ה מימין לשמאל טקסט splitter did not recognise

Version 2.165.0

Added

  • New SimpleLatinFonts property (default off). כאשר enabled, printable-ASCII טקסט ציור with a standard font (Arial, Helvetica, Times, Courier and ה like) is written as a compact unembedded WinAnsi font במקום an embedded glyph-אינדקס font, so a דף of plain ASCII טקסט needs no embedded font data at all. A single-דף ASCII sample drops from about 554 KB to about 2 KB. טקסט זה is not plain ASCII — accented, CJK, מימין לשמאל, or any טקסט משתמש a shaping feature — automatically שומר ה embedded נתיב and renders unchanged, and ה option is ignored under PDF/A, which requires embedding

Version 2.164.0

Changed

  • A font used on several דף is כעת embedded only once for ה whole מסמך במקום once per דף. Previously a two-דף מסמך משתמש Arial and Arial Bold stored four copies of ה font data; it כעת stores two, and ה saving grows with ה מונה הדפים. ה single shared העתקה carries ה union of ה glyphs used across all דף, so every דף renders and extracts טקסט identically. For example ה bundled דף-transition sample drops from about 118 KB to about 63 KB, and a מסמך זה embeds a full unsubsetted font on many דף shrinks dramatically

Version 2.163.3

Changed

  • ה six-letter subset tag נוסף to a subset-embedded font name (for example JEPSCD+ArialMT) is כעת derived deterministically from ה set of glyphs actually used, במקום being generated randomly. Producing ה same מסמך twice כעת yields identical subset tags, keeping פלט reproducible and matching ה ISO 32000 / PDF/A expectation זה a subset tag identifies its own glyph subset

Version 2.163.2

Changed

  • Embedded TrueType and OpenType font programs are כעת always Flate-compressed inside generated PDF, independent of ה מסמך Compression setting. Embedded font data shrinks by roughly half, so any מסמך זה embeds font is noticeably smaller — a two-דף Arial sample drops from about 305 KB to about 118 KB — בעוד on-screen עיבוד and חילוץ טקסט stay identical

Version 2.163.1

Fixed

  • Writing טקסט with a תקין TrueType font זה omits ה optional hinting tables (such as an unhinted font build) כבר לא raises an out-of-זיכרון שגיאה. Any טקסט ציור with such a font, including plain Latin, כעת renders correctly במקום aborting ה מסמך

Version 2.163.0

Added

  • Automatic producer-side shaping for ה Syriac script (U+0700-U+074F), selecting initial / medial / final / isolated letterforms via ה loaded font's OpenType GSUB tables כאשר AutoShapeSyriac is enabled, so generated PDF display correctly joined Syriac without relying on a viewer-side shaper
  • Correct חילוץ טקסט (העתקה and paste) for shaped Syriac letters through ToUnicode reverse mapping
  • Syriac is כעת recognised as a מימין לשמאל script by RtLTextOut and ShowUnicodeText, so Syriac טקסט is laid out מימין לשמאל

Version 2.162.0

Added

  • Latin standard and contextual ligatures (ff, fi, fl, ffi, ffl and ה long-s pairs, U+FB00-U+FB06) are כעת folded automatically in generated טקסט כאשר ה sfStandardLigatures shaping feature is enabled, choosing ה ligature glyph from ה loaded font's OpenType liga (and clig) tables. Off by default, so existing מסמך stay unchanged
  • העתקה, paste and טקסט חיפוש over a folded ligature מחזיר ה original letters through ToUnicode mapping, so words stay searchable אחרי their fi or fl ligature is applied

Version 2.161.0

Added

  • Tibetan טקסט כעת renders correctly כאשר sfTibetanShaping is enabled: a root consonant with its subjoined consonants is combined into ה proper stacked glyph, and vowel signs compose with their syllable, במקום being ציור as separate unstacked characters. העתקה and paste מחזיר ה original Tibetan טקסט via ToUnicode mapping. Off by default, so existing מסמך stay unchanged

Version 2.160.0

Added

  • Groundwork for Tibetan script עיבוד: ה engine can כעת קריאה a font's OpenType GSUB tables and combine a Tibetan syllable's stacked consonants and composed vowels into ה correct glyphs, applying ה font's substitution rules in ה order it specifies. זה release מוסיף ה shaping capability only; טקסט פלט is unchanged until ה feature is enabled in a later release. Off by default

Version 2.159.0

Added

  • מימין לשמאל combining marks - Hebrew niqqud (vowel points) and Arabic harakat - are כעת מיקום on their base consonant within ה מימין לשמאל טקסט run כאשר sfMarkPositioning is enabled, משתמש ה font GPOS Mark-to-Base anchors, במקום sitting at ה default מיקום. Earlier releases מיקום marks only in משמאל לימין scripts (Latin, Thai, Lao). Off by default, so existing מסמך stay unchanged

Version 2.158.0

Added

  • מיקום סימנים (sfMarkPositioning) כעת also recognises marks declared in ה OpenType above-base and below-base mark features (abvm / blwm), in addition to ה standard mark / mkmk features, broadening coverage for Brahmic and South-East-Asian scripts. Thai and Lao vowel and tone marks are placed on their base consonant via ה font GPOS anchors. Off by default, so existing מסמך stay unchanged

Version 2.157.0

Added

  • Automatic producer-side shaping for Arabic Supplement (U+0750-U+077F) and Arabic Extended-A (U+08A0-U+08FF) letters - used by Sindhi, Kurdish, Rohingya and various African and Central Asian languages - כעת selects ה correct initial, medial, final or isolated form from ה loaded font's OpenType GSUB tables כאשר AutoShapeArabic is enabled. אלה letters have no Unicode presentation forms, so earlier releases could only show their isolated shapes
  • העתקה and paste of ה newly shaped Supplement and Extended-A letters מחזיר ה original characters, via ToUnicode reverse mapping

Version 2.156.0

Added

  • ה mark-מיקום option (sfMarkPositioning) כעת also stacks marks on top of other marks משתמש GPOS Mark-to-Mark anchors, so a base letter carrying two or more combining marks - for example a Vietnamese vowel with a circumflex and an acute, or a Thai consonant with a vowel sign and a tone mark - has each mark placed correctly above or below ה previous one במקום overlapping. Still off by default, so existing מסמך stay byte-for-byte unchanged

Version 2.155.0

Added

  • כאשר ה new mark-מיקום option (sfMarkPositioning) is enabled, combining marks - vowel signs, tone marks, and diacritics used by scripts such as Thai, Lao, and Hebrew, as well as Latin accents - are כעת placed over, under, or beside their base letter משתמש ה font's OpenType GPOS Mark-to-Base anchors, במקום sitting at ה default מיקום אחרי ה base. ה placement is written with PDF טקסט-מיקום operators so any reader renders ה marks correctly. ה option is off by default, so existing מסמך stay byte-for-byte unchanged

Version 2.154.0

Added

  • New OpenType GPOS mark-מיקום query API: GetGPOSMarkOffset and GetGPOSMarkMarkOffset report where a combining mark (such as a vowel sign, tone mark, or accent) should be placed relative to its base glyph or to another mark, by קריאה ה font's GPOS Mark-to-Base and Mark-to-Mark anchor tables. זה is a query-only capability in זה release and does not שינוי generated פלט

Version 2.153.0

Added

  • כאשר ה new pair-kerning option (sfKerning) is enabled, משמאל לימין טקסט is כעת spaced משתמש ה font's OpenType GPOS kerning: closely-fitting letter pairs such as AV, To, or Wa are ציור tighter, matching professional typography. ה kerning is emitted as PDF TJ arrays so any reader renders ה adjusted spacing. ה option is off by default, so existing מסמך stay byte-for-byte unchanged

Version 2.152.0

Added

  • New OpenType GPOS (glyph מיקום) pair-kerning query API: GetGPOSPairAdjustment מחזיר ה kerning adjustment between a pair of glyphs and HasGPOSKerning reports whether ה active font advertises GPOS kerning; both קריאה ה font's GPOS Pair and Single adjustment tables (including Extension-wrapped חיפוש) across all scripts. זה release מוסיף ה query capability only and does not שינוי any generated פלט

Version 2.151.0

Added

  • Indic scripts (Devanagari and ה other supported Indic scripts) are כעת reordered automatically כאשר ה sfIndicShaping option is enabled: each syllable is rearranged (for example a leading Repha or a pre-base "i" vowel sign is moved to its visual מיקום) לפני ה טקסט is written, so a reader זה applies ה font's shaping renders ה cluster correctly. ה option is off by default, leaving existing מסמך byte-for-byte unchanged

Version 2.150.0

Added

  • כאשר Arabic auto-shaping folds letters into a presentation-form ligature (for example LAM-ALEF, or ה Allah and Bismillah ligatures), ה הפיק PDF כעת carries a ToUnicode reverse mapping for זה ligature, so selecting or העתקה ה טקסט recovers ה original Arabic source characters במקום ה single combined ligature character. חילוץ טקסט and accessibility round-trip stay correct even though ה דף draws one combined glyph

Fixed

  • Custom ToUnicode reverse mappings registered through RegisterToUnicodeReverseMapping are כעת actually written into ה שמירה PDF; previously they were recorded but never emitted, so ה extra mappings had no effect on חילוץ טקסט

Version 2.149.0

Added

  • Arabic טקסט emitted through מימין לשמאל טקסט פלט can כעת be shaped automatically: enabling ה AutoShapeArabic option rewrites each letter to its correct contextual form (initial, medial, final, or isolated) and folds ה standard mandatory ligatures (such as LAM-ALEF) לפני ה טקסט is written, so ה הפיק PDF קריאה correctly even in viewers זה do not perform Arabic shaping themselves. ה option is off by default, so existing מסמך are byte-for-byte unchanged. Shaping משתמש ה font's presentation-form glyphs, so a font whose character map includes ה Arabic Presentation Forms (for example Tahoma, Arial, or Segoe UI) is required

Version 2.148.1

Changed

  • ה זיכרון זרם and PDF Info demos כעת produce more instructive, verifiable outputs: זיכרון זרם validates in-זיכרון PDF bytes לפני saving, and PDF Info prints ה metadata values to compare with מסמך properties

Version 2.148.0

Added

  • XFA form שדה מיקום below ה דף—a form's lower section זה sits past ה first דף—כעת flow onto a following דף במקום being placed off ה דף edge, so all of ה form's שדה stay visible in ה flattened פלט

Version 2.147.4

Added

  • כאשר a content-sized XFA טקסט שדה or label grows taller than its layout region, ה flatten כעת flags it with a diagnostic note and שומר it whole on ה דף; it is not split across דף in זה release

Version 2.147.3

Added

  • A growable XFA טקסט שדה or label זה carries no טקסט is כעת given a one-line minimum height במקום collapsing to nothing, so empty content-sized form טקסט stays visible and שומר its place in ה flattened layout

Version 2.147.2

Added

  • XFA form טקסט without an explicit width is כעת laid out too: a טקסט block missing both width and height fills ה available container width and wraps to fit, בעוד one זה has a height but no width is sized to ה natural width of its single line of טקסט—so ה remaining width-less growable טקסט שדה and labels are נשמר במקום being dropped from ה flattened form

Version 2.147.1

Added

  • XFA form טקסט זה specifies a width but no height כעת sizes its height automatically from ה content: ה טקסט is wrapped to ה given width and ה box grows to fit ה resulting lines, so width-only טקסט שדה and labels זה previously dropped out of ה flattened form are כעת נשמר and laid out at their content height

Version 2.147.0

Added

  • Groundwork for content-sized XFA form טקסט: ה XFA-to-AcroForm flatten engine gained an internal טקסט-measurement capability זה will size form טקסט blocks from their content—wiring for an upcoming release; current forms are unaffected and produce identical פלט

Version 2.146.4

Fixed

  • טעינה a PDF whose דף boundaries are recorded with ה vertical coordinates in descending order—as some XFA and form generators כתיבה them—כבר לא מפיק a negative דף height; ה דף height is כעת always normalized to a positive value, so features זה rely on it, such as automatic דף breaks כאשר ציור flowing טקסט, work correctly for אלה מסמך
  • ציור positions, שדה rectangles, טקסט, and תמונה on ה affected loaded דף are unchanged—only ה previously negative דף height is corrected

Version 2.146.3

Fixed

  • Repeating data sections placed at תוקן positions כעת paginate: כאשר a record-driven section repeats until it outgrows ה דף's content area, ה overflowing records continue in ה next content region or on a new דף במקום piling up past ה דף edge, and ה שדה belonging to one record stay together on ה same דף
  • Flattening an XFA form loaded from an existing PDF כבר לא reports correctly placed שדה as lying outside ה דף—only content זה is genuinely off ה דף is כעת flagged, so ה flatten diagnostics for loaded מסמך are accurate

Version 2.146.2

Added

  • XFA pagination כעת spans multiple content areas: כאשר a דף defines several content regions, flowing content fills them in order—continuing in ה next region on ה same דף לפני moving to a new דף—so multi-column and multi-region form layouts paginate correctly
  • Long repeating sections כעת paginate across דף: a data-driven רשימה זה repeats once per record and outgrows its content area continues onto further דף without dropping any rows
  • Section breaks are כעת honored: a form section marked to מתחיל on a new דף begins on a fresh דף even כאשר ה current one still has room, בעוד a region break moves ה section to ה next content area

Version 2.146.1

Added

  • XFA forms כעת paginate automatically: כאשר flowing content—such as a long data-driven רשימה or a stack of שדה—grows taller than ה דף's content area, ה overflow continues on a new דף במקום running past ה bottom edge; single-דף forms are unaffected and produce identical פלט

Version 2.146.0

Changed

  • ה XFA-to-AcroForm flatten כעת routes every flattened שדה and graphic through a per-item דף assignment—internal groundwork for multi-דף pagination in upcoming releases; single-דף forms are unaffected and produce identical פלט

Version 2.145.4

Changed

  • XFA טבלה and משמאל לימין (lr-tb) layout have been validated against real-world XFA forms—invoices, purchase orders, payment requests, and data grids—confirming זה data-driven tables expand to one row per record and זה every cell lands in its correct row and column, with no שדה lost compared with ה earlier positional handling
  • כאשר an auto-width טבלה column (a -1 entry in columnWidths) holds only growable cells with no measurable width, ה dropped column is כעת reported through XFAFlattenWarnings במקום being silently omitted

Version 2.145.3

Added

  • טבלה columns set to automatic width (a -1 entry in columnWidths, or columns left unspecified) כעת size to fit their widest cell, so every cell in an auto-width column lines up at ה same מיקום across rows; tables זה mix תוקן and automatic column widths כעת lay out consistently

Version 2.145.2

Added

  • Data-driven XFA tables כעת expand correctly: a טבלה row marked to repeat (with <occur>) generates one row per data record, so invoices and line-item lists flatten to a row for every entry במקום a single template row; non-content row markup כבר לא offsets ה columns

Version 2.145.1

Added

  • XFA forms can כעת use טבלה layout: a subform with layout="table" arranges its layout="row" children into aligned columns, with column widths taken from ה טבלה's columnWidths and each row's height set by its tallest cell. Flattened tables—invoices, line-item lists, data grids—כעת place their cells in ה correct rows and columns במקום overlapping at ה left edge

Version 2.145.0

Added

  • XFA forms can כעת use משמאל לימין tiled layout: a subform with layout="lr-tb" arranges its שדה and ציור children side by side, wrapping to a new line כאשר ה next one would not fit ה container width. Flattened forms זה lay controls out in a wrapping grid—rather than a single vertical column—כעת מיקום them correctly

Version 2.144.5

Fixed

  • XFA form שדה זה leave out their x and/or y מיקום—a common, תקין shortcut in מיקום layout where ה omitted coordinate defaults to ה container origin—are כבר לא dropped. Real-world forms whose address blocks, sections, and tables relied on זה default כעת flatten to their full set of שדה במקום silently losing them
  • Nested sub-sections inside a top-to-bottom flowing form כעת advance ה vertical cursor by their own content height, so sibling sections stack one below another במקום overlapping at ה same מיקום. Multi-section flowing forms כעת lay out in ה correct vertical order

Version 2.144.4

Added

  • XFA forms with repeating sections driven by data are כעת supported: a subform with an <occur max="-1"/> (or any non-default maximum) expands into one instance per matching data group in ה datasets packet, with each instance binding its שדה to ה corresponding row values. Forms זה use implicit datasets binding to generate variable-length lists or tables כעת flatten to ה correct number of שדה with ה correct per-row values

Version 2.144.3

Added

  • XFA forms can כעת use top-to-bottom flowing layout: a subform with layout="tb" stacks its שדה and ציור children vertically—each placed below ה previous one—even כאשר אלה children specify no explicit מיקום. Flattened forms זה rely on automatic vertical flow rather than תוקן coordinates כעת lay their שדה out correctly

Version 2.144.2

Fixed

  • XFA forms whose first packet מתחיל with a DOCTYPE declaration—as הפיק by some XFA design tools—כעת flatten correctly through FlattenLoadedXFA במקום כשל with a missing-template שגיאה. ה loader recognizes ה xdp:xdp root מסמך element even כאשר a DOCTYPE prologue precedes it
  • XML internal entities declared in a form's DOCTYPE (such as <!ENTITY name "value">) are כעת expanded wherever ה matching &name; reference appears in ה form, so ה flattened שדה carry ה resolved טקסט

Security

  • External XML entities (SYSTEM or PUBLIC) referenced by an XFA form are never resolved בעוד flattening: HotPDF does not fetch ה referenced URL or קובץ, guarding against XML External Entity (XXE) attacks. Such a reference expands to empty טקסט and is reported through XFAFlattenWarnings

Version 2.144.0

Changed

  • ה XFA-to-AcroForm flatten כעת runs through a dedicated two-pass layout engine: element positions are computed first, then ה שדה and graphics are emitted. Static positional forms produce identical פלט; זה internal שינוי is ה foundation for ה flowed-layout and repeating-section support arriving in subsequent releases

Version 2.143.5

Fixed

  • Real-world XFA forms זה store their /XFA entry as a packet מערך כעת flatten correctly through FlattenLoadedXFA במקום כשל with a missing-template שגיאה. זה covers forms whose packet זרם are individually compressed without a directly readable filter, and forms זה רשימה ה configuration packet ahead of ה template—both common in PDF exported by professional XFA design tools

Added

  • ה XFA <draw> flatten כעת renders static טקסט labels—form titles and שדה captions—as native דף טקסט, honoring ה label's font family, size, and color, so they stay visible on a flattened form in readers without an XFA engine
  • XFA push-button widgets are כעת converted to native AcroForm push buttons carrying their caption טקסט, so action buttons appear on ה flattened form

Version 2.143.4

Added

  • New FlattenLoadedXFA method flattens ה XFA form embedded in an already-loaded PDF into native AcroForm שדה and static דף graphics, completing ה XFA-to-AcroForm conversion for מסמך opened from disk (earlier releases flattened caller-supplied XFA bytes through ApplyXFAAsAcroForm). It קריאה ה form's /XFA entry, whether a single זרם or a packet מערך, then מסיר /XFA and clears ה dynamic-עיבוד flag so ה result is a plain AcroForm זה any PDF reader displays. It מחזיר ה number of שדה יצר, or zero כאשר ה loaded PDF carries no XFA
  • Both XFA flatten entry points כעת take an Editable option: leave it on (ה default) for fillable שדה, or turn it off to mark every generated שדה קריאה-only
  • Duplicate XFA שדה names, which are התיר in XFA but not in AcroForm, are כעת made unique automatically with a numeric suffix, and ה rename is reported through XFAFlattenWarnings
  • XFA templates authored against different template-schema versions are accepted; an unrecognized template namespace is noted as a warning rather than rejected, so ה form still flattens

Version 2.143.3

Added

  • ה XFA-to-AcroForm flatten כעת reproduces ה static <draw> graphics from an XFA template as native דף content, so rectangles, lines, arcs, and embedded תמונה keep their place on a flattened form in PDF readers זה do not implement an XFA engine. Rectangles and lines are stroked משתמש ה XFA edge thickness and color, an arc is עיבוד as a smooth curve following its מתחיל and sweep angles, and an embedded PNG or JPEG תמונה is decoded and ציור in its original box

Version 2.143.2

Added

  • ה XFA-to-AcroForm flatten כעת carries שדה styling onto ה generated AcroForm שדה. ה XFA font family and size, טקסט color, שדה border color and width, and horizontal טקסט alignment are translated to ה שדה's default appearance, border, and alignment, so a flattened XFA form שומר its intended look in standard PDF readers זה do not implement an XFA engine. font selection maps to ה standard PDF font in זה release; full font embedding will follow

Version 2.143.1

Added

  • ה XFA-to-AcroForm flatten performed by ApplyXFAAsAcroForm כעת converts numeric, date, checkbox, radio button, choice רשימה, and digital signature שדה in addition to טקסט שדה. Each XFA <ui> widget is mapped to ה closest native AcroForm שדה: numeric and date entries become טקסט שדה, a בודק button becomes a checkbox (or a radio-button group כאשר it sits inside an exclusion group), and a choice רשימה becomes a combo box or, כאשר set to multi-select, a רשימה box. שדה values are still taken from ה form packet first, then ה datasets packet

Version 2.143.0

Added

  • New ApplyXFAAsAcroForm method converts a caller-supplied XFA (XML Forms Architecture) form into native AcroForm טקסט שדה, so static XFA forms become visible and fillable in modern PDF readers זה do not implement an XFA engine. זה first release covers טקסט שדה with values taken from ה form or datasets packet; further שדה types, styling, and graphics follow. XFAFlattenWarnings reports any element זה could not be converted

Version 2.142.1

Changed

  • ה PAdES Seed Value attachment helper כעת rejects values זה would force a downstream signer to violate ה PAdES profile (ETSI EN 319 142-2 V1.2.1 §4.2.6): ה /SubFilter constraint must be adbe.pkcs7.detached or ETSI.CAdES.detached, and ה /DigestMethod constraint cannot be MD5, SHA1, or SHA-1. ה producer raises a clear diagnostic במקום silently emitting a profile-violating /SV dictionary

Version 2.142.0

Added

  • New AddXFASignaturePacket method embeds a caller-generated XAdES / XML-DSig signature as ה XFA signature packet inside ה AcroForm /XFA מערך (ISO 32000-1 §12.7.8), for signed XFA forms. HotPDF does not generate or parse ה signature: ה caller מפיק it with an XML cryptographic library over ה XFA datasets, and HotPDF embeds it as a FlateDecode packet. ה same PDF/A and PDF/X rejection, single-זרם mutual exclusion, and duplicate-packet guards as AddXFAPacket apply

Version 2.141.2

Added

  • New public API RegisterDefaultColorSpace(Which, ColorSpaceCS) registers an ICCBased colour space (יצר with RegisterICCProfile) as ה מסמך-wide /DefaultGray, /DefaultRGB, or /DefaultCMYK mapping per ISO 32000-1 §8.6.5.6 and PDF/A Competence Center TechNote 0002 §1.3. At EndDoc ה helper walks every דף and מוסיף a [/ICCBased <profile-stream>] entry under ה matching /DefaultX key in ה דף's Resources/ColorSpace dictionary. ה component מונה is validated against ה family (DefaultGray → N=1, DefaultRGB → N=3, DefaultCMYK → N=4); קריאה with an empty CSName clears ה mapping; per-דף /DefaultX entries already present are preserved (caller overrides win). With זה in place a מסמך זה mixes DeviceRGB and DeviceCMYK content can satisfy PDF/A-1 §6.2.3.3 with any single GTS_PDFA1 OutputIntent profile, because ה §6.2.3.3 consistency בודק introduced in v2.141.1 treats DeviceX usage as absorbed once ה matching Default colour space is registered

Version 2.141.1

Changed

  • PDF/A device colour-space ↔ OutputIntent consistency בודק (ISO 19005-1 §6.2.3.3 + PDF/A Competence Center TechNote 0002 §4.1). EndDoc כעת raises כאשר a מסמך mixes DeviceRGB and DeviceCMYK content (a single GTS_PDFA1 OutputIntent ICC profile cannot match both colour models) or כאשר DeviceCMYK content is paired with an RGB OutputIntent profile and vice versa. Per TN0002 §4.1, DeviceGray content is compatible with Gray, RGB, or CMYK OutputIntent profiles. תמונה XObjects are tracked by ה colour space ה producer actually emits (DeviceRGB for JPEG and 24-bit Flate, DeviceGray for CCITTFax); per TN0002 §4.3, markup annotation /C and /IC arrays מונה as DeviceRGB. ICCBased / CalGray / CalRGB / Lab colour spaces are exempt from ה בודק

Added

  • קריאה-only properties UsedDeviceGray, UsedDeviceRGB, and UsedDeviceCMYK on THotPDF expose ה in-progress device colour-space usage flags so callers can inspect ה consistency-בודק state לפני EndDoc

Version 2.141.0

Added

  • XFA forms can כעת be emitted as a single /XFA זרם through ה new SetXFADocument method, carrying a whole XFA/XDP מסמך in one זרם (ISO 32000-1 §12.7.8) as an alternative to ה per-packet AddXFAPacket מערך form. ה two forms are mutually exclusive
  • New XFANeedsRendering property sets ה Catalog /NeedsRendering flag (ISO 32000-1 §7.7.2) so a viewer regenerates a dynamic XFA form כאשר ה מסמך is first opened. It defaults to off, leaving non-XFA מסמך byte-identical

Changed

  • ה XFA documentation כעת shows ה required xdp:xdp begin and end wrapper packets for ה מערך /XFA form, so ה packet זרם concatenate into a well-formed XDP מסמך (ISO 32000-1 §12.7.8)

Fixed

  • Embedded-קובץ /Subtype MIME types are כעת written as proper PDF names with / escaped as #2f (for example /application#2fxml) per ISO 32000-1 §7.3.5, so strict readers parse ה media type correctly. Affects AddPDFA3AssociatedFile and AddXAdESAssociatedFile
  • AddXAdESAssociatedFile כעת rejects an empty XML payload, because an XAdES signature זרם cannot be empty

Version 2.140.5

Changed

  • ה PAdES מסמך time-stamp dictionary כעת emits ה spec-required /Type /DocTimeStamp במקום /Type /Sig and omits ה /M /Reason /Location /ContactInfo entries זה ה standard marks as "should not be present", improving conformance with ETSI EN 319 142-1 V1.2.1 §5.4.3
  • ה DSS Signature VRI sub-dictionary כעת references ה same indirect זרם as ה DSS top-level Certs / CRLs / OCSPs arrays במקום writing duplicate זרם אובייקט, matching ה ETSI EN 319 142-1 V1.2.1 §5.4.2.3 invariant and §6.3 note s) guidance to avoid duplicated certificate values
  • ה /Extensions /ESIC /ExtensionLevel value declared on ה Catalog כעת auto-upgrades to 2 כאשר a PAdES baseline signature with /SubFilter /ETSI.CAdES.detached is נוסף, since standard §6.3 requirement l) is identified by Level 2; מסמך זה only carry DSS or מסמך time-stamp data continue to use Level 1

Added

  • A PAdES signature can כעת ship intermediary CA certificates alongside ה signer certificate inside CMS SignedData.certificates via ה new AdditionalCertsDER option, helping a verifier build a נתיב to ה trust anchor without an external חיפוש (ETSI EN 319 142-1 V1.2.1 §6.3 note b)

Fixed

  • PDF/A compliance: ה Unicode TTF subsetter כעת emits ה /CIDSet bitstream on ה descendant CIDFont's font descriptor כאשר PDFACompliance is enabled. ISO 19005-1 §6.3.5 / ISO 19005-2 §6.2.11 / ISO 19005-3 §6.2.11 require subset CIDFonts to declare which CIDs are present, so without ה זרם a veraPDF strict בודק כשל even כאשר every required glyph is embedded. ה bitstream is MSB-first per ISO 32000-1 §9.7.4.2 (CID 0 in byte 0 bit 7) and is only emitted under PDFACompliance, so non-PDF/A פלט stays byte-stable

Version 2.140.4

Fixed

  • Incrementally saving a loaded PDF כעת frees an orphaned הצפנה dictionary left in ה source (one its trailer כבר לא references) by marking it free in ה appended cross-reference section, so readers following ה latest revision כבר לא see ה stray dictionary. ה original bytes stay intact and מסמך without such a leftover are written exactly as לפני; זה complements ה full-שמירה cleanup נוסף in 2.140.3

Version 2.140.3

Fixed

  • Saving a loaded PDF with AES-256 כבר לא copies a leftover הצפנה dictionary out of ה source קובץ. כאשר a source מסמך נשמר an orphaned הצפנה dictionary זה its trailer כבר לא referenced, ה פלט used to carry זה stray dictionary alongside ה active one; ה saver כעת כתיבה only ה הצפנה dictionary actually in use

Version 2.140.2

Added

  • ה Adobe revocation-information signed attribute carried inside a PAdES signature כעת also accepts non-X.509 revocation evidence alongside ה usual CRL and OCSP entries, so an industry-specific revocation token identified by its own OID can travel inside ה signature
  • A PAdES signature can כעת declare a CAdES content-hints attribute describing what was signed, useful in multi-signature workflows where a later signer needs to know ה original content type without re-deriving it

Version 2.140.1

Fixed

  • הצפנה a loaded מסמך with AES-256 כבר לא hangs כאשר its טקסט strings are nested inside arrays or other non-indirect containers; such strings are כעת הצפנה correctly במקום looping endlessly
  • Opening or פענוח an AES-256 מסמך כבר לא כשל with a padding שגיאה כאשר ה קובץ carries a leftover הצפנה dictionary from its source; ה decryptor כעת skips every הצפנה dictionary, so all string content decrypts correctly

Version 2.140.0

Changed

  • AES-256 הצפנה and פענוח כעת use ה CPU's AES-NI hardware acceleration כאשר available, with a portable software fallback otherwise. On a typical desktop CPU זה lifts AES-256-CBC throughput from about 148 MB/s to 442 MB/s for הצפנה (about 3× faster) and from about 147 MB/s to 832 MB/s for פענוח (about 5.7× faster)
  • Opening a large password-protected PDF כעת משתמש dramatically less זיכרון. ה loader כבר לא caches ה entire source קובץ בעוד recovering ה הצפנה key and פענוח: AES-256 מסמך recover what they need from ה parsed אובייקט model, and ה legacy key-recovery scan כעת קריאה only ה קובץ tail במקום ה whole קובץ. For a multi-gigabyte הצפנה מסמך זה מסיר a transient זיכרון spike of roughly twice ה קובץ size

Version 2.139.3

Fixed

  • Direct קובץ API rewrite-and-שמירה is dramatically faster on very large מסמך. כאשר re-saving a קובץ אחרי a metadata or אובייקט שינוי, ה per-אובייקט העתקה מאגר is כעת reused במקום being reallocated for every אובייקט, removing allocation overhead זה grew with ה אובייקט מונה. A 60,000-דף / 883 MB מסמך's rewrite-שמירה dropped from about 189 seconds to roughly 21 seconds, בעוד opening or העתקה ה same קובץ through ה Direct קובץ API stays around 2-3 seconds

Version 2.139.2

Fixed

  • Re-saving loaded PDF 1.5+ אובייקט-זרם מסמך and PDF 2.0 trailer מסמך אחרי BeginDoc edits כעת שומר a תקין דף tree. Previously, a דף dictionary recovered from an אובייקט זרם could be attached without /Type /Page, causing readers to report a non-דף אובייקט in ה דף tree אחרי EndDoc

Version 2.139.1

Fixed

  • הצפנה מסמך זה combine AES-256 with a cross-reference זרם (optionally alongside compressed אובייקט זרם) כעת reopen and re-שמירה reliably. Previously, כאשר an הצפנה זרם's data happened to begin with a newline byte ה loader could קריאה זה זרם one byte out of alignment and intermittently corrupt ה פענוח result, so a password-protected קובץ occasionally כשל to פותח. ה זרם reader כעת follows ה data boundary exactly, and such מסמך פותח consistently

Version 2.139.0

Fixed

  • מסמך זה use a cross-reference זרם together with compressed אובייקט זרם (PDF 1.5 and later) are כעת קריאה by a standards-compliant loader. Reopening such a מסמך and saving it again שומר ה דף tree intact and preserves ה original אובייקט numbers; ה previous loader could drop ה דף tree or renumber אובייקט and lose דף in ה שמירה העתקה
  • A זרם whose /Length is stored as an indirect reference is כעת resolved correctly בעוד a cross-reference-זרם מסמך is טעינה, so its content is כבר לא lost

Version 2.138.0

Fixed

  • מסמך זה declare an older PDF header גרסה such as %PDF-1.3 or %PDF-1.4 בעוד actually משתמש a cross-reference זרם כעת טעינה correctly במקום opening as an empty מסמך with no דף. Routing is decided from ה real cross-reference structure rather than ה declared header גרסה, so very large קובץ of זה kind also פותח as expected

Version 2.137.9

Added

  • נוסף CSV פלט for preflight reports through pfCSV in CreatePreflightReport, SavePreflightReport, and CreatePreflightReportWithProfile, משתמש stable category,name,status,value,spec columns for spreadsheet and batch workflows
  • ה PreflightReport GUI and HotPDFPreflight CLI can כעת select CSV פלט; ה CLI accepts -f csv for single-קובץ and directory runs

Version 2.137.8

Fixed

  • Hardened ה native AES-256 מאגר פענוח נתיב so callers can assign ה פענוח result back to ה same AnsiString זה supplied ה ciphertext מאגר without invalidating ה קלט pointer

Version 2.137.7

Added

  • נוסף one-based דף-range string support for loaded-מסמך דף operations, including HPDFParsePageRange, range overloads for InsertPagesFromDocument and ExtractPagesToFile, and AppendPagesFromDocument
  • נוסף OnPageOperationProgress so append, insert, and extract workflows can report deterministic דף-level progress

Version 2.137.6

Added

  • נוסף THotPDF.DACopyFile for large-קובץ workflows זה only need a מונה הדפים and an original byte-for-byte שמירה העתקה without building ה full normal אובייקט graph
  • ה HugeFileBenchmark demo כעת includes a direct-copy row בעוד ה default operation set still covers ה full LoadFromFile + SaveLoadedDocument נתיב

Changed

  • Reduced AES-256 זרם פענוח זיכרון העתקה by פענוח from existing buffers where possible, including loaded זרם זיכרון for large הצפנה תמונה זרם

Fixed

  • Improved קובץ-based הצפנה PDF טעינה so password פותח כבר לא cache ה whole source PDF just to recover raw הצפנה dictionary values

Version 2.137.5

Added

  • נוסף Direct קובץ API אובייקט-source editing for large-קובץ workflows: applications can פותח a PDF with DAOpenFileReadOnly, inspect אובייקט counts and source bodies, replace or append אובייקט bodies, עדכון מסמך information, and שמירה a full rewritten העתקה
  • ה HugeFileBenchmark demo כעת includes a direct-rewrite operation and מסמך HTML/CSV benchmark runs for תמונה-only and mixed טקסט/תמונה huge PDF

Changed

  • Expanded Direct קובץ API indexing to cover traditional xref tables and xref זרם, including compressed אובייקט entries, so תמונה-heavy PDF and אובייקט-heavy PDF can use ה lightweight נתיב
  • Optimized Direct קובץ API full rewrites by העתקה unchanged direct אובייקט in source-offset order and merging contiguous ranges, greatly reducing אקראי I/O on PDF with hundreds of thousands of אובייקט

Version 2.137.4

Added

  • ה GUI כעת covers standard טקסט, JSON, and HTML reports, optional passwords, profile INI קובץ, built-in presets, single-קובץ PDF/VT validation, embedded-report PDF פלט, report preview, status logging, automatic פלט naming, and quick access to generated קובץ

Changed

  • Upgraded ה Delphi PreflightReport demo from a console sample into an interactive VCL GUI tool for single-קובץ preflight workflows

Removed

  • הוסר ה old startup behavior זה automatically יצר a sample PDF and report כאשר no command-line arguments were supplied

Version 2.137.3

Added

  • PDF/VT validation כעת recognizes XMP properties written as RDF attributes as well as element טקסט, covering common pdfvtid:GTS_PDFVTVersion, pdfvtid:GTS_PDFVTModDate, and xmp:ModifyDate packet styles

Fixed

  • נוסף Delphi regression coverage זה שומר attribute-style PDF/VT metadata detection separate from ה remaining structural PDF/VT בודק

Version 2.137.2

Changed

  • Improved embedded preflight report validation so source PDF זה legitimately end with a final line break אחרי %%EOF keep matching their stored fingerprint

Fixed

  • Preflight profiles שמירה as UTF-8 with a BOM כעת טעינה correctly כאשר ה first line is a section header
  • Hardened PDF literal string escape decoding, improving password validation and unencrypted-העתקה פלט for הצפנה PDF with escaped owner or user entries

Version 2.137.1

Changed

  • Extended CFF parser safety to direct byte-מערך בודק, restoring ה reader מיקום אחרי malformed קלט and clearing stale layout state on כשל בודק

Fixed

  • Hardened ה C++Builder wrapper-compatible CFF זרם loader so nil זרם קלט מחזיר False and resets ה wrapper state במקום dereferencing ה זרם

Version 2.137.0

Added

  • נוסף THotPDF.ValidatePDFVT with password-aware overloads for focused PDF/VT validation. ה טקסט report בודק ה XMP PDF/VT claim, metadata namespace, PDF/VT modification date matching, PDF/X base marker, פלט intent, catalog DPartRoot structure, loadable דף, and דף-level DPart coverage
  • ה standalone HotPDFPreflight CLI כעת accepts --pdfvt to כתיבה .pdfvt.txt validation reports for a single PDF or recursive directory scan

Version 2.136.8

Added

  • נוסף additional Type 1/CFF smoke coverage for malformed CFF and Type 1 זרם, including זרם-מיקום preservation and stale-metadata cleanup אחרי כשל parser קריאה

Changed

  • Improved Type 1 PFB and CFF parser failure handling so malformed זרם בודק preserve ה קלט מיקום and clear stale metadata במקום leaving a previous font name visible אחרי a כשל בודק

Version 2.136.7

Changed

  • Expanded ה Type 1/CFF smoke test with in-זיכרון CFF data, ASCII Type 1 font data, wrapper-level PFB קובץ טעינה, and wrapper-level CFF זרם טעינה to protect both Delphi and C++Builder integration surfaces

Fixed

  • Hardened ה Type 1 PFB and CFF parser entry points so זרם-based בודק preserve ה caller's זרם מיקום, reject malformed data safely, and expose basic Type 1/CFF font metadata through ה Delphi and C++Builder wrapper נתיב

Version 2.136.6

Added

  • נוסף Delphi feature demos for CJK Unicode טקסט פלט, large multi-דף מסמך generation, PFX signing, and expanded תמונה-compression coverage with CCITT Group 3 1D and 2D פלט

Version 2.136.5

Changed

  • Preflight reports כעת continue כאשר a loaded דף entry cannot מחזיר a MediaBox. ה report marks זה דף as unavailable במקום aborting, so large or inconsistent דף trees still produce diagnostic פלט
  • Optimized several byte-level preflight scanners to avoid repeated full-tail string copies and linear duplicate-אובייקט searches. ה 10,000-דף implementation-limit sample כעת completes within ה 120-second stress-test budget
  • ה preflight stress runner כעת defaults to a 120-second per-קובץ timeout, and ה PreflightReport demo rebuilds cleanly אחרי ה profile-aware פלט נתיב

Version 2.136.4

Added

  • נוסף a preflight cookbook, a generated preflight API map, and a large-directory stress-test workflow for ה HotPDFPreflight command-line tool. ה stress runner isolates each PDF behind a per-קובץ timeout and records JSON, Markdown, CSV, report, and log evidence

Changed

  • Recorded a 1000-קובץ baseline against D:\PDFdoc\PDF-Samples: 997 passed, 1 כשל, 2 timed out, 111.422 seconds elapsed, 8.975 קובץ per second

Fixed

  • תוקן a full rebuild issue in ה preflight fingerprint helper by declaring ה helper לפני CreatePreflightReport משתמש it, so console tools זה rebuild HPDFDoc.pas from source compile cleanly

Version 2.136.3

Added

  • ה standalone HotPDFPreflight CLI tool gains an --aggregate <file> option זה כתיבה a batch summary הפיק by THotPDF.AggregatePreflightReports אחרי ה per-קובץ reports finish. ה aggregate lists every תהליך PDF with status / size / warning counts and totals

Changed

  • Works with single קובץ and recursive directory walks, with or without --profile / --preset. ה aggregate is computed from ה טקסט body of each report so filtering by profile is reflected in ה summary
  • Example: HotPDFPreflight C:\Archive -r --preset silent-actions -f json -o C:\Archive\reports --aggregate C:\Archive\Aggregate.txt כתיבה JSON reports for every PDF plus a single batch summary

Version 2.136.2

Added

  • ה standalone HotPDFPreflight CLI tool gains --profile <file> and --preset <name> options to filter each report through a preflight profile לפני writing it. Works alongside -f text|json|html, -p <password>, and -r recursive directory walks

Changed

  • ה two new options are mutually exclusive (passing both, ה later one wins). ה preset values match what THotPDF.GetBuiltInPreflightProfile recognizes so CI pipelines can pull a canonical configuration without staging an INI קובץ
  • Example: HotPDFPreflight C:\Archive -r --preset silent-actions -f json -o C:\Archive\reports כתיבה JSON reports for every PDF in ה directory tree with ה silent-actions preset applied

Version 2.136.1

Added

  • ה Delphi PreflightReport demo כעת accepts profile=<file> or preset=<name> as an additional CLI argument to filter ה report through a profile לפני writing it. Works alongside ה existing json / html / embed פלט format flag

Changed

  • Examples: PreflightReport.exe Input.pdf Report.txt "" text profile=tuned.ini or preset=compact / preset=silent-actions
  • ה preset values mirror ה names recognized by THotPDF.GetBuiltInPreflightProfile so ה demo doubles as a profile testbed without having to author an INI קובץ

Version 2.136.0

Added

  • נוסף THotPDF.MergePreflightProfiles for layering profiles. ה result is ה deduplicated union of both inputs (DisableChecks and DisableWarnings are merged, DisableHints is ה logical OR), useful for combining a preset such as compact with project-specific tweaks
  • נוסף THotPDF.DiffPreflightProfiles for structural comparison. מחזיר True כאשר two profiles are equivalent, otherwise ה OnlyInA and OnlyInB out parameters רשימה ה entries exclusive to each side as newline-separated check:<name> / warn:<name> / option:hints=false tokens

Changed

  • ה two helpers complete ה profile lifecycle: Load / GetBuiltIn / Save / Apply / Validate / Merge / Diff

Version 2.135.0

Added

  • נוסף THotPDF.CreatePreflightReportWithProfile, a one-עוצר convenience wrapper זה composes CreatePreflightReport, LoadPreflightProfile, ApplyPreflightProfile, and ה format converters into a single קריאה
  • ה new overload accepts a source PDF, optional password, optional profile קובץ, and target format (pfText, pfJSON, or pfHTML) and מחזיר ה final report body. Passing an empty ProfileFile skips ה profile step entirely so callers can keep a single קריאה site regardless of whether they have a profile configured

Changed

  • ה four underlying APIs remain available so existing קריאה chains keep working unchanged; ה new wrapper is purely additive

Version 2.134.0

Added

  • נוסף THotPDF.SavePreflightProfile for writing a THPDFPreflightProfile record back to an INI קובץ. ה פלט format matches what LoadPreflightProfile consumes, so ה two functions are exact inverses for well-formed profiles

Changed

  • Enables a 'טעינה preset, tweak, שמירה' workflow: pull a built-in preset with GetBuiltInPreflightProfile (v2.133.0), modify ה lists or flags, then SavePreflightProfile ה result for later reuse or sharing across projects
  • Sections with no content are omitted from ה פלט so an empty profile מפיק a single comment line במקום three empty section headers

Version 2.133.0

Added

  • נוסף THotPDF.GetBuiltInPreflightProfile, which מחזיר ready-to-use THPDFPreflightProfile records for common workflows so callers do not have to maintain INI קובץ for canonical configurations

Changed

  • Recognized names (case-insensitive): default or empty string מחזיר an empty profile; compact disables every Hint line for shorter reports; silent-actions disables every PDF 1.7 sec 12.6.4 action warning plus EmbeddedFile and RichMedia, intended for workflows זה intentionally embed multimedia or interactive actions
  • Unknown names also מחזיר an empty profile so ה function never raises on a typo; pair with ValidatePreflightProfile (v2.132.0) כאשר ה caller wants typos surfaced as שגיאה

Version 2.132.0

Added

  • נוסף THotPDF.ValidatePreflightProfile for defensive profile checking. ה function walks ה loaded profile's DisableChecks and DisableWarnings lists and flags any name זה is not recognized by ה current preflight implementation, returning ה unknown names joined by ', ' in ה UnknownNames out parameter

Changed

  • Useful to detect profile קובץ authored against a newer or older HotPDF גרסה. Without validation a typo (OpneAction במקום OpenAction) or a renamed בודק would silently disable nothing
  • ה בודק is purely defensive; ה profile itself is not modified. Callers can decide whether to abort, log a warning, or proceed with ה partially-effective profile

Version 2.131.0

Added

  • נוסף THotPDF.ConvertPreflightReportToVeraPDFStyle, a converter זה shapes a HotPDF preflight report into a JSON מסמך modeled on veraPDF's validation פלט: top-level profile, a jobs מערך containing itemDetails / taskResult / validationResult, plus a ruleViolations מערך under validationResult.details

Changed

  • HotPDF-styled rather than wire-compatible with veraPDF; ה goal is to let downstream tooling זה already consumes veraPDF JSON adapt to HotPDF פלט with minimal שדה-name remapping rather than re-learning a different data layout
  • Rule violations carry ה same specification ISO clause cross-reference זה ה native HotPDF JSON פלט emits, so callers retain spec-level traceability כאשר consuming via ה veraPDF-style נתיב