深度壓縮
基本壓縮留在瀏覽器裡。此頁面上傳 PDF,並把照片降到大約 150 DPI。文字仍然是文字。
此檔案會被上傳,並在 30 分鐘後刪除。
深度壓縮需要 $6 的日票或 $60 的年票。免費檔案是 PDF 轉 Word,不是本頁。
這次降採樣留下什麼
深度壓縮在伺服器上執行 Ghostscript。argv 為 gs、-sDEVICE=pdfwrite、-dCompatibilityLevel=1.4、-dPDFSETTINGS=/ebook、-dCompressPages=false、-dNOPAUSE、-dQUIET 與 -dBATCH。請求內容不會被寫進這份 argv。/ebook 預設把彩色影像平均到 150 DPI,把灰階影像平均到 150 DPI。重新取樣從目標的 1.5 倍以上開始,所以超過 225 DPI 的彩色或灰階照片會被重新取樣。單色影像用 Subsample 走向 300 DPI。彩色與灰階以 DCTEncode 編碼,也就是 JPEG。單色使用 CCITT。預設把 ColorConversionStrategy 設成 sRGB。-dCompressPages=false 寫在預設之後,因此頁面串流不做 flate 壓縮,可選取的文字仍然可選取。只有文字的 PDF 可能變大。這條命令寫出的檔案以 %PDF-1.4 開頭。下載名稱一律是 compressed.pdf。電腦上的原始檔不會被換掉。壓縮 PDF 留在瀏覽器裡,不呼叫 gs。
PDF 與 compressed.pdf 都進入 MongoDB GridFS,bucket 是 uploads,tool 是 heavy-compress。來源使用 role source,並保留原始檔名;沒有名稱時用 upload.pdf。結果使用 role result,檔名 compressed.pdf,內容類型 application/pdf。Ghostscript 在暫存目錄寫入 input.pdf 與 output.pdf。工作結束或失敗時刪除該目錄,gs 不存在時也刪除。保留作業刪除上傳時間至少達到 RETENTION_MINUTES 的 GridFS 物件。缺少、零或非正值使用 30。deletions 列保存檔案 id、檔名、tool、role、上傳時間與刪除時間,不保存位元組。jobs 列會留下。它記錄 kind heavy-compress、tier pass、頁數、結帳信箱、來源檔 id、結果檔 id、時間.該 jobs 列沒有 status 欄位。
這一頁沒有免費檔案。Ghostscript 執行前需要信箱與一筆有效購買。上限是 20 頁,通行證有效時也一樣,而且在 gs 開始前檢查。日通行證是 $6,只扣一次,持續 24 小時,不會續訂。年費是 $60,持續 365 天。信箱必須對應一筆 status 為 active 的購買,從開始到結束之前。免費的伺服器檔案是 PDF 轉 Word,一份檔案,最多 20 頁,在它自己的頁面上。Ghostscript 在 60 秒後收到 SIGKILL。這個表單只收一份檔案。通行證不會增加批次。
空表單失敗並顯示 "Choose a PDF." 前 1024 個字元裡沒有 %PDF- 的位元組失敗並顯示 "Choose a PDF." 讀不出頁數的檔案失敗並顯示 "Choose a PDF." 沒有頁面時顯示 "This PDF has no pages." 超過 20 頁時顯示 "This tool compresses up to 20 pages." 沒有通行證或通行證未生效時顯示 "Heavy compress needs a $6 day pass or the $60 year. The free file is PDF to Word, not this page." 如果缺少 gs、60 秒計時觸發、gs 以非零結束,或輸出是空的或不含 %PDF-,頁面顯示 "Heavy compress is not available on this server." 這句話在每種語言裡都是英文常數。缺少資料庫時,會在分類位元組之前拒絕上傳。其他頁面的瀏覽器工具不使用該資料庫。
問題
每張照片都會變小嗎?
不會。超過 225 DPI 的彩色與灰階影像會被平均到 150 DPI。已經低於該閾值的圖片可以原樣通過,因為共用的 Ghostscript 設定裡 PassThroughJPEGImages 保持開啟。單色影像向 300 DPI 次取樣。可選取的文字不會被點陣化。頁面串流不壓縮,所以只有文字的 PDF 可能變大。表單上方的短句說明照片大約降到 150 DPI,而且文字仍然是文字。
第一次上傳免費嗎?
不免費。這一頁從來不是免費的伺服器檔案。免費檔案是一次 PDF 轉 Word,最多 20 頁,而且該 PDF 要有可選取的文字。表單在 gs 執行前要求有效通行證的結帳信箱。訪客會看到 "Heavy compress needs a $6 day pass or the $60 year. The free file is PDF to Word, not this page."
刪除之後還留下什麼?
GridFS 在保留時鐘之後刪除 PDF 與 compressed.pdf;除非 RETENTION_MINUTES 是正數,否則是 30 分鐘。deletions 列保留 id 與時間,不保留位元組。jobs 列保留頁數、填入的信箱、檔案 id 與網路雜湊。暫存目錄已經消失。保留作業不刪除 jobs 列。
通行證在這裡改變什麼?
第一份檔案之前需要有效通行證。日通行證是 $6,只扣一次,持續 24 小時,不會續訂。年費是 $60,共 365 天。取消會停止下一次年費扣款。已經支付的年份持續到結束日期,而且不退款。20 頁上限對兩者都還在。通行證不改變 150 DPI 的彩色目標、300 DPI 的單色目標,也不改變單檔表單。