PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   一個特殊的網站 (https://www.pcdvd.com.tw/showthread.php?t=1091184)

shinnlu 2015-11-02 09:04 PM

一個特殊的網站
 
1個附加檔案
小弟最近要做一個電子書網站,需要一個線上閱讀器
線上閱讀器最大的應該算是 Amazon Kindle 和 Google Play 圖書,不過這兩種只要稍懂網頁、或是網頁開發都很容易可以把內容複製出來

後來 google 到這一個線上閱讀器的網站:PDF Online Reader
一試之下驚為天人,完全看不懂他的架構

我試著上傳一個pdf 文件,有圖片有中文字,文字的部份回傳是用 json 把內容包進來,不過裡面的內容是 escaped code,例如 \u84EE \u751F,這種 json encoded code 如何不經過 decode 直接顯示在畫面上?

我看關鍵那一行程式碼是這樣寫的:
代碼:
<img id="page_img" style="visibility: visible; width: 581px; height: 821px;" src="Default.aspx?op=pageimage&amp;pg=2">

他用一個img來顯示,但圖片的來源是書本某頁的內容,如下圖
http://pcdvd.com.tw/attachment.php?...tid=96550&stc=1

但圖片照理說應該不能圈選和複製才對,但是他卻可以圈選和複製,更另人想不透的是他複製後的內容卻又是json encoded 的資料:INTRO & CAUTION \u7C21\u4ECB\u8207\u6CE8\u610F\u4E8B\u9805

有沒有網友看的懂這個程式運作的原理呢?

他這個做法比 Amazon 和 Google 的還難破解,至少目前為止還看不懂他的原理

A級黑豬肉 2015-11-02 09:06 PM

\u84EE \u751F 是 unicode

shinnlu 2015-11-02 09:15 PM

引用:
作者A級黑豬肉
\u84EE \u751F 是 unicode

沒錯,是unicode,如果讓瀏覽器不需要 decode 就直接顯示呢?

signally 2015-11-02 10:37 PM

有個函式庫叫iText專門在處理PDF文件的
之前公司要求要做Web文件管控時一些公司管理規章PDF只能讀不能下載、不能列印。
也曾動念要自己寫一個PDF Reader,所以思考過利用iText來實現應該是ok的。
後來雖然用其他方式實現需求功能,但平心而論你再怎麼防也防不了print screen | 手機拍照 不是!只是...主管們開心就好...

shinnlu 2015-11-02 10:54 PM

引用:
作者signally
有個函式庫叫iText專門在處理PDF文件的
之前公司要求要做Web文件管控時一些公司管理規章PDF只能讀不能下載、不能列印。
也曾動念要自己寫一個PDF Reader,所以思考過利用iText來實現應該是ok的。
後來雖然用其他方式實現需求功能,但平心而論你再怎麼防也防不了print screen | 手機拍照 不是!只是...主管們開心就好...

我知道防不勝防,像是您說的print screen和手機,但對於有心人來說己經大大增加了破解的困難度,真的要做 OCR ,校對的時間還不如用手重新打一遍
我的來源不一定是 PDF,大部份是word 檔裡面有圖片,所以在後台需要重新編輯過
我一度想放棄使用這個開源程式:epub.js,但是這個開源程式實在太好偷了,所以我想把裡面的內文用unicode hex 的方式呈現,使用者拷貝之後會是 unicode hex

A級黑豬肉 2015-11-02 11:31 PM

引用:
作者shinnlu
沒錯,是unicode,如果讓瀏覽器不需要 decode 就直接顯示呢?


'\\u'+('0000'+c.charCodeAt(0).toString(16)).slice(-4);

bestbuy 2015-11-03 12:10 AM

引用:
作者shinnlu
沒錯,是unicode,如果讓瀏覽器不需要 decode 就直接顯示呢?


他並沒有顯示文字 如你所見只是一張圖
你選文字的反白並沒有真的選任何文字, 只是draw半透明的div在圖片上而已
至於哪裡可以反白哪裡不行那個應該都寫在js裡面了 反白的部分對應到什麼文字都在你上傳PDF的時候就分析好了

他等於是自己寫了一個功能還蠻完整的 pdf reader...

shinnlu 2015-11-03 02:27 PM

引用:
作者bestbuy
他並沒有顯示文字 如你所見只是一張圖
你選文字的反白並沒有真的選任何文字, 只是draw半透明的div在圖片上而已
至於哪裡可以反白哪裡不行那個應該都寫在js裡面了 反白的部分對應到什麼文字都在你上傳PDF的時候就分析好了

他等於是自己寫了一個功能還蠻完整的 pdf reader...

我昨天也有朝這個方向去找,不過沒什麼結論
只有找到一個 word_selection 的 div,只要圈選文字,這個 div 裡面的內容就會變動
目前要實作這些功能可能時間上也來不及

shinnlu 2015-11-03 02:29 PM

引用:
作者A級黑豬肉
'\\u'+('0000'+c.charCodeAt(0).toString(16)).slice(-4);

c 的內容是什麼?
是一整段 unicode hex code嗎

bestbuy 2015-11-03 11:35 PM

其實看不太懂你要幹什麼

引用:
作者shinnlu
小弟最近要做一個電子書網站,需要一個線上閱讀器
線上閱讀器最大的應該算是 Amazon Kindle 和 Google Play 圖書,不過這兩種只要稍懂網頁、或是網頁開發都很容易可以把內容複製出來


意思不是不想讓別人複製文字嗎? 怎麼又在研究為什麼別人的 reader 可以複製文字? :confused: :confused:
感覺你需要的只是PDF to JPG 的 library 而已


所有的時間均為GMT +8。 現在的時間是08:04 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。