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הנגזרים מטבלאות OpenTypevhea,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
- נוסף
LinearizeOutputopt-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 newHPDFReplaceWatermarkPlaceholdersoverload is given aTHPDFPlaceholderDocInforecord. The legacy 4-parameter signature stays for callers that only need the page / file / date-time subset
Version 2.421.0
Added
THPDFActionBuilder.GoToEmbeddedNamedDestinationandGoToEmbeddedPagecreate PDF 1.6GoToEactions with standards-valid parent, EmbeddedFiles name-tree, attachment-annotation, and nested/Ttarget 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
THPDFLoadedActionInfosnapshots from catalog/OpenActionand/AA, page/AA, annotation/Aand/AA, AcroForm field/AA, and outline/Asources. Dictionary and array/Nextforms 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/PIevents with the required PDF 1.5 version negotiation
Version 2.420.0
Added
- Content-stream device stage 3 closes the abstraction loop:
IHPDFContentDevicegainsDrawXObject/DrawShading/ApplyExtGStatefor theDo/sh/gsoperators, and the shared interpreter now dispatches them.Dois gated oncdcNeedImagesso text/enum devices skip the heavy image decoding;shandgsdispatch unconditionally. The renderer'sExecuteViaDevicepath can now paint the full operator set (paths + colours + text + images + shading + ExtGState), observably equivalent to the legacyHandleOperatorpath. TheApplyExtGStatenested 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 toDev*helpers without colliding with the pre-existing private helpers - Document-content observer pattern:
THotPDF.OnLoadedDocumentModifiedevent fires fromInvalidateRenderedPageCache(PageIndex = -1, whole document) andInvalidateRenderedPageCachePage(a specific page) so attached viewers refresh automatically.THPDFViewersubscribes inSetDocumentand unbinds on detach /opRemove, callingRefreshDocumentwhen the current page (or the whole document) is affected. Multi-view sync (several viewers on the sameTHotPDF) now works without each caller invokingRefreshDocumentby hand
Version 2.419.0
Added
- Content-stream device abstraction stage 1:
IHPDFContentDevicegains 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 sharedHPDFInterpretContentStreamDevicedispatcher now forwards BT/ET/Tf/Tc/Tw/Tz/TL/Tr/Ts/Td/TD/Tm/T*/Tj/TJ/'/" to the device when it declarescdcNeedText THPDFTextExtractDeviceis a concrete device that maintains the text matrices and emits oneTHPDFGlyphRecordper char code (decoded via an injectedIHPDFFontResolver) — observably equivalent toHPDFInterpretTokensoutput but produced through the device interface so the same interpreter loop drives text extraction, path enumeration and renderingHPDFExtractGlyphsViaDeviceconvenience function wraps the text-extract device + shared interpreter in one call; the existingHPDFInterpretContentStream/HPDFInterpretTokensstay untouched for current callers- Content-stream device abstraction stage 2:
THPDFPageRenderernow implementsIHPDFContentDeviceso the shared dispatcher can drive it through the same abstract interface.ExecuteViaDeviceis the opt-in device-driven render entry; the productionExecutepath keeps its built-inExecuteStream/HandleOperatordispatch, 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
DecompressLoadedDocumentis the inverse ofCompressLoadedDocument: it walks every indirect stream carrying a/Filter /FlateDecode(name or single-element array form), inflates the payload back to raw bytes, strips the/Filterentry 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 discardedEnumLoadedPageElementsnow returns the full path geometry perekPathelement, not just the bounding box: two new fieldsPathPoints: array of THPDFPathPointandPathIsCurve: array of Booleanare 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
HPDFContentDeviceunit introduces the content-stream device abstraction (stage 0): anIHPDFContentDeviceinterface with aTInterfacedObjectbase implementation (mirroring the provenIHPDFFontResolverpattern), a sharedHPDFInterpretContentStreamDevicedispatcher that today covers the path / colour / state operator subset, and a concreteTHPDFPathEnumDevicethat collects one record per painted path with full point geometry. This breaks the three-way duplication betweenHPDFContentStream,HPDFPageRenderer.HandleOperatorandHPDFCollectPathElements; stage 1 will add text/image callbacks and stage 2 will migrate the renderer onto the device
Changed
HPDFPageRendererheader comment updated: the “TrueType/CFF glyph-outline rendering out of scope” note was stale — embedded glyph outlines have been active since v2.342.0 (DrawTextRuncallsTHPDFEmbeddedTTF.DrawGlyph/THPDFEmbeddedCFF.DrawGlyphwith real quadratic/cubic bezier paths; GDITextOutWis 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,AddLoadedSquigglyAnnotationandAddLoadedPolylineAnnotation-- once landed, the XFDF interchange layer (which already recognises these subtype strings) picks them up for free AddLoadedFileAttachmentAnnotationembeds 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/SubtypeMIME,/Params /Sizeand creation/modification dates; the newTHPDFFileAttachmentIconenum (faiPushPin/faiGraph/faiPaperclip/faiTag) selects the standard pin icon viewers renderTHPDFFieldValidationOptionsrecord +HPDFDefaultValidationOptionsexpose the full AdobeAF*parameter surface (Decimals / SeparatorStyle / NegativeStyle / CurrencySymbol / CurrencyBefore / RangeMin / RangeMax) that the Acrobat JS helpers accept; the existingApplyLoadedFieldValidation(FieldIndex, Kind, DateFormat, Mask)signature is retained as a backward-compatible overload that forwards into the new record overloadApplyFieldValidationandApplyFieldCalculationbring 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 handCopyLoadedAnnotationsFromDocumentdeep-copies annotations from another loaded document directly PDF→PDF (no XFDF intermediary): reusesCopyObjectto rebuild indirect references, streams and/APappearances, rewrites/Pto the destination page, optionally remaps/IRTreply chains via/NM, optionally clears/Tauthor, and accepts aTHPDFAnnotCopyFilterEventcallback for selective copy -- covers Widget/PrinterMark/TrapNet/Watermark/3D/Screen that the XFDF layer does not reach
Fixed
ApplyLoadedFieldValidationwrote the Format JavaScript under trigger key/X(annotation-exit), which Acrobat never fires for form fields -- the script was effectively dead. Corrected to/Fso the format actually runs on field commitApplyLoadedFieldValidationemittedAFSpecial_FormatExfor the ArbitraryMask kind, a function that does not exist in the AdobeAF*set; onlyAFSpecial_KeystrokeEx(mask)is real, so the Format pass is dropped and enforcement happens at keystroke time as the spec intendsApplyLoadedFieldValidationunconditionally appendedAFRange_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 setsRangeMinorRangeMaxin the options recordApplyLoadedFieldValidationwrapped 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 aloneApplyLoadedFieldCalculationnow prepends a Format+Keystroke number-formatting pair before theAFSimple_Calculatescript 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
THPDFViewernow scrolls on hover-wheel without needing a click first: a thread-localWH_MOUSEhook (newHPDFMouseWheelHookunit, auto-installed from itsinitializationsection) routesWM_MOUSEWHEELto whicheverTHPDFViewerinstance sits under the cursor, matching the behaviour of every native Windows PDF readerTHPDFVieweris now Per-Monitor DPI v2 aware: newHPDFPerMonitorDPIunit resolvesuser32!SetProcessDpiAwarenessContext(Win10 1703+,DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2) at runtime and falls back throughshcore!SetProcessDpiAwareness(Win8.1+) anduser32!SetProcessDPIAware(Vista+); the legacyHPDFEnablePerMonitorDPIis retained as an alias that forwards to the new layered helperTHPDFViewer.RenderAtPhysicalDPIpublished property (defaultTrue) makes the rendering DPI baseline track the monitor’s physical DPI viaHPDFGetWindowDPI, so 100% zoom on a 144 DPI panel renders at native resolution; a newWMDpiChangedhandler re-renders on cross-monitor moves; setFalseto preserve the historical 96-DPI logical baseline- Optional persistent disk tier for the rendered-page cache: setting
THotPDF.RenderCacheFolderto a writable folder path persists every page rendered byRenderLoadedPageToBitmapCachedas a PNG under<folder>\<SHA256-prefix-16>\<page>@<dpi>.png, so re-opening the same document later is instant;RenderCacheMaxDocuments(default 20) andRenderCacheMaxBytes(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 THotPDFconstructor now activates the highest available per-monitor DPI tier at first instantiation in runtime mode (skipped incsDesigning), so hosts that never callHPDFEnablePerMonitorDPIexplicitly still get crisp rendering on high-DPI displays
Version 2.415.0
נוסף
HPDFParsePDFDateגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים+HH’mm,-HH’mm, orZגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםTDateTime;HPDFFormatPDFDateגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםD:YYYYMMDDHHmmSS+00’00GetLoadedExtGStateInforeadsLW/LC/LJ/ca/CAגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםGetLoadedShadingCount/GetLoadedShadingNameandGetLoadedPatternCount/GetLoadedPatternNameenumerate the/Shadingand/Patternresource sub-dictionariesReplaceLoadedPageגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםSwitchLoadedPagesexchanges two pages,ReverseLoadedPagesגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםExtractLoadedPagesToPDFגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםGetLoadedPageInheritedBoxגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםGetLoadedFileSpecInfoגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםGetLoadedEmbeddedFileMIMEreturns the/Subtype,GetLoadedEmbeddedFileChecksumreturns the/Checksumdigest, andTHPDFNameTreeType+GetLoadedNameTreeRootCountגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםHPDFEnablePerMonitorDPIdynamically enables per-monitor DPI awareness;THPDFBackgroundRendererגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםGetLoadedPageContentStreamCountreports whether/Contentsגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםGetLoadedXMPValueגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםGetLoadedDocumentReportגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים
Version 2.414.0
נוסף
THPDFActionBuilder.URIWithIsMapגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים/IsMap trueגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטיםURIגרסה זו מוסיפה את התנהגות ה-API והתמיכה המתוארות באמצעות הסמלים המפורטים/URIstringAddLoadedCaretAnnotationExגרסה זו מוסיפה את התנהגות ה-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
ActivateLoadedLinksturns 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מאחסן, גוזר, מונה, מסיר ומנקה הדגשות קבועות של אזורי דפים מבלי לשנות את ה-PDFTHPDFViewerמוסיף מצב אינטראקציית הדגשה עם גרירת מסגרת בחירה לכידה, שחזור קואורדינטות 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באמצעותTStringsCMapResourcePathתומך בנתיבי פריסת 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, andshresource lookups previously missed their slash-prefixed operand names and skipped the object silently - The
cmoperator and Form XObject/Matrixvalues 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
StampLoadedPageTextandStampLoadedPageImageמפחיתים כעת את דחיסת זרמי התוכן מסוג FlateDecode בצורה שקופה לפני הוספת אופרטורים — בעבר החתמה על/Contentsדחוס השחיתה בשקט את עומס ה-zlib והטקסט/תמונה שהתווספו נעלמו
Version 2.347.0
Added
AddLoadedOutlineמייצר סימניה חדשה בקובץ PDF טעון בכל רמת קינון (ParentIndex = -1עבור הרמה העליונה), עם יעד/Dest [page /XYZ x y zoom]— התכונה המבוקשת ביותר עבור מסמך טעון, ובכך סוגר את הפער שבו HotPDF יכול לקרוא/לשנות/למחוק סימניות אך לעולם לא לייצר אותןSetLoadedOutlineDestinationו-SetLoadedOutlineURIכותבים מחדש את דף היעד של סימניה קיימת או מעבירים אותה לפעולת URIResolveLoadedNamedDestinationהופך מחרוזת יעד בעלת שם לאינדקס דף מבוסס 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:CreateDateGetLoadedCollectionInfoקורא את שם ה-/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 והסמלים המפורטיםd0glyph
נוסף
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המוגדר כעטיפת נוחות סביבAttachSignatureFieldAppearanceEnumerateSystemCertificatesעובר על מאגר תעודות של 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מריץ את ה-VCLTPrinterדרך טווח דפים, 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פלוס מערך הצבע הפנימי/ICSetLoadedLineAnnotationCapsמגדיר את סגנונות קצוות הקו/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עדיין מרנדרים את ערך השדה ללא סבב מלא דרך AcrobatApplyLoadedFieldValidationמצמיד שלישיית תסריטי Format / Keystroke / Validate לשדה באמצעות עוזריAF*של Acrobat, ומכסה סוגי קלט של מספר, אחוז, תאריך, שעה, מטבע, מיקוד, מספר ביטוח לאומי, טלפון ומסכה שרירותית — הקורא אינו צריך עוד לכתוב ידנית JavaScript שלAFNumber_Format/AFDate_FormatEx/AFRange_ValidateApplyLoadedFieldCalculationמצמיד תסריט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>State=ON/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 והסמלים המפורטיםBeginPathseen,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/glyphNNsubset names), דרך ערכת התווים של תוכנת גופן דחוסה, או דרך מפת התווים של תוכנת TrueType, לפי מה שנתמך על ידי הגופן המוטמע - קידודי הבסיס המוגדרים מראש
StandardEncoding,WinAnsiEncodingו-MacRomanEncodingמכובדים עבור קודים ללא עקיפת/Differences, ובכך מתקנים את טווח ה-0x80–0x9F שהנחת Latin-1 פשוטה מטפלת בו בצורה שגויה - תוכנות דחוסות (
Type1C) המסתמכות אך ורק על קידוד מוגדר מראש — שנפלו בעבר לגופן מערכת עבור כל ההרצה — מרנדרות כעת את קווי המתווה המוטמעים שלהן דרך חיפוש השם הסטנדרטי
Version 2.272.0
Added
- רנדור דפים עם גליפים מוטמעים מכסה כעת גופני
Type1פשוטים (שאינם CID) עם תוכנתFontFile3Type1Cדחוסה: קודי תווים של בייט אחד נפתרים דרך הקידוד המובנה של תוכנת הגופן לקווי מתווה של מחרוזות תווים (charstring) אמיתיות מסוג Type 2, ובכך משלימים את כיסוי קווי המתווה המוטמעים בין סוגי גופנים פשוטים וגופני CID - גופני
TrueTypeפשוטים מקבלים בנוסף תוכנתFontFile3OpenType(בסגנון 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 הסטנדרטיים; הישויות&<>" ונקודות קוד מספריות&#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.detachedsignatures עם או בלי מאפיינים חתומים - עומס יתר של
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), כולם איברים חדשים של ה-enumTHPDFFacturXValidationIssue - נוספה סיווג קבצים מצורפים מוטמעים דרך
THotPDF.GetLoadedFacturXAttachments: מונה כל קובץ מוטמע ומסווג אותו תחת טקסונומיית מפרט Factur-X 1.09 סעיף 6.4 (חשבונית CII ראשית, ייצוג משלים של UBL או EDIFACT, מסמך תומך) תוך שימוש ב-enum החדשTHPDFFacturXAttachmentRole, כך שמקבלים יכולים לנתב קבצים מצורפים מבלי לחשב מחדש את התפקיד משמות הקבצים - נוספה תמיכה בקובץ מצורף משלים של EDIFACT סימטרית ל-UBL:
THotPDF.AddEDIFACTSupplementaryFileמטמיע הודעת EDIFACT כ-factur-xedifact.edi(מסוג MIMEtext/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
ShowValidationReportnow 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/EInvoiceDemoUsesProjectFileAndOutputNamesfailures
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) שומרות על המרנדר מנותק מ-HPDFDocvia 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 והסמלים המפורטים
THotPDFmethods:HPDFCMapReaderparses both ToUnicodebeginbfchar/beginbfrangeפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםbegincidchar/begincidrangeפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםHPDFContentStreamפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםBT/ET,Tf,Tj/TJ/'/",Td/TD/Tm/T*,q/Q, inline-imageBI/ID/EIפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםHPDFTextExtractionפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים/ToUnicode→/Encodingפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים/DescendantFonts/CIDToGIDMap→cid2code.txtפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים - Added
THotPDF.GetLoadedFontDecoder,THotPDF.ExtractLoadedPageGlyphsandTHotPDF.ExtractLoadedPageTextפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםExtractLoadedPageTextפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים - Added
ExtractTextפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםLoadedDocInspectorread-only console layout
שונה
HPDFDocnowusesHPDFCMapReader,HPDFContentStreamandHPDFTextExtractionפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםTHotPDFפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםHPDFParserstandalone-unit pattern (no dpkcontainsפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםHPDFDocפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםTHPDFFontDocAccessפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםResolveLoadedDictionary/ResolveLoadedStream/HPDFReadStreamByteshelpers
Version 2.235.1
新增
- 新增
PDFOptimize控制台例程(Delphi):演示生成端 PDF 体积优化,通过同内容、不同压缩设置的多份 PDF 横向对比量化每种策略的收益 —— 文本/矢量文档的cmNonevscmFlateDecode加UseObjectStreams对象流打包、彩色照片的icJpegJpegQuality扫描对比icFlate、双层扫描图的icCCITT42(G4)对比icJBIG2lossless/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שהדגים הועבר לדף נושא תיעוד APIDocs/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
新增
- 新增
TJpeg2000Bitmap(TBitmap派生类):可直接读写 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
变更
- 将简单对象解析器(
ParseSimpleDictionary、ParseSimpleArray)从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表切片、UnicodeStringrun、glyph ID)从不触碰THotPDF或THPDFPage实例。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 专用类型(THPDFDirectReadBuffer、THPDFDirectWriteBuffer、THPDFDirectIntArray)和全局缓冲(GHPDFCopyBuffer)一并迁移到新单元
Version 2.222.0
变更
- 将预检(preflight)、合规检查、PDF/VT 验证相关代码从
HPDFDoc.pas提取到新单元HPDFPreflight.pas。原有 25 个公开方法(CreatePreflightReport、ValidatePDFVT、EmbedPreflightReportAsXMP等)签名完全不变,实现改为转发到新单元的自包含 standalone 函数;HPDFDoc.pas因此减少约 3500 行。新增 3 个只读访问器(LoadedObjectCount、GetLoadedObjectByIndex、LoadedRootObjectIndex)让独立单元可枚举已加载文档的对象图
Version 2.221.0
新增
- 全面支持多语言化:将
Readme.html提取至Docs/en-us目录,并新增其他 37 种语言的翻译版本;更新了安装程序脚本(HotPDF-FULL.iss、HotPDF-TRIAL.iss),现在会根据安装时所选的语言,自动提取并放置对应语言版本的Readme.html至安装根目录
Version 2.220.0
新增
- 新增统一运行期日志门面
THPDFLogger与全局实例HPDFLog:把原本散落的编译期调试开关统一为运行期可控的日志门面。提供 Error / Warning / Info / Debug 四级严重度过滤,可同时输出到文件、OutputDebugString(IDE Event Log 可见)和控制台;文件目标带 10 MB 单备份滚动;线程安全(TCriticalSection保护);关闭态热路径仅一次布尔判断即返回,发布版零开销。LoadFromFile、CreatePreflightReport和 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)。底层用 GDIGetTextExtentExPointW一次调用同时拿总宽 + 累积宽度数组,差分后得到每字形 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 的ExtTextOutTJ 数组 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 / 代理对 / 多字节文本测出无意义的值;新方法用 GDIGetTextExtentPoint32W(lfHeight = -1000)按当前字体整串测量,返回用户空间点宽(与TextWidth同坐标系,可直接做布局预算)。同_XFAMeasureTextImpl的测量策略 - 新增
THPDFPage.GetWideTextRowCount(BoxWidth: Integer; Text: WideString): Integer:Unicode 行数预测,镜像GetTextRowCount的 AnsiString 契约,基于GetWideTextWidth让 CJK / 代理对文本正确换行计数
Version 2.215.0
新增
- 新增
THPDFPage.ExtTextOut(三个重载:PWORD/WideString/AnsiString):GDIExtTextOut风格的扩展文本输出,接受每字形水平位移数组Dx,emit 单个[<hex> <num> ...] TJ数组,让调用方精确控制每个字形原点——用于表格数字对齐、手动字距、两端对齐、表单值填充和签名块排版。复用现有_GPOSEmitPositionedRunTJ emit 器与_GPOSGlyphAdvance1000hmtx 读取,Dx为 PDF 用户空间点(与TextOut的 X/Y 同坐标系);当Dx值等于字形自然 advance 时 TJ 调整数归零,可在一次调用内混排自然与覆盖字形。仅支持简单 LTR 文本,RTL bidi 重排与 producer-side shaping 被旁路
Version 2.214.0
新增
- 新增
THPDFPage.AttachSignatureFieldAppearance:给已通过AddSignatureField/AddSignedSignatureField/AddPAdESSignatureField创建的签名字段挂上可见外观/AP /NForm XObject,并返回 Form 让调用方在 widget 本地坐标系内绘制签名图片、签名者姓名、日期或原因文字;内置薄边框加浅灰底色作为默认的“在此签名”占位外观 - 新增
HPDFNormalizeRect工具函数(三个重载:TRect/THPDFRectangle/ 四个Extended变参):把矩形角点重排为Left<=Right、Top<=Bottom,让鼠标拖框等无序输入可安全传给绘图 API - 把
THPDFPage.RotateCoordinate从 protected 提到 public:外部调用方现在可直接复用与RectangleRotate相同的旋转约定,计算旋转矩形角点、多边形顶点或文字包围盒
Version 2.213.0
新增
- 新增
THPDFPage几何便利方法套件:Arc角度定义弧、Pie角度定义扇形、Chord弓形、ArcTo中心加半径加扫角弧、Polyline折线、Polygon多边形、PolyBezier三次贝塞尔样条。所有方法都复用已有的MoveTo/LineTo/CurveToC/CurveArc底层路径原语,对齐 GDITCanvas角度与点数组语义,让画弧、扇形、折线和样条曲线不必再手写操作符循环
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ו-enumTfrxHotPDFExportMode: ברירת המחדל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יכול לייצא עמודות גלויות של VCLTDBGridאו שדות 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 והסמלים המפורטים
MINIMUMandBASIC WLפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםAFRelationshipData, enforcesAlternativeפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםXRECHNUNGפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
Version 2.197.15
תוקן
- פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
Versionvalues1.2,2.0,2.1,2.2,2.3, and3.0פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
Version 2.197.14
תוקן
- פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
EN16931פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםEN 16931, matching current sample metadata while preserving existingEN 16931calls
Version 2.197.13
תוקן
- פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
urn:factur-x.eu:1p0:basicandurn:factur-x.eu:1p0:extendedפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםBASICandEXTENDEDפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
Version 2.197.12
תוקן
- פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
ZUGFeRD-invoice.xmlfilename,COMFORTprofile,urn:ferd:pdfa:CrossIndustryDocument:invoice:1p0#פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםurn:ferd:CrossIndustryDocument:invoice:1p0פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
Version 2.197.11
תוקן
- פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
zugferd-invoice.xmlfilename withVersion2p0פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםurn:zugferd.de:2p0פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
Version 2.197.10
תוקן
- פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
fx:Versionas3.0while keeping ordinary Factur-X metadata at1.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 והסמלים המפורטים
CountryCodepolicy so current German ZUGFeRD invoices rejectMINIMUMandBASIC WL, enforceAlternativeפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםXRECHNUNGפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
Version 2.197.4
תוקן
- פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
CountryCodepolicy so German ZUGFeRD invoices can enforceAlternativeפרטי שינוי מקומיים עבור התנהגות ה-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.xmlorxrechnung.xmlin Catalog/AFand/Names/EmbeddedFilesפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
שונה
- פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
/ModDateand 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 JavaScriptthis.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-alignproperty on<p>:centerandrightפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטיםjustifyפרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים - פרטי שינוי מקומיים עבור התנהגות ה-API והסמלים המפורטים
margin-top,margin-bottom,space-before, andspace-afterin 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
sfFractionsshaping option automatically applies OpenTypefracsubstitutions 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 טקסט פלט:
sfSmallCapsforsmcp,sfCapsToSmallCapsforc2sc,sfOldstyleFiguresforonum,sfLiningFiguresforlnum,sfSuperscriptsforsups,sfSubscriptsforsubs, andsfOrdinalsforordn
Version 2.186.0
Added
- New
sfDiscretionaryLigaturesandsfHistoricalLigaturesshaping options automatically apply OpenTypedligandhligחיפוש 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 טקסט פלט: כאשר
sfArabicGSUBis enabled, HotPDF כעת applies ה registered font'sinit,medi,fina,isol,rlig,calt, andrcltחיפוש to logical Arabic runs and emits ה resulting font-native contextual glyph IDs with ToUnicode mappings - New
sfCursiveAttachmentshaping option applies OpenType GPOS cursive entry/exit anchors during Unicode טקסט פלט, allowing connected Arabic glyphs shaped through ה native GSUB נתיב to align through ה font's owncursdata
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 (ה
vkrnfeature) and vertical proportional alternates (הvpalfeature), 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
SimpleLatinFontsproperty (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 ה מסמך
Compressionsetting. 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 טקסט כאשר ה
sfStandardLigaturesshaping feature is enabled, choosing ה ligature glyph from ה loaded font's OpenTypeliga(andclig) 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
-1entry incolumnWidths) holds only growable cells with no measurable width, ה dropped column is כעת reported throughXFAFlattenWarningsבמקום being silently omitted
Version 2.145.3
Added
- טבלה columns set to automatic width (a
-1entry incolumnWidths, 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 itslayout="row"children into aligned columns, with column widths taken from ה טבלה'scolumnWidthsand 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 הdatasetspacket, 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:xdproot מסמך 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 (
SYSTEMorPUBLIC) 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 throughXFAFlattenWarnings
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
/XFAentry as a packet מערך כעת flatten correctly throughFlattenLoadedXFAבמקום כשל 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
FlattenLoadedXFAmethod 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 throughApplyXFAAsAcroForm). It קריאה ה form's/XFAentry, whether a single זרם or a packet מערך, then מסיר/XFAand 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
Editableoption: 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
ApplyXFAAsAcroFormmethod 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.XFAFlattenWarningsreports 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): ה
/SubFilterconstraint must beadbe.pkcs7.detachedorETSI.CAdES.detached, and ה/DigestMethodconstraint cannot beMD5,SHA1, orSHA-1. ה producer raises a clear diagnostic במקום silently emitting a profile-violating/SVdictionary
Version 2.142.0
Added
- New
AddXFASignaturePacketmethod embeds a caller-generated XAdES / XML-DSig signature as ה XFAsignaturepacket 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 asAddXFAPacketapply
Version 2.141.2
Added
- New public API
RegisterDefaultColorSpace(Which, ColorSpaceCS)registers an ICCBased colour space (יצר withRegisterICCProfile) as ה מסמך-wide/DefaultGray,/DefaultRGB, or/DefaultCMYKmapping 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/DefaultXkey in ה דף'sResources/ColorSpacedictionary. ה component מונה is validated against ה family (DefaultGray→ N=1,DefaultRGB→ N=3,DefaultCMYK→ N=4); קריאה with an emptyCSNameclears ה mapping; per-דף/DefaultXentries 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 singleGTS_PDFA1OutputIntent 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
/Cand/ICarrays מונה as DeviceRGB. ICCBased / CalGray / CalRGB / Lab colour spaces are exempt from ה בודק
Added
- קריאה-only properties
UsedDeviceGray,UsedDeviceRGB, andUsedDeviceCMYKonTHotPDFexpose ה 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 ה newSetXFADocumentmethod, carrying a whole XFA/XDP מסמך in one זרם (ISO 32000-1 §12.7.8) as an alternative to ה per-packetAddXFAPacketמערך form. ה two forms are mutually exclusive - New
XFANeedsRenderingproperty sets ה Catalog/NeedsRenderingflag (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:xdpbegin and end wrapper packets for ה מערך/XFAform, so ה packet זרם concatenate into a well-formed XDP מסמך (ISO 32000-1 §12.7.8)
Fixed
- Embedded-קובץ
/SubtypeMIME 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. AffectsAddPDFA3AssociatedFileandAddXAdESAssociatedFile 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 /Sigand omits ה/M/Reason/Location/ContactInfoentries זה ה 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/OCSPsarrays במקום 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 /ExtensionLevelvalue declared on ה Catalog כעת auto-upgrades to 2 כאשר a PAdES baseline signature with/SubFilter /ETSI.CAdES.detachedis נוסף, 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.certificatesvia ה newAdditionalCertsDERoption, 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 ה
/CIDSetbitstream 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 מסמך אחרי
BeginDocedits כעת שומר 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
/Lengthis 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.3or%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
pfCSVinCreatePreflightReport,SavePreflightReport, andCreatePreflightReportWithProfile, משתמש stablecategory,name,status,value,speccolumns for spreadsheet and batch workflows - ה PreflightReport GUI and HotPDFPreflight CLI can כעת select CSV פלט; ה CLI accepts
-f csvfor 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 forInsertPagesFromDocumentandExtractPagesToFile, andAppendPagesFromDocument - נוסף
OnPageOperationProgressso append, insert, and extract workflows can report deterministic דף-level progress
Version 2.137.6
Added
- נוסף
THotPDF.DACopyFilefor large-קובץ workflows זה only need a מונה הדפים and an original byte-for-byte שמירה העתקה without building ה full normal אובייקט graph - ה
HugeFileBenchmarkdemo כעת includes adirect-copyrow בעוד ה default operation set still covers ה fullLoadFromFile+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 העתקה - ה
HugeFileBenchmarkdemo כעת includes adirect-rewriteoperation 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
PreflightReportdemo 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, andxmp:ModifyDatepacket 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 אחרי
%%EOFkeep 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 זרם קלט מחזיר
Falseand resets ה wrapper state במקום dereferencing ה זרם
Version 2.137.0
Added
- נוסף
THotPDF.ValidatePDFVTwith 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, catalogDPartRootstructure, loadable דף, and דף-levelDPartcoverage - ה standalone
HotPDFPreflightCLI כעת accepts--pdfvtto כתיבה.pdfvt.txtvalidation 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 ה
HotPDFPreflightcommand-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 זה rebuildHPDFDoc.pasfrom source compile cleanly
Version 2.136.3
Added
- ה standalone
HotPDFPreflightCLI tool gains an--aggregate <file>option זה כתיבה a batch summary הפיק byTHotPDF.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
HotPDFPreflightCLI 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-rrecursive directory walks
Changed
- ה two new options are mutually exclusive (passing both, ה later one wins). ה preset values match what
THotPDF.GetBuiltInPreflightProfilerecognizes 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-actionspreset applied
Version 2.136.1
Added
- ה Delphi
PreflightReportdemo כעת acceptsprofile=<file>orpreset=<name>as an additional CLI argument to filter ה report through a profile לפני writing it. Works alongside ה existingjson/html/embedפלט format flag
Changed
- Examples:
PreflightReport.exe Input.pdf Report.txt "" text profile=tuned.iniorpreset=compact/preset=silent-actions - ה preset values mirror ה names recognized by
THotPDF.GetBuiltInPreflightProfileso ה demo doubles as a profile testbed without having to author an INI קובץ
Version 2.136.0
Added
- נוסף
THotPDF.MergePreflightProfilesfor layering profiles. ה result is ה deduplicated union of both inputs (DisableChecksandDisableWarningsare merged,DisableHintsis ה logical OR), useful for combining a preset such ascompactwith project-specific tweaks - נוסף
THotPDF.DiffPreflightProfilesfor structural comparison. מחזירTrueכאשר two profiles are equivalent, otherwise הOnlyInAandOnlyInBout parameters רשימה ה entries exclusive to each side as newline-separatedcheck:<name>/warn:<name>/option:hints=falsetokens
Changed
- ה two helpers complete ה profile lifecycle:
Load/GetBuiltIn/Save/Apply/Validate/Merge/Diff
Version 2.135.0
Added
- נוסף
THotPDF.CreatePreflightReportWithProfile, a one-עוצר convenience wrapper זה composesCreatePreflightReport,LoadPreflightProfile,ApplyPreflightProfile, and ה format converters into a single קריאה - ה new overload accepts a source PDF, optional password, optional profile קובץ, and target format (
pfText,pfJSON, orpfHTML) and מחזיר ה final report body. Passing an emptyProfileFileskips ה 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.SavePreflightProfilefor writing aTHPDFPreflightProfilerecord back to an INI קובץ. ה פלט format matches whatLoadPreflightProfileconsumes, 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, thenSavePreflightProfileה 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-useTHPDFPreflightProfilerecords for common workflows so callers do not have to maintain INI קובץ for canonical configurations
Changed
- Recognized names (case-insensitive):
defaultor empty string מחזיר an empty profile;compactdisables everyHintline for shorter reports;silent-actionsdisables every PDF 1.7 sec 12.6.4 action warning plusEmbeddedFileandRichMedia, 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.ValidatePreflightProfilefor defensive profile checking. ה function walks ה loaded profile'sDisableChecksandDisableWarningslists and flags any name זה is not recognized by ה current preflight implementation, returning ה unknown names joined by ', ' in הUnknownNamesout 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-levelprofile, ajobsמערך containingitemDetails/taskResult/validationResult, plus aruleViolationsמערך undervalidationResult.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
specificationISO clause cross-reference זה ה native HotPDF JSON פלט emits, so callers retain spec-level traceability כאשר consuming via ה veraPDF-style נתיב