October 24, 2008
PDF 是很常見的文件格式,許多產品的手冊都會有 PDF 的版本,使用者可以使用免費的 PDF Viewer 就可以查看或列印。但有些 PDF 檔會限制使用者只能看,不能複製(Copy/Paste)其內容,甚至是不能列印。
PDF Unlocker 是一套免費的工具,可以用來解除以上限制。
yal's blog寫了不錯的介紹及使用方法,請參考其「PDF unlocker:移去 PDF 檔的保護限制(文中包含下載連結)」。
如果您也下載使用了,您或許會發現,有時轉換出來的檔名好像有問題?(因為我遇到問題了
)
以下就來說明一下解法了。
原 PDF Unlocker 作者使用 Ghostscript 這套開放原始碼工具,將 PDF 讀入再匯出另存,以取消 PDF 原本的限制。因為 Ghostscript 本身就可以解讀及產生 PDF 檔,並且提供命令列程式,於是 PDF Unlocker 作者就寫一個批次檔將轉檔參數設定好,讓使用者把檔案丟給它,它就自己產生出解好的 PDF 檔。
PDF Unlocker 1.0.4 批次檔 unlockpdf.cmd 內容如下:
第 9 行的 %1 在執行時,會是您傳給它的檔案路徑全名
第 10 行則是將檔案路徑全名的後 5 個字元去除
第 11 行就是最主要的轉換指令含參數,並且把輸出檔名加上 _noPW.pdf" 字樣
眼尖的您是否發現,那個 " 怎麼只有一個?大部分在使用 " 號時,都會是雙數個,而這也正是問題所在!!
我猜想,原作者假設您所丟入的檔案是長檔名的機率很高,所以,以上的批次檔案中,第 10 行去掉檔案路徑全名的後 5 個字,就是要把整個副檔名含 " 都去除,這樣在第 11 行時,就可以順利在主檔名後作修改,並加上 pdf 的副檔名。不過,如果您丟入的是短檔名,那... 它就誤刪到主檔名了。
舉例來說,在 C:\ 磁碟下,有個 OO XX.pdf 及 ABCD.pdf兩個檔案,其中 OO 與 XX 之間是有一個空白。
若把 C:\OO XX.pdf 這個 pdf 檔丟給 PDF Unlocker,則
%1 = "C:\OO XX.pdf"
為了使它像是一個檔名,而不是兩段文字,前後的 " 是 Windows 幫我們加上去的。
%1 去掉後 5 個字,成為 tt = "C:\OO XX
最後產出時加上 _noPW.pdf" 就成了完整的 "C:\OO XX_noPW.pdf"
因此,像 C:\OO XX.pdf 這類的檔案,在檔名或目錄中包含空白或特殊字元的 pdf 檔案,原本的 PDF Unlocker 就可以正常處理。
若把 C:\ABCD.pdf 這個 pdf 檔丟給 PDF Unlocker,則
%1 = C:\ABCD.pdf
因為檔名短或不含空白,Windows 並不會幫我們加前後加 "
%1 去掉後 5 個字,成為 tt = C:\ABC
最後產出時加上 _noPW.pdf" 就成了 C:\ABC_noPW.pdf"
如此,不但主檔名被吃掉一個字,連 " 號也不對稱了。
說了這樣多,不解的想必還是不解。不過,沒關係,這些並不需要知道(那說怎麼多幹麼?!),來到這兒,只需要學會下載 COPY 就好
以下是修改後的批次檔 unlockpdf.cmd
您只需下載附件: unlockpdf.cmd.zip,把解壓的出來的 unlockpdf.cmd 蓋寫到 PDF Unlocker 的目錄即可。
在 PDF Unlocker 的目錄內您可以找到 History_of_Freeware_PDF_Unlocker.pdf 這份文件,文件中指出,作者在 2003 年時,已完成此工具,在 2004 年時,還找不到免費或商業的軟體可以解開 PDF 的限制,但在 2005 年,有一些商業軟體要價 30~50 美金,其作法卻與 PDF Unlocker 相同,在 2007 年,作者就把 PDF Unlocker 包裝成安裝套件。
附件: unlockpdf.cmd.zip
● 延伸閱讀及相關連結:
※ yal's blog 2008/06/20 「PDF unlocker:移去 PDF 檔的保護限制」
※ Ghostscript 官網
※ PDF Unlocker 1.0.4 下載頁(找不到作者網站呀
)
2010-12-12
更新 PDF Unlocker 下載頁連結,由原本的
http://www.freewarefiles.com/downloads_counter.php?programid=27137 改成
http://freeware-pdf-unlocker.en.softonic.com/
PDF Unlocker 是一套免費的工具,可以用來解除以上限制。
yal's blog寫了不錯的介紹及使用方法,請參考其「PDF unlocker:移去 PDF 檔的保護限制(文中包含下載連結)」。
如果您也下載使用了,您或許會發現,有時轉換出來的檔名好像有問題?(因為我遇到問題了
)以下就來說明一下解法了。
原 PDF Unlocker 作者使用 Ghostscript 這套開放原始碼工具,將 PDF 讀入再匯出另存,以取消 PDF 原本的限制。因為 Ghostscript 本身就可以解讀及產生 PDF 檔,並且提供命令列程式,於是 PDF Unlocker 作者就寫一個批次檔將轉檔參數設定好,讓使用者把檔案丟給它,它就自己產生出解好的 PDF 檔。
PDF Unlocker 1.0.4 批次檔 unlockpdf.cmd 內容如下:
@echo off echo. echo. echo This may take a minute, please wait. echo. echo. echo. echo. set ttt=%1 set tt=%ttt:~0,-5% gswin32c -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sFONTPATH=%windir%/fonts;xfonts;. -sPDFPassword= -dPDFSETTINGS=/prepress -dPassThroughJPEGImages=true -sOutputFile=%tt%_noPW.pdf" %1 'Written by SMTguru其中,
第 9 行的 %1 在執行時,會是您傳給它的檔案路徑全名
第 10 行則是將檔案路徑全名的後 5 個字元去除
第 11 行就是最主要的轉換指令含參數,並且把輸出檔名加上 _noPW.pdf" 字樣
眼尖的您是否發現,那個 " 怎麼只有一個?大部分在使用 " 號時,都會是雙數個,而這也正是問題所在!!
我猜想,原作者假設您所丟入的檔案是長檔名的機率很高,所以,以上的批次檔案中,第 10 行去掉檔案路徑全名的後 5 個字,就是要把整個副檔名含 " 都去除,這樣在第 11 行時,就可以順利在主檔名後作修改,並加上 pdf 的副檔名。不過,如果您丟入的是短檔名,那... 它就誤刪到主檔名了。
舉例來說,在 C:\ 磁碟下,有個 OO XX.pdf 及 ABCD.pdf兩個檔案,其中 OO 與 XX 之間是有一個空白。
若把 C:\OO XX.pdf 這個 pdf 檔丟給 PDF Unlocker,則
%1 = "C:\OO XX.pdf"
為了使它像是一個檔名,而不是兩段文字,前後的 " 是 Windows 幫我們加上去的。
%1 去掉後 5 個字,成為 tt = "C:\OO XX
最後產出時加上 _noPW.pdf" 就成了完整的 "C:\OO XX_noPW.pdf"
因此,像 C:\OO XX.pdf 這類的檔案,在檔名或目錄中包含空白或特殊字元的 pdf 檔案,原本的 PDF Unlocker 就可以正常處理。
若把 C:\ABCD.pdf 這個 pdf 檔丟給 PDF Unlocker,則
%1 = C:\ABCD.pdf
因為檔名短或不含空白,Windows 並不會幫我們加前後加 "
%1 去掉後 5 個字,成為 tt = C:\ABC
最後產出時加上 _noPW.pdf" 就成了 C:\ABC_noPW.pdf"
如此,不但主檔名被吃掉一個字,連 " 號也不對稱了。
說了這樣多,不解的想必還是不解。不過,沒關係,這些並不需要知道(那說怎麼多幹麼?!),來到這兒,只需要學會下載 COPY 就好

以下是修改後的批次檔 unlockpdf.cmd
@echo off echo. echo. echo This may take a minute, please wait. echo. echo 這可能需要一些時間,請稍後... echo 如果轉換成功,DOS 視窗會自動關閉, echo 如果轉換失敗,會顯示錯誤訊息。 echo. rem ========================================================================= rem Modify by dllee (http://blog.yam.com/dllee) 2008-10-24 rem 2008-10-24 BugFixed: old version only support "long file name" rem this version support both short & long file name. rem 2008-10-24 Add: when convert error, paused the DOSBox for checking errors rem 2008-10-24 Add: Chinese BIG5 messages rem ========================================================================= set ttt=%1 set tttt=%ttt:~-4% set t1=%tttt:~0,3% if '%t1%' == 'pdf' goto Lname :Sname set tt="%ttt:~0,-4%_noPW.pdf" goto RUN :Lname set tt=%ttt:~0,-5%_noPW.pdf" :RUN rem gswin32c -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sFONTPATH=%windir%/fonts;xfonts;. -sPDFPassword= -dPDFSETTINGS=/prepress -dPassThroughJPEGImages=true -sOutputFile=%tt%_noPW.pdf" %1 gswin32c -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sFONTPATH=%windir%/fonts;xfonts;. -sPDFPassword= -dPDFSETTINGS=/prepress -dPassThroughJPEGImages=true -sOutputFile=%tt% %1 if errorlevel 1 goto ErrStop goto EXIT :ErrStop pause :EXIT 'Written by SMTguru在修改時,我判斷了檔名是否前後有 " 號?如果有,就如同原方式,去掉後 5 個字,如果沒有,只需要去掉後 4 個字。為了方便,把整個輸出檔名先整理好,並且把 " 號的問題一併解決,最後再叫用 ghostscript 完成轉換。
您只需下載附件: unlockpdf.cmd.zip,把解壓的出來的 unlockpdf.cmd 蓋寫到 PDF Unlocker 的目錄即可。
在 PDF Unlocker 的目錄內您可以找到 History_of_Freeware_PDF_Unlocker.pdf 這份文件,文件中指出,作者在 2003 年時,已完成此工具,在 2004 年時,還找不到免費或商業的軟體可以解開 PDF 的限制,但在 2005 年,有一些商業軟體要價 30~50 美金,其作法卻與 PDF Unlocker 相同,在 2007 年,作者就把 PDF Unlocker 包裝成安裝套件。
附件: unlockpdf.cmd.zip● 延伸閱讀及相關連結:
※ yal's blog 2008/06/20 「PDF unlocker:移去 PDF 檔的保護限制」
※ Ghostscript 官網
※ PDF Unlocker 1.0.4 下載頁(找不到作者網站呀
)2010-12-12
更新 PDF Unlocker 下載頁連結,由原本的
http://www.freewarefiles.com/downloads_counter.php?programid=27137 改成
http://freeware-pdf-unlocker.en.softonic.com/












