首頁 > 後端開發 > C++ > 如何有效合併多個 PDF,同時刪除多餘的空白?

如何有效合併多個 PDF,同時刪除多餘的空白?

Barbara Streisand
發布: 2024-12-28 19:52:11
原創
430 人瀏覽過

How to Efficiently Merge Multiple PDFs While Removing Excess Whitespace?

如何刪除合併時的空白

合併PDF 文件時,經常需要刪除頁面之間的垂直或水平空白以建立無縫文件.這個問題討論了一個場景,其中三個單獨的 PDF 文件被合併,但每個文件即使只包含少量內容也被視為一個完整頁面,從而導致大量空白。目標是消除此空白,同時保留每個文件的內容。

解決方案:PdfVeryDenseMergeTool

要實現所需的結果,需要使用名為 PdfVeryDenseMergeTool 的自訂工具介紹。該工具旨在將多個頁面的內容密集地合併到單一頁面上,即使它們不完全適合。工具的操作方式如下:

  1. 垂直分析:工具垂直分析每個頁面,以識別包含內容的部分以及其上方或下方的任何空白空間。
  2. 分割頁:如果頁面無法完全適合目標頁面,工具會智慧地沿著不適合目標頁面的水平線分割頁面。與任何內容相交。
  3. 重新組裝頁面:將多個頁面的分割​​部分重新組合到單一目標頁面上,從而在優化內容放置的同時最大限度地減少空白量。

與PdfDenseMergeTool 的比較

PdfVeryDenseMergeTool 與原始問題中提到的PdfVeryDenseMergeTool 透過以下方式提供了增強功能:

水平分割頁面以實現更密集的合併。
  • 優先考慮內容放置而不是嘗試將所有內容壓縮到一個單一的內容中頁面,從而產生更具可讀性和可用性的合併文件。
  • 處理頁面旋轉或具有複雜內容的情況。
程式碼範例

這裡是如何使用的簡化範例

PdfVeryDenseMergeTool

中Java:PdfVeryDenseMergeTool 中Java:

PdfVeryDenseMergeTool
PdfVeryDenseMergeTool tool = new PdfVeryDenseMergeTool(PageSize.A4, 18, 18, 10);
List<byte[]> files = ... // Load the three PDF byte arrays here

try (MemoryStream ms = new MemoryStream()) {
  List<PdfReader> readers = new List<PdfReader>();
  foreach (byte[] ba in files) {
    readers.Add(new PdfReader(ba));
  }

  tool.Merge(ms, readers);

  // Save the final merged document using ms.GetBuffer()
}
登入後複製
中Java:

注意:

將此工具轉換為C#並將其與 iTextSharp 整合應該很簡單。

透過使用 PdfVeryDenseMergeTool

,您可以有效地合併多個 PDF 文檔,同時消除不必要的空白並保持內容的完整性。這會產生無縫且優化的合併文檔,更易於閱讀和導航。

以上是如何有效合併多個 PDF,同時刪除多餘的空白?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板