
將一張高圖像轉換為 A4 PDF 聽起來像是簡單的算術:計算頁面高度並剪切每個固定數量的像素。此方法可以分割一行文本,將總計與其標籤分離,或將圖表圖例與圖表分開。因此,Screenshot PDF 將數學 A4 邊界視為建議,並在附近搜尋視覺上更安靜的切口。
本文記錄了目前版本的 0.0.13 演算法。它解釋了像素分析可以檢測到什麼、不能理解什麼,以及如何在不聲稱像素揭示文件語義的情況下檢查輸出。
對於縱向 A4,高寬比約為 1.4142。如果輸入畫布的寬度為 1,000 像素,則完整的 A4 形狀頁面區域的高度約為 1,414 像素。編輯器使用來源畫布寬度,以便分頁保留捕捉影像的水平解析度。
如果圖像適合一頁,則它仍然是一張圖像。無分割模式也會繞過自動分頁。否則,編輯器會建議在目前起始位置下方一個 A4 高度的邊界。
頁面使用有色背景、表格規則、卡片、深色主題、照片和漸層。有用的邊界可能是淡藍色而不是白色。相反,白行仍然可以包含不應剪切的細文本。螢幕截圖 PDF 測量每個候選行的水平顏色過渡,而不是僅測試亮度。
對於每隔一個水平像素,演算法會將 RGB 值與兩個位置外的像素進行比較。高於閾值的差異會影響行的躍遷能量。密集的文字和詳細的圖像往往會產生更多的過渡;開放式邊緣和簡單的水平帶往往產量較少。

單一異常安靜的行可能是抗鋸齒邊緣或渲染偽影。編輯器將每一行與其直接相鄰的行相加,並建立一個三行垂直平滑視窗。它找到目前頁面大小的搜尋區域中的最小平滑能量,然後接受該最小值的小容差範圍內的行。
搜尋從建議的 A4 邊界向後移動。此首選項盡可能多地使用頁面,同時仍然選擇視覺上更安靜的行。 A4 頁面的最小區塊高度為 15%,可防止搜尋返回靠近頂部的小條帶。
有些圖像從上到下包含密集的細節:照片、地圖、電子表格、程式碼清單或具有全螢幕背景的儀表板。如果沒有合格的低能量行出現在最小區塊高度上方,則演算法使用建議的數學邊界。
這種後備是故意的。不返回任何頁面會更糟,任意向上移動可能會產生數十張幾乎是空白的紙張。預覽會顯示結果,以便使用者可以選擇不同的方向、裁切、邊距、縮放或剖面擷取。
中間切片放置在 A4 形高度的白色畫布上。如果安全邊界向上移動,未使用的下部區域將保持白色。最終的紙張可以使用其實際較短的高度,而不是強制使用不必要的完整空白尾部。
白色填充並不是來源內容遺失的證據。這可以表明演算法選擇了較早的安靜邊界。透過將一頁的最後一個可見行與下一頁的第一個可見行進行比較來驗證連續性。
這些是視覺傾向,不保證類別。具有緊密排列的多行單元格的表格仍然需要手動檢查。
此演算法無法理解簽名屬於聲明、小計屬於項目行或圖表圖例屬於圖表。它不會解析 HTML、閱讀順序、輔助功能角色或法律含義,因為它接收圖像。
檢查附近的每個邊界:
如果語意關係很重要,請圍繞整個單元製作較小的來源擷取或使用原生數位文件。
以 100% 打开 PDF。對於每個轉換,在第一頁記錄最後一個有意義的對象,在下一頁記錄第一個對象。確認沒有文字行、數字、圖示或機器可讀程式碼被分割。由於縮放和抗鋸齒不同,因此在第二個 PDF 檢視器中重複檢查。
對於受控測試,建立三個源帶:段落文字、表格和全出血影像。在記錄的視窗捕獲頁面並縮放。預期的結果不是“永遠不削減”,而是記錄在案的邊界選擇以及當密集帶沒有提供安全間隙時誠實的後備。
像素能量可以減少尷尬的剪輯,但它不能證明文件。自動分頁是一種對視覺訊息進行操作的建議引擎。預覽是用戶決定建議是否保留意義的地方。
最強大的工作流程結合了確定性比率、有界視覺搜尋、透明後備行為和逐頁檢查。這比承諾自動演算法可以僅從像素理解每個網頁更可靠。