PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
shinnlu
Advance Member
 

加入日期: Jan 2003
文章: 334
一個特殊的網站

小弟最近要做一個電子書網站,需要一個線上閱讀器
線上閱讀器最大的應該算是 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 的還難破解,至少目前為止還看不懂他的原理
     
      
上傳的圖像
文件類型: jpg 螢幕快照 2015-11-02 下午8.59.59.jpg (17.1 KB, 1631次瀏覽)
舊 2015-11-02, 09:04 PM #1
回應時引用此文章
shinnlu離線中  
A級黑豬肉
Advance Member
 

加入日期: Apr 2004
您的住址: 楓葉國
文章: 316
\u84EE \u751F 是 unicode
 
舊 2015-11-02, 09:06 PM #2
回應時引用此文章
A級黑豬肉離線中  
shinnlu
Advance Member
 

加入日期: Jan 2003
文章: 334
引用:
作者A級黑豬肉
\u84EE \u751F 是 unicode

沒錯,是unicode,如果讓瀏覽器不需要 decode 就直接顯示呢?
舊 2015-11-02, 09:15 PM #3
回應時引用此文章
shinnlu離線中  
signally
*停權中*
 
signally的大頭照
 

加入日期: Jan 2002
您的住址: 鳳形山下
文章: 159
有個函式庫叫iText專門在處理PDF文件的
之前公司要求要做Web文件管控時一些公司管理規章PDF只能讀不能下載、不能列印。
也曾動念要自己寫一個PDF Reader,所以思考過利用iText來實現應該是ok的。
後來雖然用其他方式實現需求功能,但平心而論你再怎麼防也防不了print screen | 手機拍照 不是!只是...主管們開心就好...
舊 2015-11-02, 10:37 PM #4
回應時引用此文章
signally離線中  
shinnlu
Advance Member
 

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

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

此文章於 2015-11-02 10:56 PM 被 shinnlu 編輯.
舊 2015-11-02, 10:54 PM #5
回應時引用此文章
shinnlu離線中  
A級黑豬肉
Advance Member
 

加入日期: Apr 2004
您的住址: 楓葉國
文章: 316
引用:
作者shinnlu
沒錯,是unicode,如果讓瀏覽器不需要 decode 就直接顯示呢?


'\\u'+('0000'+c.charCodeAt(0).toString(16)).slice(-4);
舊 2015-11-02, 11:31 PM #6
回應時引用此文章
A級黑豬肉離線中  
bestbuy
Junior Member
 
bestbuy的大頭照
 

加入日期: Jul 2002
您的住址: Calgary, Canada
文章: 931
引用:
作者shinnlu
沒錯,是unicode,如果讓瀏覽器不需要 decode 就直接顯示呢?


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

他等於是自己寫了一個功能還蠻完整的 pdf reader...
__________________
舊 2015-11-03, 12:10 AM #7
回應時引用此文章
bestbuy離線中  
shinnlu
Advance Member
 

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

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

我昨天也有朝這個方向去找,不過沒什麼結論
只有找到一個 word_selection 的 div,只要圈選文字,這個 div 裡面的內容就會變動
目前要實作這些功能可能時間上也來不及
舊 2015-11-03, 02:27 PM #8
回應時引用此文章
shinnlu離線中  
shinnlu
Advance Member
 

加入日期: Jan 2003
文章: 334
引用:
作者A級黑豬肉
'\\u'+('0000'+c.charCodeAt(0).toString(16)).slice(-4);

c 的內容是什麼?
是一整段 unicode hex code嗎
舊 2015-11-03, 02:29 PM #9
回應時引用此文章
shinnlu離線中  
bestbuy
Junior Member
 
bestbuy的大頭照
 

加入日期: Jul 2002
您的住址: Calgary, Canada
文章: 931
其實看不太懂你要幹什麼

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


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

此文章於 2015-11-03 11:37 PM 被 bestbuy 編輯.
舊 2015-11-03, 11:35 PM #10
回應時引用此文章
bestbuy離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



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


vBulletin Version 3.0.1
powered_by_vbulletin 2025。