PDF 操作個人經驗談

整理一下使用 PDF 的經驗談,作為日後參考。

閱讀 PDF:Windows 上主要是用 Foxit Reader ,偶爾會用 Nitro PDF reader 。用 Foxit Reader 是求快,用 Nitro PDF reader 的好處是可以匯出 PDF 裡的圖片。Linux 上我也是用 Foxit Reader ,然後以預設的 GNOME evince 為輔。在 PDF 檔上下標記? 我沒這個需求,所以沒用過,不知道這幾套對這功能的支援如何。

產出 PDF:我有用過的幾套免費軟體,都是以虛擬印表機的形式存在,所以只要選定指定的印表機進行列印,就可以產出 PDF。在 Windows 下,我使用過的軟體有 PDF CreatordoPDF Nitro PDF Creator (好像是裝 Nitro PDF reader時裝上的),都不錯用,會用三套,是因為有時候會有字出不來的情況。在 Linux 上就最方便了,不必另外安裝,一樣也是列印時,指定列印到檔案即可。另外值得一提的是 Open/Libre Office ,裡面有提供獨立的選項,可以直接匯出 PDF。

合併與分割:如果只是簡單的合併跟分割,我是用 PDFSam ,這個可愛的工具是用 Java 寫的,Linux / Windows 上都通用。如果需要一次裁出好幾頁或是編排順序的話,Linux 上我是用 PDFMod ,Windows 上則是用從疑似從 PDFMod 分支出來的 Junko 。

編輯:我沒用到過,也就是說我到目前為止還沒有這個需求,等以後有遇到再說吧。我第一個會試試看的可能是 Open/Libre Office ,去年有聽說有加入這功能。

 

 

電影流水帳(2012/4/11~2012/5/16)

隔了一個多月沒看電影,主要是為了期中考,利用中午時間唸書,所以就停了好一陣子。
DSC_8986

  • 燃燒吧!歐吉桑(IMDB, Wikipedia)。本來預期會很好看的片,看了之後,覺得故事本身並不是很強,所以整個感覺上就很片段,缺少了連續性。故事是圍繞在一個即將被拆除的眷村-光榮新村,有一個生存遊戲的團隊利用這個眷村練習生存遊戲,結果造成原本還留在村子裡的老榮民困擾。老榮民們很生氣,就決定起來對抗他們。故事裡的第一個衝突點,是李伯跟他的孫子,因為孫子小伍遲遲找不到工作,讓求好心切的李伯用話刺激,刺激的結果就是關係惡化。第二個衝突點,是在村子裡賣麵老闆娘的醫生兒子,與生存遊戲團隊的新隊長周莉雅是情侶,因為以為瞭解彼此,卻發現彼此都有事情瞞著對方。第3個衝突點是生存遊戲團隊原來的隊長駭客被換掉,成為副隊長,而新的隊長周莉雅是空降的ABC。第4個衝突點是村子裡孔伯反對對抗生存團隊,而大部分老伯伯決定起來對抗。在接近結尾的時候,因為生存遊戲中,姜伯差點心肌梗塞而過逝,導致了新的變化。小伍與李伯復合,孔伯跟李伯也復合,隨著周莉雅的解職,莉雅與醫生也解開了誤會,這一方團結起來,決定再跟駭客帶領的生存遊戲團隊比賽一次。這邊蠻突兀的,也很莫名其妙,總之,就比賽了。比賽到了最後,剩下李伯跟駭客比拼,想不到駭客卡彈,就輸了這場比賽。後來,光榮新村拆了,生存遊戲團隊出國比賽,得到很好的名次,然後有人來挑戰這些榮民。
  • Tower Heist(IMDB, Wikipedia),中譯:神偷軍團。原本以為可能不好看的片,看完以後,覺得還不錯,導演對於氣氛跟情結的掌握都很不錯,沒有冷場。Josh 是管理大樓的經理,而Shaw則是大樓的所有者。Shaw因為被控告詐欺,所以財產被查辦、扣押,大樓員工的錢之前有委請Shaw代為管理,結果這下也沒了。看門員因此跑去自殺,Josh很生氣,跑去找Shaw理論,結果被炒了。透過FBI特工的消息,知道Shaw還藏有錢在樓上,於是Josh決定找人一起去偷。人找齊了,也找了家隔壁的Slide來教跟計畫,終於他們選定在感恩節下手,除了Slide背叛跟Charlie回任為大樓經理之外,事情還算順利,他們順利到了樓上,找到也打開了保險櫃,但是裡面是空的。Slide跟Josh吵了起來,不小心的流彈打到了Shaw珍藏的車子,於是他們發現車子是用純金打造的,難怪Shaw貴而重之。計畫改變了,變成偷車子,偷車子的過程裡,因為車子很大,所以很驚險。不過他們還是順利的藏起了車子,幾個成員都分散逃走,但最後還是被趕回來的FBI特務逮到。經過利益的交換,FBI取得Shaw想藏起來的帳冊,成員都被釋放,Josh被判兩年刑期,Shaw罪證確鑿入獄,而車子呢?就在樓頂的游泳池裡,他們把車子解體,分寄給大樓的員工,算是皆大歡喜。

mono xsp and phalanger

修正策略以後,就決定先在 Windows 上安裝 mono。很快地,我安裝好 2.11 ,想不到這卻是卡關的開始,這一版的 xsp 很奇怪,老是會丟出 System.IO.FileNotFoundException ,甚至連正常的 aspx 都無法處理,所以最後就乾脆放棄了。在這段過程裡,稍微參考了以前加 boo 支援的 web.config 。

今天早上就立馬移除了 mono 2.11,改安裝 2.10.8 ,這是比較穩定的一版,為了怕跟昨天一樣卡關,就先試了 aspx,這次就可以了。然後拿之前加 boo 支援的 web.config ,參考 phalanger configuration 來修改。昨天是走馬看花,今天比較仔細看過之後,發現這網頁上提供的設定其實有些問題。我個人是這樣改的:

  1. 首先複製最下面的 local app.config/web.config 一節的設定,先存為 web.config。
  2. 修改 paths ,把裡面都註解掉,只留下 DynamicWrappers 與 Libraries,接著把 “{PATH}\” 移掉,所以 DynamicWrappers 的內容就是 dynamic,Libraries 內容就是 bin 。
  3. 修改 classLibrary ,這邊可以大刀闊斧砍光光,然後參考上面 global machine.config 裡的第3段設定,就加 PhpNetClassLibrary 跟 PhpNetXmlDom 這兩個 assembly 就可以。
  4. 把 global machine.config 裡的第1段設定跟第2段設定加到 web.config 裡,這兩段,都是在 configuration 裡。
  5. 把 global web.config 裡的設定,就是把 httpHandlers 加到 system.web 裡。
  6. 尋找 globalization ,把 value 改為 utf-8。
  7. 大功告成。

接下來,把 phalanger binaries 裡的 .dll 都放到 bin 目錄下,然後建立 dynamic 目錄,就可以開始寫你的 .php 了。

寫好以後,就打開 mono command prompt ,切換到開發目錄下,執行 xsp4 –port 8080 –root . ,以啟動 web server。再打開你的瀏覽器,在網址列輸入 http://localhost:8080/index.php 就可以了。

phalanger 會進行即時編譯,編譯好的 .dll 會放在 dynamic 目錄下。

最後放上我的 web.config:

svn篩選更動的部份並提交

人懶得打字,就要寫個script來輔助篩選…

一般來說都是先用 svn status 看改了些什麼,然後才下 svn commit 提交。可是如果檔案很多,大概就看不完也打不完,下面這個 script 就是先利用 awk 篩掉 ? 的部份,這些是未納入版本控制的檔案,就不顯示,有需要,要記得要先用 svn add 加入。然後篩選完,就順便組出 dialog 指令需要的格式,最後再用 dialog 來顯示出可勾選的對話視窗。

[bash]
#!/bin/bash

FILES=$(svn status | awk ‘$1 !~ /^?/{printf(“%s %s off “, $2, $1);}’)
CMD=”dialog –separate-output –stdout –checklist Modified/Add/Delete 24 80 20 \
$FILES”
SELECTED=$($CMD)

if [ “$SELECTED” == “” ]; then
echo “Select nothing.”
else
echo “svn commit $SELECTED”
fi
[/bash]