postext-pdf 1.27.1 → 1.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/arabicShaping.test.js +2 -0
  3. package/dist/__tests__/arabicShaping.test.js.map +1 -1
  4. package/dist/__tests__/crossRefLinks.test.js +49 -0
  5. package/dist/__tests__/crossRefLinks.test.js.map +1 -1
  6. package/dist/__tests__/inlineCaptionSide.test.d.ts +2 -0
  7. package/dist/__tests__/inlineCaptionSide.test.d.ts.map +1 -0
  8. package/dist/__tests__/inlineCaptionSide.test.js +151 -0
  9. package/dist/__tests__/inlineCaptionSide.test.js.map +1 -0
  10. package/dist/__tests__/lineTracking.test.js +31 -0
  11. package/dist/__tests__/lineTracking.test.js.map +1 -1
  12. package/dist/__tests__/metadata.test.js +40 -0
  13. package/dist/__tests__/metadata.test.js.map +1 -1
  14. package/dist/__tests__/printOutput.test.js +34 -0
  15. package/dist/__tests__/printOutput.test.js.map +1 -1
  16. package/dist/__tests__/scriptContext.test.d.ts +2 -0
  17. package/dist/__tests__/scriptContext.test.d.ts.map +1 -0
  18. package/dist/__tests__/scriptContext.test.js +266 -0
  19. package/dist/__tests__/scriptContext.test.js.map +1 -0
  20. package/dist/__tests__/scriptContextHan.test.d.ts +2 -0
  21. package/dist/__tests__/scriptContextHan.test.d.ts.map +1 -0
  22. package/dist/__tests__/scriptContextHan.test.js +164 -0
  23. package/dist/__tests__/scriptContextHan.test.js.map +1 -0
  24. package/dist/__tests__/sharedGlyphReadback.test.d.ts +2 -0
  25. package/dist/__tests__/sharedGlyphReadback.test.d.ts.map +1 -0
  26. package/dist/__tests__/sharedGlyphReadback.test.js +331 -0
  27. package/dist/__tests__/sharedGlyphReadback.test.js.map +1 -0
  28. package/dist/faceFiles.d.ts +9 -0
  29. package/dist/faceFiles.d.ts.map +1 -1
  30. package/dist/faceFiles.js +22 -0
  31. package/dist/faceFiles.js.map +1 -1
  32. package/dist/fontCache.d.ts +10 -0
  33. package/dist/fontCache.d.ts.map +1 -1
  34. package/dist/fontCache.js +15 -0
  35. package/dist/fontCache.js.map +1 -1
  36. package/dist/pdf-backend/blockRender.d.ts.map +1 -1
  37. package/dist/pdf-backend/blockRender.js +11 -5
  38. package/dist/pdf-backend/blockRender.js.map +1 -1
  39. package/dist/pdf-backend/fallbackSpaces.d.ts +3 -0
  40. package/dist/pdf-backend/fallbackSpaces.d.ts.map +1 -1
  41. package/dist/pdf-backend/fallbackSpaces.js +5 -0
  42. package/dist/pdf-backend/fallbackSpaces.js.map +1 -1
  43. package/dist/pdf-backend/index.d.ts +8 -0
  44. package/dist/pdf-backend/index.d.ts.map +1 -1
  45. package/dist/pdf-backend/index.js +15 -0
  46. package/dist/pdf-backend/index.js.map +1 -1
  47. package/dist/pdf-backend/links.d.ts +14 -5
  48. package/dist/pdf-backend/links.d.ts.map +1 -1
  49. package/dist/pdf-backend/links.js +20 -6
  50. package/dist/pdf-backend/links.js.map +1 -1
  51. package/dist/pdf-backend/primitives.d.ts +28 -5
  52. package/dist/pdf-backend/primitives.d.ts.map +1 -1
  53. package/dist/pdf-backend/primitives.js +219 -57
  54. package/dist/pdf-backend/primitives.js.map +1 -1
  55. package/dist/pdf-backend/renderResourceBlock.d.ts.map +1 -1
  56. package/dist/pdf-backend/renderResourceBlock.js +8 -6
  57. package/dist/pdf-backend/renderResourceBlock.js.map +1 -1
  58. package/dist/pdf-backend/rtlRun.d.ts +5 -1
  59. package/dist/pdf-backend/rtlRun.d.ts.map +1 -1
  60. package/dist/pdf-backend/rtlRun.js +7 -3
  61. package/dist/pdf-backend/rtlRun.js.map +1 -1
  62. package/dist/pdf-backend/shapedText.d.ts +5 -0
  63. package/dist/pdf-backend/shapedText.d.ts.map +1 -1
  64. package/dist/pdf-backend/shapedText.js +23 -7
  65. package/dist/pdf-backend/shapedText.js.map +1 -1
  66. package/dist/pdf-backend/svgVector.js +1 -1
  67. package/dist/pdf-backend/svgVector.js.map +1 -1
  68. package/dist/print/pdfx.d.ts +8 -1
  69. package/dist/print/pdfx.d.ts.map +1 -1
  70. package/dist/print/pdfx.js +25 -1
  71. package/dist/print/pdfx.js.map +1 -1
  72. package/dist/shapingLanguage.d.ts +15 -3
  73. package/dist/shapingLanguage.d.ts.map +1 -1
  74. package/dist/shapingLanguage.js +50 -3
  75. package/dist/shapingLanguage.js.map +1 -1
  76. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/pdf-backend/links.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/pdf-backend/links.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,SAAS,GAIV,MAAM,SAAS,CAAC;AAgCjB,yEAAyE;AACzE,MAAM,UAAU,GAAG,8BAA8B,CAAC;AAElD;;sEAEsE;AACtE,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QAChC,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+EAA+E;AAC/E,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9F,OAAO,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;aAGa;AACb,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,OAAO,WAAW,EAAE,EAAE,CAAC;AACzB,CAAC;AAED;2CAC2C;AAC3C,MAAM,UAAU,SAAS,CAAC,GAAiD;IACzE,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtD,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;AAClF,CAAC;AAED,MAAM,OAAO,YAAY;IAUM;IATrB,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C;0EACsE;IAC9D,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClC,OAAO,GAAkB,EAAE,CAAC;IACpC,2EAA2E;IAC3E,aAAa,GAAG,CAAC,CAAC;IAElB,uDAAuD;IACvD,YAA6B,kBAAkB,CAAC;QAAnB,oBAAe,GAAf,eAAe,CAAI;IAAG,CAAC;IAEpD;yEACqE;IACrE,cAAc,CAAC,UAAkB,EAAE,IAAa,EAAE,MAAc,EAAE,KAAa,EAAE,IAAa;QAC5F,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO;QACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACpF,CAAC;IAED,mEAAmE;IACnE,OAAO,CAAC,IAAa,EAAE,IAAsC,EAAE,UAAkB,EAAE,MAAmB;QACpG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;6CACyC;IACzC,UAAU,CAAC,IAAa,EAAE,IAAsC,EAAE,GAAW,EAAE,MAAmB;QAChG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,wEAAwE;IACxE,WAAW,CAAC,IAAa,EAAE,IAAsC,EAAE,SAAiB,EAAE,MAAmB;QACvG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;uEAImE;IACnE,QAAQ,CAAC,MAAmB,EAAE,IAAiB;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,+EAA+E;QAC/E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,SAA+B,CAAC;YACpC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC3B,kDAAkD;YACpD,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACxC,6DAA6D;gBAC7D,wCAAwC;gBACxC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;wBAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzD,SAAS;gBACX,CAAC;gBACD,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YAC3F,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzF,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;wBAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzD,SAAS;gBACX,CAAC;gBACD,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,GAAG;oBACb,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC;oBACjB,IAAI,CAAC,MAAM;oBACX,IAAI,CAAC,KAAK;oBACV,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;gBACxB,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;gBACzB,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC;gBAC3B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,SAAS;oBACX,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;oBACrB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC;aACxG,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBACxB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC/E,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YACzG,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;gBACpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrD,IAAI,QAAQ,YAAY,QAAQ,EAAE,CAAC;gBACjC,KAAK,MAAM,GAAG,IAAI,IAAI;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;4CAEwC;IAChC,sBAAsB,CAAC,MAAmB;QAChD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,EAAE,CAAC,CAAC,CAAC;QACnJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,MAAM,KAAK,GAAgC,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3G,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,YAAY,YAAY,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnF,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,CAAC,YAAY,YAAY,OAAO,CAAC;YAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/G,CAAC;CACF;AAED;mEACmE;AACnE,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,CAAoB,EAAE,CAAoB;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IAC/F,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC7B,CAAC;AAwBD;;;;;;;;GAQG;AACH,MAAM,OAAO,MAAM;IACT,OAAO,CAA0B;IAEzC;;;kBAGc;IACd,KAAK,CAAC,GAAe,EAAE,CAAS,EAAE,IAA4B,EAAE,UAAU,GAAG,GAAG,CAAC,aAAa,EAAE,KAAK,GAAG,CAAC;QACvG,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;YACjE,IAAI,CAAC,OAAO,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC;QAC7H,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;iEAE6D;IAC7D,KAAK,CAAC,GAAe,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,UAAU,KAAK,UAAU;YAAE,OAAO,SAAS,CAAC;QACrH,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;QACzB,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED;;iEAE6D;IAC7D,KAAK,CAAC,GAAe,EAAE,IAA4B,EAAE,UAAU,GAAG,GAAG,CAAC,aAAa,EAAE,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACtI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC3D,IAAI,IAAI,EAAE,YAAY,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAC;QACjI,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,qEAAqE;AACrE,MAAM,QAAQ,GAAG,SAAS,CAAC;AAU3B;;;;;;GAMG;AACH,MAAM,OAAO,OAAO;IAIC;IACA;IACA;IACA;IANX,GAAG,GAAoF,IAAI,CAAC;IAEpG,YACmB,GAAe,EACf,IAA6C,EAC7C,QAAkC,EAClC,MAA8B;QAH9B,QAAG,GAAH,GAAG,CAAY;QACf,SAAI,GAAJ,IAAI,CAAyC;QAC7C,aAAQ,GAAR,QAAQ,CAA0B;QAClC,WAAM,GAAN,MAAM,CAAwB;IAC9C,CAAC;IAEJ;;uEAEmE;IACnE,IAAI,CAAC,IAAwB,EAAE,CAAS,EAAE,KAAa,EAAE,IAAY;QACnE,qEAAqE;QACrE,iDAAiD;QACjD,MAAM,GAAG,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACnD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACxC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,iDAAiD;YACjD,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACnF,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;8DAE0D;IAC1D,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;oBACgB;IAChB,KAAK;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,GAAG;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEO,KAAK;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACnC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACzC,MAAM,IAAI,GAAqC;YAC7C,GAAG,CAAC,EAAE,GAAG,KAAK;YACd,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK;YACjE,GAAG,CAAC,EAAE,GAAG,KAAK;YACd,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;SACxC,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;;YACtJ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { BlendMode, type PDFPage, type PDFFont, type Color, PDFName, PDFOperator } from 'pdf-lib';
2
2
  import { type ColorMode } from '../print/colorMode';
3
- import { type CjkRegion, type ForcedOrientation, type RoundedOutline, type VDTChip } from 'postext';
3
+ import { type CjkRegion, type ForcedOrientation, type RoundedOutline, type ScriptContext, type VDTChip } from 'postext';
4
4
  import type { PageTagger } from './tagging';
5
5
  export interface PageCtx {
6
6
  page: PDFPage;
@@ -33,6 +33,11 @@ export interface PageCtx {
33
33
  * vertical painter reads it, since it sets its own spacing inside its
34
34
  * text objects. */
35
35
  trackingPx?: number;
36
+ /** How many spans opened with {@link beginActualTextSpan} are open:
37
+ * what is painted inside one is read as the span's text, and no glyph
38
+ * takes a span of its own there (#755; a reader that meets an
39
+ * `/ActualText` inside another, Poppler, drops the outer one). */
40
+ readSpans?: number;
36
41
  /** Set while a right-to-left page's flow paints through its mirror
37
42
  * (`VDTMirroredFlowFrame`, {@link mirrorMatrix}): every text object
38
43
  * and picture is turned back about its own box, so it reads as written
@@ -56,6 +61,15 @@ export interface VerticalPaint {
56
61
  /** Set the character spacing (`Tc`) text is painted with, px, and record
57
62
  * it on the context. */
58
63
  export declare function setTrackingPx(ctx: PageCtx, px: number): void;
64
+ /**
65
+ * Paint, with `paint`, a word the layout measured in `script`
66
+ * (`VDTLineSegment.scriptContext`, #725): shaped in that script (the
67
+ * script in force, `withShapingScript`) and, in a script whose words take
68
+ * no tracking (`scriptContextUntracked`: the Arabic script), with no
69
+ * character spacing, as it was measured. Any other word (`script`
70
+ * undefined) is just painted.
71
+ */
72
+ export declare function paintInScript<T>(ctx: PageCtx, script: ScriptContext | undefined, paint: () => T): T;
59
73
  /** A PDF transformation matrix `[a b c d e f]` (`x' = a·x + c·y + e`,
60
74
  * `y' = b·x + d·y + f`). */
61
75
  export type PdfMatrix = [number, number, number, number, number, number];
@@ -158,8 +172,12 @@ export interface TextShow {
158
172
  }
159
173
  /** The show-text operators of `text` in `font`'s face: one
160
174
  * ({@link showTextShaped}) for a face of one file, else one per run of
161
- * characters set in the same file (see `faceFiles.ts`). */
162
- export declare function textShows(font: PDFFont, text: string): TextShow[];
175
+ * characters set in the same file (see `faceFiles.ts`). A glyph the
176
+ * font's `/ToUnicode` map reads as other text is shown in a span of its
177
+ * own ({@link glyphReads}), unless `read` is false: the caller reads the
178
+ * text some other way (an `/ActualText` over all of it, a figure's
179
+ * alternate text). */
180
+ export declare function textShows(font: PDFFont, text: string, read?: boolean): TextShow[];
163
181
  /** How far `text` moves the pen in `font`'s face at `sizePx`, px, with
164
182
  * `trackingPx` after every glyph (as {@link showTextShaped} paints it,
165
183
  * each run in the file of the face that has it); and how many glyphs it
@@ -187,12 +205,17 @@ export declare function measuredTextOperator(font: PDFFont, pieces: readonly {
187
205
  * {@link measuredTextOperator} for a face of any number of files: the
188
206
  * pieces cut into runs by file (see `faceFiles.ts`), one show-text
189
207
  * operator per stretch set in the same file. The pen carries across the
190
- * font switches, so every piece still starts where the layout put it.
208
+ * font switches, so every piece still starts where the layout put it. A
209
+ * glyph the font's `/ToUnicode` map reads as other text is shown in a span
210
+ * of its own between two of them ({@link glyphReads}).
191
211
  */
192
212
  export declare function measuredTextShows(font: PDFFont, pieces: readonly {
193
213
  text: string;
194
214
  width: number;
195
- }[], sizePx: number, trackingPx?: number): TextShow[] | undefined;
215
+ }[], sizePx: number, trackingPx?: number,
216
+ /** False when the caller reads the text some other way: no glyph takes
217
+ * a span of its own (see {@link textShows}). */
218
+ read?: boolean): TextShow[] | undefined;
196
219
  export declare function fontKeyOn(page: PDFPage, font: PDFFont): PDFName;
197
220
  /** Outline of the glyphs a text is drawn with (a design text's `stroke`):
198
221
  * stroked over the fill, or alone for hollow letters. */
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/pdf-backend/primitives.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,40 @@
1
1
  import { rgb, cmyk, grayscale, pushGraphicsState, popGraphicsState, rectangle, clip, endPath, concatTransformationMatrix, PDFArray, PDFHexString, PDFName, PDFNumber, PDFOperator, PDFOperatorNames, beginText, endText, setFillingColor, setFontAndSize, showText, setTextMatrix, moveTo, lineTo, appendBezierCurve, closePath, stroke, fill, setStrokingColor, setLineWidth, setTextRenderingMode, TextRenderingMode, setGraphicsState, setCharacterSpacing, } from 'pdf-lib';
2
2
  import { colorAlpha, hexToRgb, rgbToCmyk, rgbToGrayscale } from '../colors';
3
3
  import { isPrintMode, modeKey, overPaper } from '../print/colorMode';
4
- import { joinsLetters } from 'postext';
5
- import { fallbackPieces } from './fallbackSpaces';
4
+ import { joinsLetters, scriptContextUntracked } from 'postext';
5
+ import { fallbackPieces, isDefaultIgnorable, isSpaceCharacter } from './fallbackSpaces';
6
6
  import { fileRuns, noteMissingGlyphs } from '../faceFiles';
7
- import { shapingKey } from '../shapingLanguage';
7
+ import { needsComplexShaping } from '../complexShaping';
8
+ import { shapingKey, withShapingScript } from '../shapingLanguage';
8
9
  /** Set the character spacing (`Tc`) text is painted with, px, and record
9
10
  * it on the context. */
10
11
  export function setTrackingPx(ctx, px) {
11
12
  ctx.trackingPx = px;
12
13
  ctx.page.pushOperators(setCharacterSpacing(px * ctx.scale));
13
14
  }
15
+ /**
16
+ * Paint, with `paint`, a word the layout measured in `script`
17
+ * (`VDTLineSegment.scriptContext`, #725): shaped in that script (the
18
+ * script in force, `withShapingScript`) and, in a script whose words take
19
+ * no tracking (`scriptContextUntracked`: the Arabic script), with no
20
+ * character spacing, as it was measured. Any other word (`script`
21
+ * undefined) is just painted.
22
+ */
23
+ export function paintInScript(ctx, script, paint) {
24
+ if (script === undefined)
25
+ return paint();
26
+ const tracking = ctx.trackingPx ?? 0;
27
+ const lift = tracking !== 0 && scriptContextUntracked(script);
28
+ if (lift)
29
+ setTrackingPx(ctx, 0);
30
+ try {
31
+ return withShapingScript(script, paint);
32
+ }
33
+ finally {
34
+ if (lift)
35
+ setTrackingPx(ctx, tracking);
36
+ }
37
+ }
14
38
  /** Apply `m` to a point. */
15
39
  export function applyMatrix(m, x, y) {
16
40
  return { x: m[0] * x + m[2] * y + m[4], y: m[1] * x + m[3] * y + m[5] };
@@ -327,8 +351,15 @@ export function showTextShaped(font, text) {
327
351
  const hit = cache.get(key);
328
352
  if (hit)
329
353
  return hit;
330
- noteMissingGlyphs(font, text);
331
- const op = fallbackOperator(font, text) ?? shapedTextOperator(font, text);
354
+ const run = shownRun(font, text);
355
+ let op;
356
+ if (run)
357
+ op = partsOperator(font, plainParts(run.parts));
358
+ else {
359
+ // A standard font: no shaper, pdf-lib's own encoding.
360
+ noteMissingGlyphs(font, text);
361
+ op = showText(font.encodeText(text));
362
+ }
332
363
  if (cache.size >= ENCODE_CACHE_SLOTS)
333
364
  cache.clear();
334
365
  cache.set(key, op);
@@ -336,9 +367,16 @@ export function showTextShaped(font, text) {
336
367
  }
337
368
  /** The show-text operators of `text` in `font`'s face: one
338
369
  * ({@link showTextShaped}) for a face of one file, else one per run of
339
- * characters set in the same file (see `faceFiles.ts`). */
340
- export function textShows(font, text) {
341
- return fileRuns(font, text).map((run) => ({ font: run.font, op: showTextShaped(run.font, run.text) }));
370
+ * characters set in the same file (see `faceFiles.ts`). A glyph the
371
+ * font's `/ToUnicode` map reads as other text is shown in a span of its
372
+ * own ({@link glyphReads}), unless `read` is false: the caller reads the
373
+ * text some other way (an `/ActualText` over all of it, a figure's
374
+ * alternate text). */
375
+ export function textShows(font, text, read = true) {
376
+ return fileRuns(font, text).flatMap((run) => {
377
+ const shown = read ? shownRun(run.font, run.text) : undefined;
378
+ return shown?.reads ? partsShows(run.font, shown.parts) : [{ font: run.font, op: showTextShaped(run.font, run.text) }];
379
+ });
342
380
  }
343
381
  function shapingFace(font) {
344
382
  const embedder = font.embedder;
@@ -347,22 +385,96 @@ function shapingFace(font) {
347
385
  return undefined;
348
386
  return { face, features: embedder.fontFeatures };
349
387
  }
350
- /** `text` shaped as one run: a `TJ` with the shaper's positions, or a plain
351
- * `Tj` when it has none. */
352
- function shapedTextOperator(font, text) {
353
- // `encodeText` also registers the glyphs with the font's subset (the ids
354
- // it returns are subset ids), so it runs even when positions are added.
355
- const encoded = font.encodeText(text);
356
- const parts = shapedParts(font, text, encoded);
357
- return parts && parts.length > 1 ? adjustedOperator(font, parts) : showText(encoded);
358
- }
359
- /** The `TJ` array (hex glyph runs and adjustments) of a shaped run, or
360
- * undefined when the shaper's positions cannot be matched to its glyphs. */
361
- function shapedParts(font, text, encoded) {
362
- return shapedRun(font, text, encoded)?.parts;
363
- }
364
- /** {@link shapedParts} with the sum of the glyphs' own widths (their `W`
365
- * entries), in thousandths of the font size. */
388
+ /**
389
+ * What the glyphs fontkit laid `text` out with are read as, where the
390
+ * font's `/ToUnicode` map reads them as other text (#755); undefined when
391
+ * the map reads every one as written, which is nearly always.
392
+ *
393
+ * The map is one per font, and a glyph keeps the characters it was first
394
+ * given (fontkit makes a glyph once, with the characters of the text that
395
+ * first showed it; `shapedText.ts` does the same for the glyphs HarfBuzz
396
+ * shows). A glyph two characters share therefore reads as the first of
397
+ * them the document set: the bracket a right-to-left run mirrors is the
398
+ * glyph of the other bracket, so after `(١)` in an Arabic note the glyph
399
+ * of `)` stands for `(`, and a later `(Brill, 2017)` in the same font read
400
+ * back `(Brill, 2017(`. A form the shaper puts in a character's place
401
+ * takes the characters of that character's own glyph, the wrong ones
402
+ * with them. The same goes for any two characters the face's cmap draws
403
+ * with one glyph: the hyphen-minus and the hyphen, the space and the
404
+ * no-break space. Such a glyph is shown in a span whose `/ActualText` is
405
+ * its character here, as `shapedText.ts` does for a cluster HarfBuzz
406
+ * shaped: the first use of a glyph costs nothing, each use for another
407
+ * character one span.
408
+ *
409
+ * The glyphs are walked against the text. A glyph whose own characters
410
+ * are the next ones of the text reads right; one with no characters (the
411
+ * second glyph of a decomposed letter) reads as nothing; one that holds
412
+ * one character, and not the next of the text, is read as that next
413
+ * character. Three glyphs are left as they read: `.notdef`, which stands
414
+ * for every character the face lacks; the space glyph fontkit hides an
415
+ * invisible character behind; and the space glyph, read as a space, under
416
+ * a no-break space or any other space the face draws with it (a space the
417
+ * face lacks reads as a space too, see `fallbackSpaces.ts`). The reads
418
+ * hold only when the walk ends where the text does (every glyph accounted
419
+ * for, one way or another); when it does not — a glyph for several
420
+ * characters that holds others, a variation selector — the run is left as
421
+ * it reads.
422
+ */
423
+ function glyphReads(face, glyphs, text) {
424
+ // fontkit hands a right-to-left run's glyphs over in visual order: such
425
+ // text is HarfBuzz's whenever it is loaded, and is not walked here.
426
+ if (needsComplexShaping(text))
427
+ return undefined;
428
+ let reads;
429
+ let space;
430
+ // UTF-16 offset in `text` of the next character to read.
431
+ let at = 0;
432
+ for (let i = 0; i < glyphs.length; i++) {
433
+ const glyph = glyphs[i];
434
+ const own = glyph.codePoints;
435
+ if (glyph.id !== 0 && (!own || own.length === 0))
436
+ continue;
437
+ let end = at;
438
+ for (const cp of own ?? []) {
439
+ if (text.codePointAt(end) !== cp) {
440
+ end = -1;
441
+ break;
442
+ }
443
+ end += cp > 0xffff ? 2 : 1;
444
+ }
445
+ if (end > at) {
446
+ at = end;
447
+ continue;
448
+ }
449
+ const cp = text.codePointAt(at);
450
+ if (cp === undefined)
451
+ return undefined;
452
+ at += cp > 0xffff ? 2 : 1;
453
+ if (glyph.id === 0)
454
+ continue;
455
+ if (isDefaultIgnorable(cp) && glyph.id === (space ??= cmapGlyphId(face, 0x20)))
456
+ continue;
457
+ if (own.length !== 1)
458
+ return undefined;
459
+ if (own[0] === 0x20 && isSpaceCharacter(cp))
460
+ continue;
461
+ reads ??= new Array(glyphs.length);
462
+ reads[i] = String.fromCodePoint(cp);
463
+ }
464
+ return at === text.length ? reads : undefined;
465
+ }
466
+ /** The id of the glyph the face's cmap gives `cp` (0: none), read from the
467
+ * cmap itself: `glyphForCodePoint` would make the glyph, with `cp` as the
468
+ * characters it then keeps in the font's map. */
469
+ function cmapGlyphId(face, cp) {
470
+ const cmap = face._cmapProcessor;
471
+ return typeof cmap?.lookup === 'function' ? cmap.lookup(cp) || 0 : 0;
472
+ }
473
+ /** The `TJ` array (hex glyph runs and adjustments) of a shaped run, with
474
+ * the sum of the glyphs' own widths (their `W` entries), in thousandths
475
+ * of the font size; undefined when the shaper's positions cannot be
476
+ * matched to its glyphs. A glyph the font's map reads as other text is a
477
+ * part of its own ({@link glyphReads}). */
366
478
  function shapedRun(font, text, encoded) {
367
479
  const shaping = shapingFace(font);
368
480
  if (!shaping)
@@ -373,6 +485,7 @@ function shapedRun(font, text, encoded) {
373
485
  const count = run.glyphs.length;
374
486
  if (count === 0 || hex.length !== count * 4 || run.positions.length !== count)
375
487
  return undefined;
488
+ const reads = glyphReads(face, run.glyphs, text);
376
489
  // TJ numbers are thousandths of text space, subtracted from the pen: a
377
490
  // glyph drawn at `pen + xOffset` then advancing by `xAdvance` (not its
378
491
  // W width `advanceWidth`) is `-xOffset, glyph, -(xAdvance - w - xOffset)`.
@@ -395,7 +508,13 @@ function shapedRun(font, text, encoded) {
395
508
  parts.push(lead);
396
509
  }
397
510
  const cid = hex.slice(i * 4, i * 4 + 4);
398
- pendingHex += cid;
511
+ const read = reads?.[i];
512
+ if (read !== undefined) {
513
+ flushHex();
514
+ parts.push({ hex: cid, text: read });
515
+ }
516
+ else
517
+ pendingHex += cid;
399
518
  pendingAdjust = -(pos.xAdvance - run.glyphs[i].advanceWidth - pos.xOffset) * toText;
400
519
  widths += cid === '0000' && subsetFont ? MISSING_WIDTH : run.glyphs[i].advanceWidth * toText;
401
520
  }
@@ -423,10 +542,13 @@ function partsOperator(font, parts) {
423
542
  return parts.length === 1 && typeof parts[0] === 'string' ? showText(PDFHexString.of(parts[0])) : adjustedOperator(font, parts);
424
543
  }
425
544
  /** Append a part to a `TJ` array, merging it into a neighbouring glyph run
426
- * or number; a zero adjustment is dropped. */
545
+ * or number; a zero adjustment is dropped. A glyph read through a span
546
+ * stays a part of its own. */
427
547
  function pushPart(parts, part) {
428
548
  const last = parts[parts.length - 1];
429
- if (typeof part === 'number') {
549
+ if (typeof part === 'object')
550
+ parts.push(part);
551
+ else if (typeof part === 'number') {
430
552
  if (part === 0)
431
553
  return;
432
554
  if (typeof last === 'number')
@@ -444,16 +566,63 @@ function pushPart(parts, part) {
444
566
  function shownRunOf(parts, widths) {
445
567
  let advance = widths;
446
568
  let glyphs = 0;
569
+ let reads = false;
447
570
  for (const part of parts) {
448
571
  if (typeof part === 'number')
449
572
  advance -= part;
450
- else
573
+ else if (typeof part === 'string')
451
574
  glyphs += part.length / 4;
575
+ else {
576
+ glyphs += part.hex.length / 4;
577
+ reads = true;
578
+ }
452
579
  }
453
- return { parts, advance, glyphs };
580
+ return { parts, advance, glyphs, reads };
581
+ }
582
+ /** `parts` with every glyph read through the font's map: one show-text
583
+ * array, as before any glyph took a span. */
584
+ function plainParts(parts) {
585
+ const out = [];
586
+ for (const part of parts)
587
+ pushPart(out, typeof part === 'object' ? part.hex : part);
588
+ return out;
454
589
  }
455
- /** The parts of a text holding spaces the face has no glyph for, or
456
- * invisible characters (see {@link fallbackOperator}). */
590
+ /**
591
+ * The show-text operators of `parts` in `font`: one, or, around each glyph
592
+ * read through a span ({@link ReadGlyph}), the span's `BDC`, the glyph and
593
+ * its `EMC`. The glyphs and the pen adjustments are the same ones in the
594
+ * same order, cut into several arrays: nothing moves on the page.
595
+ */
596
+ function partsShows(font, parts) {
597
+ const shows = [];
598
+ let plain = [];
599
+ const flush = () => {
600
+ if (plain.length > 0)
601
+ shows.push({ font, op: partsOperator(font, plain) });
602
+ plain = [];
603
+ };
604
+ for (const part of parts) {
605
+ if (typeof part !== 'object') {
606
+ pushPart(plain, part);
607
+ continue;
608
+ }
609
+ flush();
610
+ const props = font.doc.context.obj({ ActualText: PDFHexString.fromText(part.text) });
611
+ shows.push({ font, op: PDFOperator.of(PDFOperatorNames.BeginMarkedContentSequence, [PDFName.of('Span'), props]) }, { font, op: showText(PDFHexString.of(part.hex)) }, { font, op: PDFOperator.of(PDFOperatorNames.EndMarkedContent) });
612
+ }
613
+ flush();
614
+ if (shows.length === 0)
615
+ shows.push({ font, op: partsOperator(font, []) });
616
+ return shows;
617
+ }
618
+ /**
619
+ * The parts of a text holding a space the face has no glyph for (a narrow
620
+ * no-break space, a figure space…) or an invisible character (a word
621
+ * joiner): painted as the canvas measured it, not as `.notdef` boxes (see
622
+ * `fallbackSpaces.ts`). A missing space is the face's space glyph — text
623
+ * extraction still finds a space there — moved to the browser's advance
624
+ * for it; an invisible character is not drawn.
625
+ */
457
626
  function fallbackRun(font, face, pieces) {
458
627
  const toText = 1000 / face.unitsPerEm;
459
628
  const spaceGlyph = face.hasGlyphForCodePoint(0x20) ? face.glyphForCodePoint(0x20) : undefined;
@@ -462,7 +631,11 @@ function fallbackRun(font, face, pieces) {
462
631
  for (const piece of pieces) {
463
632
  if ('space' in piece) {
464
633
  if (spaceGlyph) {
465
- pushPart(parts, font.encodeText(' ').asString());
634
+ // The face's space glyph, read as a space whatever the font's map
635
+ // gives it (a no-break space set before any space, #755).
636
+ const space = font.encodeText(' ');
637
+ for (const part of shapedRun(font, ' ', space)?.parts ?? [space.asString()])
638
+ pushPart(parts, part);
466
639
  pushPart(parts, tjNumber((spaceGlyph.advanceWidth - piece.space) * toText));
467
640
  widths += spaceGlyph.advanceWidth * toText;
468
641
  }
@@ -479,24 +652,6 @@ function fallbackRun(font, face, pieces) {
479
652
  }
480
653
  return shownRunOf(parts, widths);
481
654
  }
482
- /**
483
- * The show-text operator of a text holding a space the face has no glyph
484
- * for (a narrow no-break space, a figure space…) or an invisible character
485
- * (a word joiner): painted as the canvas measured it, not as `.notdef`
486
- * boxes (see `fallbackSpaces.ts`). A missing space is the face's space
487
- * glyph — text extraction still finds a space there — moved to the
488
- * browser's advance for it; an invisible character is not drawn. Undefined
489
- * for text that needs none of this.
490
- */
491
- function fallbackOperator(font, text) {
492
- const shaping = shapingFace(font);
493
- if (!shaping)
494
- return undefined;
495
- const pieces = fallbackPieces(shaping.face, text);
496
- if (!pieces)
497
- return undefined;
498
- return partsOperator(font, fallbackRun(font, shaping.face, pieces).parts);
499
- }
500
655
  const runsByFont = new WeakMap();
501
656
  /** `text` as {@link showTextShaped} paints it, with the advance and glyph
502
657
  * count it leaves (cached per font). Undefined when the font carries no
@@ -567,16 +722,21 @@ const MEASURED_TOLERANCE = 0.5;
567
722
  * added after every glyph. Undefined when the font carries no shaper.
568
723
  */
569
724
  export function measuredTextOperator(font, pieces, sizePx, trackingPx = 0) {
570
- const shows = measuredTextShows(font, pieces, sizePx, trackingPx);
725
+ const shows = measuredTextShows(font, pieces, sizePx, trackingPx, false);
571
726
  return shows && shows.length === 1 ? shows[0].op : undefined;
572
727
  }
573
728
  /**
574
729
  * {@link measuredTextOperator} for a face of any number of files: the
575
730
  * pieces cut into runs by file (see `faceFiles.ts`), one show-text
576
731
  * operator per stretch set in the same file. The pen carries across the
577
- * font switches, so every piece still starts where the layout put it.
732
+ * font switches, so every piece still starts where the layout put it. A
733
+ * glyph the font's `/ToUnicode` map reads as other text is shown in a span
734
+ * of its own between two of them ({@link glyphReads}).
578
735
  */
579
- export function measuredTextShows(font, pieces, sizePx, trackingPx = 0) {
736
+ export function measuredTextShows(font, pieces, sizePx, trackingPx = 0,
737
+ /** False when the caller reads the text some other way: no glyph takes
738
+ * a span of its own (see {@link textShows}). */
739
+ read = true) {
580
740
  if (!(sizePx > 0))
581
741
  return undefined;
582
742
  const groups = [];
@@ -596,7 +756,7 @@ export function measuredTextShows(font, pieces, sizePx, trackingPx = 0) {
596
756
  groups.push(group);
597
757
  }
598
758
  for (const part of run.parts)
599
- pushPart(group.parts, part);
759
+ pushPart(group.parts, read || typeof part !== 'object' ? part : part.hex);
600
760
  advance += run.advance + run.glyphs * tracking;
601
761
  }
602
762
  ahead += advance - (piece.width / sizePx) * 1000;
@@ -612,7 +772,7 @@ export function measuredTextShows(font, pieces, sizePx, trackingPx = 0) {
612
772
  }
613
773
  if (groups.length === 0)
614
774
  groups.push({ font, parts: [] });
615
- return groups.map((g) => ({ font: g.font, op: partsOperator(g.font, g.parts) }));
775
+ return groups.flatMap((g) => partsShows(g.font, g.parts));
616
776
  }
617
777
  const fontKeysByPage = new WeakMap();
618
778
  export function fontKeyOn(page, font) {
@@ -654,7 +814,7 @@ direction) {
654
814
  // document loaded it (`shapedText.ts`).
655
815
  if (complexPainter?.(ctx, text, xPx, baselinePx, font, sizePx, color, outline, actualText, direction))
656
816
  return;
657
- pushTextObject(ctx, textShows(font, text), xPx, baselinePx, font, sizePx, color, outline, actualText);
817
+ pushTextObject(ctx, textShows(font, text, actualText === undefined && !ctx.readSpans), xPx, baselinePx, font, sizePx, color, outline, actualText);
658
818
  }
659
819
  finally {
660
820
  ctx.runAdvancePx = outer;
@@ -699,7 +859,7 @@ export function drawMeasuredTextPx(ctx, pieces, xPx, baselinePx, font, sizePx, c
699
859
  endActualTextSpan(ctx, { font, text: pieces[0]?.text ?? '', sizePx, xPx, baselinePx });
700
860
  return true;
701
861
  }
702
- const shows = measuredTextShows(font, pieces, sizePx, trackingPx);
862
+ const shows = measuredTextShows(font, pieces, sizePx, trackingPx, actualText === undefined && !ctx.readSpans);
703
863
  if (!shows)
704
864
  return false;
705
865
  // Every piece starts where the layout put it: the run is as wide as the
@@ -777,6 +937,7 @@ export function withActualText(ctx, text, shows) {
777
937
  */
778
938
  export function beginActualTextSpan(ctx, text, state) {
779
939
  ctx.tags?.close();
940
+ ctx.readSpans = (ctx.readSpans ?? 0) + 1;
780
941
  const props = ctx.page.doc.context.obj({ ActualText: PDFHexString.fromText(text) });
781
942
  ctx.page.pushOperators(...lineTextState(ctx, state), PDFOperator.of(PDFOperatorNames.BeginMarkedContentSequence, [PDFName.of('Span'), props]));
782
943
  }
@@ -847,6 +1008,7 @@ export function compressedMarkSpacingPx(font, seg, sizePx) {
847
1008
  * state in force (see `lineTextState`). */
848
1009
  export function endActualTextSpan(ctx, state) {
849
1010
  ctx.tags?.close();
1011
+ ctx.readSpans = Math.max(0, (ctx.readSpans ?? 0) - 1);
850
1012
  ctx.page.pushOperators(...lineTextState(ctx, state), PDFOperator.of(PDFOperatorNames.EndMarkedContent));
851
1013
  }
852
1014
  export function pushClipRect(ctx, xPx, yPx, wPx, hPx) {