|
תמיכה בעיצוב ערבית / פרסית / אורדו צינור עיצוב בצד היצרן (v2.85.0 - v2.119.68)
|
OpenType GSUB Engine CFF / OpenType Subsetting |
|
HotPDF מריץ צינור עיצוב בצד היצרן המקפל ריצות ערבית, פרסית ואורדו של קלט יוניקוד לצורות תצוגה בערבית במהלך פליטת טקסט PDF, כך שקוראי קצה מקבלים גליפים של מיקום / ליגטורה המוכנים לרינדור ללא צורך במעצב מסוג Harfbuzz משלהם
מה הצינור עושה עיצוב מיקומי (v2.85.0): לכל אות בסיס בערבית יש עד ארבע צורות מיקומיות - מבודדת (
ליגטורה מנדטורית LAM-ALEF (v2.119.32): מפרט עיצוב הערבית של יוניקוד מחייב שכל LAM (U+0644) שאחריו מגיע מיד ALEF (U+0627 רגיל, U+0622 עם madda מעל, U+0623 עם hamza מעל, U+0625 עם hamza מתחת) יקופל לגליף ליגטורה יחיד (צורות מבודדות / סופיות U+FEFB - U+FEFC עם גרסאות hamza / madda מתאימות). זוהי אחת מהליגטורות הבודדות שאינן אופציונליות בטיפוגרפיה ערבית והיא נדרשת לצורך תקינות; רינדור שלהן כגליפים נפרדים מייצר טקסט שקוראים שפת אם מזהים מיד כפגום. HotPDF מבצע את הקיפול במהלך הפליטה כך שקוראים אינם זקוקים למעצב מסוג Harfbuzz בנתיב הקוד שלהם
9 אותיות ליבה של פרסית / אורדו (v2.119.35): פרסית ואורדו מרחיבות את הערבית עם אותיות שאינן בבלוק Arabic Presentation Forms-B (U+FE70 - U+FEFC). 9 האותיות הנפוצות ביותר מסוג זה - כולל PEH (U+067E), TCHEH (U+0686), JEH (U+0698), KEH (U+06A9 / U+06AF), GAF (U+06AF), NOON GHUNNA (U+06BA), HEH DOACHASHMEE (U+06BE), YEH BARREE (U+06D2) ו-HEH GOAL (U+06C1) - הן בעלות צורות תצוגה ב-Arabic Presentation Forms-A (U+FB50 - U+FDFF). HotPDF ממפה כעת אותיות אלו לגליף Forms-A המתאים במהלך עיצוב מיקומי, כך שטקסט בפרסית ובאורדו מרונדר עם צורות init / medi / fina / isol הנכונות בכל קורא קצה
ערבית Extended-A + Supplement (v2.119.52, v2.119.56): טבלת מחלקות החיבור מכסה כעת את שאר תווים של ערבית Extended-A (גרסאות ALEF WASLA / NOON GHUNNA / HEH), ערבית Supplement U+0750-U+077F וטווח ערבית Extended-A הגבוה יותר U+08A0-U+08FF. תווים עם קידוד Presentation Forms-A סטטי ממופים דרך המעצב הקיים של 4 עמדות; תווים ללא (רוב Extended-A) מקבלים סיווג מחלקת חיבור בלבד כך ששכנים יעוצבו בצורה נכונה גם כאשר התו עצמו מועבר ללא שינוי. גרסה v2.119.56 תיקנה שני מיפויים שגויים של Forms-A שהוצגו על ידי v2.119.52 (U+06C2 / U+06C3)
כיסוי מלא של פרסית / אורדו Form-B (v2.119.57): טבלת מחלקות החיבור הורחבה כדי להקיף את מלוא הטווח U+0672-U+06D5 (כ-80 תווים המכסים גרסאות של REH / DAL / SEEN / SAD / TAH / AIN / FEH / QAF / KAF / GAF / LAM / NOON / HEH / WAW / YEH), ונוספו 26 מיפויים חדשים של Presentation Forms-A (15 מסוג D-class 4-form + 11 מסוג R-class 2-form). בפרט, HEH DOACHASHMEE הסטנדרטית של אורדו 'h' (U+06BE → FBAA-FBAD) ו-yeh הסופית של מילים באורדו YEH BARREE (U+06D2 → FBAE-FBAF) ממופות כעת בצורה נכונה לחריצי Forms-A שנוצלו לרעה על ידי התיקון הזמני v2.119.52 ALEF WASLA / NOON GHUNNA. הכיסוי הסטטי של Forms-A מקיף כעת יותר מ-40 תווים של מקור
מעבר עוקב (post-pass) לליגטורת YEH-HAMZA + תנועה (v2.119.58): מעבר עוקב שנוסף ל-
ליגטורת אללה (v2.119.60): רצף ארבעת התווים ALEF + LAM + LAM + HEH מתקפל ל-U+FDF2 ARABIC LIGATURE ALLAH ISOLATED FORM. מיושם כמעבר עוקב (post-pass) סטטי ברמת נקודת קוד לאחר v2.119.32 LAM-ALEF ו-v2.119.58 YEH-HAMZA בשרשרת
ליגטורת המשפט בסמאללה (v2.119.62): משפט הבסמאללה הסטנדרטי בן 22 נקודות הקוד "بسم الله الرحمن الرحيم" מתקפל לגליף יחיד U+FDFD ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM. מורץ כמעבר מקדים (pre-pass) הראשון ב-
עוזרי שאילתות ציבוריים
כיצד קוראים מפעילים זאת צינור העיצוב פועל באופן אוטומטי בתוך מתודות פליטת הטקסט ביוניקוד - אין צורך בקריאה מפורשת של "עצב זאת". העבר מחרוזות קלט יוניקוד בערבית / פרסית / אורדו ל-THPDFPage.UnicodeTextOut או ל-THPDFPage.RtLTextOut ו-HotPDF ממפה כל נקודת קוד של קלט לצורת התצוגה שלה לפני כתיבת אופרטור הצגת הטקסט של ה-PDF. בתיי היוניקוד המקוריים נלכדים גם ב-
דרישות גופן הגופן שנרשם באמצעות
Noto Sans Arabic (לטינית + ערבית; Forms-A + Forms-B + ערבית Extended-A) Noto Naskh Arabic, Noto Naskh Arabic UI Amiri (נאסק מסורתי, כיסוי מלא של Forms-A + Forms-B) Scheherazade New (SIL, מיועד לשפות העולם המוסלמי) Microsoft Arabic Typesetting / Tahoma / Times New Roman (מגיע עם Windows, כיסוי Forms-B מלא; לחלקם יש כיסוי Forms-A)
כאשר לגופן הרשום חסר גליף עבור צורת תצוגה נגזרת, HotPDF חוזר לנקודת הקוד הבסיסית של יוניקוד ופולט אותה ללא שינוי; קוראי קצה עשויים לנסות עיצוב משלהם (Acrobat, Foxit) או לרנדר
זרימת עבודה טיפוסית
PDF.RegisterUnicodeTTF('NotoArab', 'NotoSansArabic-Regular.ttf'); PDF.BeginDoc; PDF.CurrentPage.SetFont('NotoArab', [], 14); PDF.CurrentPage.RtLTextOut(100, 700, 0, UnicodeString(#$0645#$0631#$062D#$0628#$0627)); // "marhaba" (hello) PDF.EndDoc;
שילוב צינור אוטומטי של שלב 8 (v2.119.59 - v2.119.68) v2.119.59 הציג את מאפיין ההצטרפות (opt-in)
כאשר
מיפוי ToUnicode CMap הפוך של ליגטורות (v2.119.61, v2.119.62, v2.119.65) ה-Adobe-Identity-UCS ToUnicode CMap שנפלט על ידי
פליטת נקודת קוד סינתטית של PUA (v2.119.68)
קשר למנוע ה-OpenType GSUB מעצב המעבר העוקב הסטטי שתואר לעיל (v2.85.0 + v2.119.32 / 58 / 60 / 62) אינו תלוי ב-מנוע ה-OpenType GSUB כברירת מחדל. כאשר
עבור גליפי תחליף ללא נקודת קוד יוניקוד, קוראים משלבים את
טווח ומגבלות אלגוריתם ה-BiDi נשאר מחוץ לדף זה: קוראים עדיין צריכים לסדר ריצות מעורבות של LTR ו-RTL בעצמם או להשתמש בספריית BiDi נפרדת. GPOS, Indic/Tibetan/Mongolian, Hebrew, N'Ko, אדלאם, תאית/לאו, וג'אוונית נמצאים כעת בדפי דגלי עיצוב ו-API נפרדים להצטרפות, כך שדף זה מתמקד רק בעיצוב ערבית סטטי ומבוסס GSUB
ראה גם: |