古詩詞大全網 - 個性簽名 - iOS 加載PDF問題無法顯示電子章問題

iOS 加載PDF問題無法顯示電子章問題

公司項目中需要顯示訂單合同PDF文件。正常情況下,加載pdf文件直接通過UIWebView或者WKWebView就可以。不過實際情況中,PDF文件如果存在 電子簽名(簽章) 的話,直接通過webView是無法查看到 電子簽名(簽章) 的。可以寫個簡單的demo對 /security/SampleSignedPDFDocument.pdf 這個pdf文件進行查看對比:

之前直接使用WKWebview加載pdf地址來處理的,具體實現是通過遠端的 pdfviewer (可以理解為web端的pdf查看頁面)拼接 pdf 的url 路徑來加載的,大概如下:

不過由於存在跨域問題,需要進行cookie的註入操作,並且從遠端進行解析加載pdf速度壹直很慢,所有想嘗試其他的方法。

調研過程略...

調研相關鏈接:

iOS展示pdf簽名時遇到的問題及解決辦法

iOS實現PDF閱讀功能調研

接入教程直接參照: iOS使用pdf.js打開PDF文件

參照上面的步驟介入後發現還是無法顯示 電子簽名(簽章) 在查看 pdf.js 上的 issue 後發現有相關issue 如下:

其中 #4743 中 Osukaru 提出了解決方案:

在 src/core/annotation.js第601行(當前版本) 中

(後面查詢過程中發現在 使用PDF.js如何顯示pdf文件的電子簽章 中也提到同樣的解決辦法。)

將 clone 下來的 pdf.js 中 src/core/annotation.js 文件修改後按照 iOS使用pdf.js打開PDF文件

重新構建執行

再接入到工程項目中即可,最終效果:

註意,這裏沒有使用上面提供的 /security/SampleSignedPDFDocument.pdf 進行驗證,是因為在運行過程中會crash,並拋出 WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent 錯誤