看板 EZsoft 關於我們 聯絡資訊
url2bmp v1.03 可以一次擷取全幅網頁, 包括未顯示在瀏覽器視窗的部份. 它是免費程式, 880K, 不必安裝. 只在 c:\windows 產生一個 url2bmp.ini 檔案. 程式網頁 http://www.pixel-technology.com/freeware/url2bmp/english/index.html 直接下載 http://www.pixel-technology.com/freeware/url2bmp/url2bmp.zip 我研究了一下這個程式, 以下是一些心得. View size 的意義是: "找一塊寬度為 x bits, 長度為 y bits 的記憶體, 提供 給 IE 內核作為網頁內容的顯示區." Output image 檔名欄位下面的大塊空白區 域就是網頁顯示區. x 與 y 二值可隨意設定, 可以大於或小於螢幕解析度. 換 句話說, 這個顯示區的尺寸不一定等於你在電腦螢幕上見到的 IE 視窗尺寸. 可 以比你的電腦螢幕大, 較小亦可, url2bmp 的作者將這塊模擬顯示區的記憶體稱 為"virtual screen". 這個顯示區的右端一定會有一條縱向拉桿(vertical scroll bar). 如果顯示區 的寬度比螢幕小, 就會在 url2bmp 的最大化視窗內見到這條縱向拉桿. 即使網 頁內容的高度沒有超過顯示區的高度, 並不需要這條縱向拉桿, 這條拉桿仍然存 在, 只是 grayed-out 罷了. 這一點倒與 IE 相同. 如果顯示區的寬度大到右端 超出螢幕之外, 當然就見不到這條拉桿. 但在 url2bmp 產生的網頁圖檔中仍然 會有這條拉桿. 若想從圖檔中移除這條縱向拉桿, 可勾選 Remove right scroll bar 選項, 不過須注意一點: Image size 的長與寬二者都必須與 View size 一 致, 也就是說, 不可縮放網頁, 否則此選項無效. 同理, 如果網頁內容的寬度超出顯示區的右端(不一定是螢幕右端, 因為顯示區 的寬度可以小於螢幕), 則在顯示區底端會出現一條橫向拉桿. 如果顯示區的底 端沒有超出螢幕, 就可以見到這條橫向拉桿(如果拉桿靠近螢幕下緣, 可能會被 工作列遮蔽). 反之, 若顯示區底端超出了螢幕, 就見不到這條橫向拉桿. 但仍 會在網頁圖檔中出現. 因為顯示區的寬度係由使用者手動設定. 而不同的顯示區寬度會連帶影響網頁顯 示時的高度. 因此, url2bmp 無法預知網頁顯示完畢後的高度. 顯示區的高度究 竟應設為何值, 才能容納全幅網頁的高度? 這就必須使用者自行測試了. 同理, url2bmp 也無法預知使用者想要的網頁寬度, 所以顯示區的寬度也由使用者手動 設定. url2bmp 會將這個顯示區的尺寸通知 IE, IE 在 url2bmp 的視窗內開啟網頁時, 會根據這個尺寸調整網頁格式. 例如, 若寬度設得夠寬(甚至超出螢幕), 足以容 納一整行文字, IE 就不必做 wrap. 反之, 若寬度容納不下整行文字, IE 就會 做 wrap. 注意: 若網頁內容超出顯示區, 不論從右方或下方超出, 超出的部份 url2bmp 無法擷入圖檔! 因此, 寧可將顯示區的尺寸設得大一些, 讓圖檔包含整幅網頁, 也不要將顯示區的尺寸設得太小, 而使圖檔缺了部份網頁. 當然, 持續增減 View size 的高度與寬度作測試, 直到顯示區右方與下方的拉桿都剛好消失, 便 可獲取與網頁相同大小的圖檔. 注意: 顯示區的高度會有可能設得比顯示全幅網頁所需高度還要大. 但除非網頁 有類似 width=120% 的語法, 使得網頁寬度必然超過顯示區, 否則並不會有顯示 區寬度比網頁還寬的問題. 因為無論顯示區多寬或多窄, IE 都會調整網頁格式, 將顯示區寬度填滿. 注意: 若網頁有類似 width=120% 的語法時, url2bmp 就無法將整幅網頁擷取成 圖了! 因為這種語法必然會使網頁寬度超出顯示區之外, 而超出的部份 url2bmp 無法擷取成圖. 這是 url2bmp 的一個缺陷. Tip: 如果你想讓 url2bmp 生成的網頁圖檔寬度與 IE 視窗寬度一致, 那麼, View size, Image size 以及 IE 視窗三者的寬度均須一致. Image size 的意義就是"將 View size 尺寸的整個顯示區縮放為 Image size 尺寸". 若 Image size 與 View size 相同, 則 url2bmp 生成的圖檔大小即是 顯示區的大小. 特別注意: 這裡說的 Image size 是指"顯示區"的圖檔尺寸, 而 非"網頁"的圖檔. 因為顯示區的尺寸不一定符合全幅網頁. 若顯示區比網頁小, url2bmp 生成的顯示區圖檔就會缺少部份網頁. 此時即使將圖檔放大, 被放大的 還是顯示區. 缺少的網頁也不會補足. 若顯示區的高度超出網頁所需高度, 以至 於底部留有空白, url2bmp 也會將空白擷入圖檔. 換句話說, url2bmp 不會偵測 網頁的底部在何處. 因此, 必須謹記:"url2bmp 生成的圖檔是顯示區的圖檔." Image size 的欄位只能填進整數, 不接受百分比. 因此, 必須自己先決定一個 縮放百分比, 然後再根據這個百分比, 自行算出顯示區縮放後的高度與寬度. 而 且, 高度與寬度二者的縮放比例必須一致, 例如, Image size 的長寬均為 View size 長寬的 113%. 將顯示區縮小沒有任何問題. 但是將顯示區放大卻有問題. 觀察url2bmp生成的 顯示區放大圖檔, 雖然確實按照比例放大了. 但是只有在左上角"View size"範 圍內的區域才能見到正確放大的網頁內容. 其餘部份, 也就是 View size 區域 的右方與下方, 都是一團混亂. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.138.70.227
PcGrek:很詳細的分析,推一下 12/15 21:23
tonyhome:作者說未來版本會自動偵測網頁大小 不用自己設定 12/16 19:54
ProGuy:好東西 推一下 12/17 02:18