fix(pdf): add extern hints for pdfjs apis

This commit is contained in:
charlie
2025-12-15 18:05:32 +08:00
parent 98fad292eb
commit b107535024
3 changed files with 6 additions and 14 deletions

View File

@@ -116,6 +116,8 @@ dummy.bounding = function() {};
dummy.getPageView = function() {};
dummy.convertToPdfPoint = function() {};
dummy.scrollPageIntoView = function() {};
dummy.textLayer = function() {};
dummy.viewport = function() {};
dummy.convertToViewportRectangle = function() {};
dummy.init = function() {};
dummy.commit = function() {};

View File

@@ -125,11 +125,6 @@
#(.removeEventListener doc "click" cb)))
[])
;; TODO: precise position
;;(when-let [
;;page-bounding (and highlight (pdf-utils/get-page-bounding viewer (:page highlight)))
;;])
(let [*el (rum/use-ref nil)
^js cnt (.-container viewer)
^js body (some-> (.-ownerDocument cnt) (.-body))

View File

@@ -32,27 +32,22 @@
(defn vw-to-scaled-pos
[^js viewer {:keys [page bounding rects]}]
(when-let [^js viewport (some-> viewer (.getPageView (dec page)) (.-viewport))]
(when-let [^js viewport (some-> viewer ^js (.getPageView (dec page)) (.-viewport))]
{:bounding (viewport-to-scaled bounding viewport)
:rects (for [rect rects] (viewport-to-scaled rect viewport))
:page page}))
(defn scaled-to-vw-pos
[^js viewer {:keys [page bounding rects]}]
(when-let [^js viewport (some-> viewer (.getPageView (dec page)) (.-viewport))]
(when-let [^js viewport (some-> viewer ^js (.getPageView (dec page)) (.-viewport))]
{:bounding (scaled-to-viewport bounding viewport)
:rects (for [rect rects] (scaled-to-viewport rect viewport))
:page page}))
(defn get-page-bounding
[^js viewer page-number]
(when-let [^js el (and page-number (.. viewer (getPageView (dec page-number)) -div))]
(bean/->clj (.toJSON (.getBoundingClientRect el)))))
(defn resolve-hls-layer!
[^js viewer page]
(when-let [^js text-layer (some-> viewer (.getPageView (dec page)) (.-textLayer))]
(let [cnt (.-div text-layer)
(when-let [^js text-layer (some-> viewer ^js (.getPageView (dec page)) (.-textLayer))]
(let [^js cnt (.-div text-layer)
cls "extensions__pdf-hls-layer"
doc js/document
layer (.querySelector cnt (str "." cls))]