2013年12月1日 星期日

Safari 7 Reader 的半殘列印系統


很久以前,我曾發過一個 tweet

坦白說,整體上我喜歡 Mountain Lion 勝過 Mavericks。

當時我並沒有說清楚,因為說起來有點吹毛求疵 .... 一個很小的問題居然成為我否決一個新系統的最後一根稻草?!什麼問題呢?就是列印系統 (Printing system) [1]。


列印 (Print) 可以算是一般作業系統的基本能力了,但是 Mac OSX 的列印系統特別不同,原因在於 Mac OSX 的 2D 介面是由 Quartz 引擎來驅動 (系統架構如上圖),而 Quartz 畫出來的東西基本上就是 PDF .... 所以藉由列印系統的輸出,在其他系統上要價不菲的 PDF 產生器 [2],在 Mac OSX 裡不僅免費,而且直接內建於系統之中,使得 Mac OSX 的列印系統除了具備一般列印的功能之外,還具備將任何內容輸出成 PDF 的能力。

"將任何內容輸出成 PDF" 可說是殺手級的功能之一,對於一般檔案可能不那麼明顯,但應用在瀏覽器上可就高下立判。瞧瞧其他系統的使用者,當他們想保留好的網頁文章時,除了 "儲存整個網頁" 這種爛到極點的方法之外,就只能額外安裝 PDF 印表機,然而這類軟體的品質差異很大,一旦運氣不好踩到雷,極差的使用體驗可不是砸爛電腦就可以了事的;Linux 用戶更慘,沒有 Chrome 的原生版可以用就算了 [3],Firefox 上的 PDF 輸出套件 "全是" 垃圾,我每一個都試過,根本就跟沒有一樣 (傻孩子,乖乖花錢買 Adobe Acrobat 吧!什麼?Linux 上只有 Acrobat Reader?!)。


不過,縱使 OSX 擁有極佳的 PDF 輸出能力,但以整體的品質來看,應用在瀏覽器 (如 Safari) 上的效果還是比其他軟體差了點,因為一般網頁上都有很多廣告或是與內容無關的側邊欄,從 Safari 直接列印常常會包含一些花花綠綠的東西,或是被 OSX 的列印系統直接過濾掉,最後變成上圖的空白區塊,看了實在非常惱人。

然而 Apple 也深知這一點,所以在 Safari 5 的時候推出 "閱讀器" (Reader) 的功能,這個功能可以單獨抽出網頁裡的內文 (即使不是每一個網頁都支援),並重新排版成適合閱讀的高品質文章,本來是為了閱讀而設計 (其他陰謀?看這裡),但聰明的網友立刻發現 -- 這是輸出高質感網頁文章的最佳方法!


如上圖,只要在 "閱讀器" 的網頁介面下緣選取 "列印",就可以不費吹灰之力把乾淨清爽的網頁文章以 PDF 的形式保存下來 (參考的教學文),除了 OSX 之外沒有其他系統可以這麼簡單就做到這件事。


進步還是退步?

可是這個優勢卻被 Apple 狠狠地毀掉了,Mavericks 正式版一釋出,幹譙文就在 Apple 官方論壇出現:


嚴格說起來也不算幹譙,只是這個問題立刻就被人發現了,要知道 Mavericks 是 10/22 在 Mac App store 上釋出,而這個發問的文章是在 10/23 刊出的,表示這個功能被很廣泛地使用,並非冷門功能。由上圖的網友回應可知,"Save to PDF" 的功能真的消失了,真的他娘的消失了!取而代之的是 "檔案" > "輸出為 PDF ...",那我們來看看這位接班人表現如何。

首先,以示範網頁的 "閱讀器" 原始介面為對照組。


再來我們用 "檔案" > "列印" 的功能看看成效如何:


嗯 .... 主要的問題是圖片均向左排列,其排列圖片的排版能力完全消失。其實這個問題在不使用 "閱讀器" 時幾乎不會發生 (表示不是列印系統的問題,罪魁禍首是 "閱讀器" ...),但若不使用 "閱讀器",印出來的版面又很難看 ....

最後是新功能 "檔案" > "輸出為 PDF ..."


..... 我是不是該用 "罄竹難書" 來形容?這像渣一樣的輸出能力能拿出來見人嗎?
  1. 刊頭圖片消失
  2. 圖片排版能力消失,甚至顯示不出圖片
  3. 文章邊界近乎為零
拜託一下,如果是 "閱讀器" 表現不好就算了,既然已經排版出好的版面,把眼前的文章印出來有這麼難嗎?我實在無法理解其中的道理。

由於這個問題對我影響很大,我花了不少時間去找解決的方法,甚至將文章傳到 EvernoteReadItLater (Pocket) 再行輸出,但結果不是無法輸出,就是輸出的效果遠不及舊版的 Safari 閱讀器。最後,在走投無路的情況下,我居然把主意動到 OSX 的親戚上 -- 沒錯,就是用 iOS App 來解決!


InstaWeb -- 網頁 PDF 轉換神器


InstaWeb 本身是一個很陽春的瀏覽器,但它具備與 Safari 閱讀器 "類似" 的清廣告能力,而且還可以將結果輸出成 PDF 檔!酷吧!使用方式非常簡單,只要用它連上指定的網頁,按下右下角的 "X" 移除廣告,再按下右上角的 "PDF" 選項即可,然後轉換好的 PDF 檔就會儲存在 InstaWeb 的檔案庫裡,十分方便快速且成品品質非常地好,故推薦給各位 [4]。

不介意聽小弟發牢騷的話,也可以看下面的介紹影片:


總之,Apple,請加油!不要因為對手太差勁就忘了基本,OK?



附註
1. Mac OSX 的列印系統是 CUPS,有興趣的人可以看看它的官網或連上 http://localhost:631/ 瀏覽系統內附的說明文件。
2. Windows 裡有很多免費的 PDF 印表機工具,像 CutePDF 就是其中一例,可是論速度、輸出品質都遠不如 Mac OSX 的原生輸出能力 (以前是這樣),有的甚至扯到把所有圖文都轉成全圖片型 PDF 輸出 .... 總之品質良莠不齊,還是價格高昂的 Adobe Acrobat 最穩定、輸出品質也最好。
3. Chrome 有自己的 PDF 輸出套件,不過成效如何尚不清楚,因為我從不使用這個記憶體怪獸,而且它根本沒有快到哪裡去。
4. InstaWeb 有時候也會失敗 (跟網頁的複雜度有關),整體上來說還是 Safari 閱讀器比較強 ...

4 則留言:

  1. 由於我的ML已經把Safari升級到6.1
    所以無法對比和原先的成品有何不同
    不過我一直以為是一樣的
    因為即便底下有icon
    也還是要按列印>存成PDF
    只是新版比較不方便而已
    重點是…6.1其實也沒有輸出成PDF這樣的選項啊

    回覆刪除
    回覆
    1. Safari 是到 7.0 版才有問題吧?在 Mountain Lion 上的 6.x 版應該沒問題。

      另外,要存成 PDF 本來就是靠列印,6.x 版也是這樣,但至少是 "所見即所得"。新版的爛是在於 Safari 列印系統有問題,印出來的東西 (不管是印在紙上還是做成 PDF) 版面會跑掉,觀感很糟。

      刪除
    2. 以你提供的示範網頁為例
      以前的版本來不及測試
      但我確定6.1和7.0遇到的問題一模一樣
      所以除了尚未升級還有機會以外
      其他全都殘念了

      刪除
    3. 剛剛把safari降回6.0.5
      果然列印是正常的
      可是我的iCloud icon卻消失了
      嗚~

      刪除