在 Python 中使用 REST API 比較 PDF 文件

PDF(便攜式文檔格式)是當今最常用的文件類型之一。通常用於分發只讀文檔,保留頁面佈局。在各種情況下,我們可能需要比較兩個或多個PDF文檔的內容,或者比較同一文檔的多個版本。我們可以輕鬆地以編程方式比較 PDF 文檔,以確定相似點和不同點。在本文中,我們將學習如何在 Python 中使用 REST API 比較 PDF 文件。

本文應涵蓋以下主題:

用於比較 PDF 文件和 Python SDK 的 REST API

為了比較 PDF 文檔,我們將使用 GroupDocs.Comparison Cloud 的 Python SDK API。它允許您比較 支持的格式 的兩個或多個文檔並找出差異。請在控制台中使用以下命令安裝它:

pip install groupdocs_comparison_cloud

在執行上述步驟之前,請從儀表板獲取您的客戶端 ID 和密碼。獲得 ID 和密碼後,添加如下所示的代碼:

# 此代碼示例演示如何設置客戶端 ID 和密碼。
client_id = "659fe7da-715b-4744-a0f7-cf469a392b73"
client_secret = "b377c36cfa28fa69960ebac6b6e36421"

configuration = groupdocs_comparison_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""

在 Python 中使用 REST API 比較兩個 PDF 文件

我們可以按照下面給出的簡單步驟來比較雲端的 PDF 文檔:

  1. 上傳PDF文件到雲端
  2. 比較 PDF 文件
  3. 下載 生成的 PDF 文件

上傳 PDF 文件

首先,我們將使用以下代碼示例將源和目標 PDF 文件上傳到雲端:

# 此代碼示例演示如何將 PDF 文件上傳到雲端。
# 創建 API 實例
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# 上傳示例文件
for filename in glob.iglob("C:\\Files\\*.pdf", recursive=True):
    destFile = filename.replace("C:\\Files\\", "", 1)            
    file_api.upload_file(groupdocs_comparison_cloud.UploadFileRequest(destFile, filename))
    print("Uploaded file: "+ destFile)

因此,上傳的文件將在雲端儀表板的 文件部分 中可用。

使用 Python 比較 PDF 文件

我們可以按照下面給出的步驟以編程方式比較兩個 PDF 文檔:

  • 首先,創建 CompareApi 的實例。
  • 接下來,創建 FileInfo 的一個實例。
  • 然後,設置源 PDF 文件路徑。
  • 之後,創建 FileInfo 的另一個實例。
  • 然後,設置目標 PDF 文件路徑。
  • 接下來,創建 ComparisonOptions 的一個實例。
  • 然後,分配源文件和目標文件。
  • 另外,設置輸出文件路徑。
  • 之後,使用 ComparisonOptions 對象創建 ComparisonsRequest 的實例
  • 最後,通過將 ComparisonsRequest 作為參數調用 CompareApi.comparisons() 方法來獲取結果。

以下代碼示例展示瞭如何在 Python 中使用 REST API 比較兩個 PDF 文件。

# 此代碼示例演示如何比較兩個 PDF 文件。
# 創建 API 實例
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# 輸入源文件
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# 目標文件
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

# 定義比較選項
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"

# 創建比較請求
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# 比較
response = api_instance.comparisons(request)
在 Python 中使用 REST API 比較兩個 PDF 文件

在 Python 中使用 REST API 比較兩個 PDF 文件。

生成的 PDF 文件還在文檔末尾包含一個摘要頁面,如下所示:

摘要頁面。

顯示總刪除或插入元素的摘要頁面。

下載結果文件

上面的代碼示例會將差異保存在雲端新創建的 PDF 文件中。可以使用以下代碼示例下載它:

# 此代碼示例演示如何下載生成的文件。
# 創建 API 實例
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# 創建下載文件請求
request = groupdocs_comparison_cloud.DownloadFileRequest("result.pdf", my_storage)

# 下載文件
response = file_api.download_file(request)

# 將下載的文件移動到您的工作目錄
shutil.move(response, "C:\\Files\\") 

在 Python 中比較多個 PDF 文件

我們可以按照以下步驟比較多個 PDF 文檔:

  • 首先,創建 CompareApi 的實例。
  • 接下來,創建 FileInfo 的實例並設置源 PDF 文件路徑。
  • 然後,創建另一個 FileInfo 實例並設置目標 PDF 文件路徑。
  • 之後,重複上述步驟添加更多的目標文件。
  • 接下來,創建 ComparisonOptions 的一個實例。
  • 然後,分配源/目標文件並設置輸出文件路徑。
  • 之後,使用 ComparisonOptions 對象創建 ComparisonsRequest 的實例
  • 最後,通過以 ComparisonsRequest 作為參數調用 CompareApi.comparisons() 方法來獲取結果。

以下代碼示例展示瞭如何在 Python 中使用 REST API 比較多個 PDF 文件。

# 此代碼示例演示瞭如何比較多個 PDF 文件。
# 創建必要的 API 實例
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# 來源PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# 目標 PDF 1
target1 = groupdocs_comparison_cloud.FileInfo()
target1.file_path = "target.pdf"

# 目標 PDF 2
target2 = groupdocs_comparison_cloud.FileInfo()
target2.file_path = "target2.pdf"

# 定義比較選項
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target1, target2]
options.output_path = "result.pdf"

# 創建比較請求並進行比較
request = groupdocs_comparison_cloud.ComparisonsRequest(options)
response = api_instance.comparisons(request)

在 Python 中自定義比較結果

我們可以按照以下步驟自定義比較過程中發現的變化樣式:

  • 首先,創建 CompareApi 的實例。
  • 接下來,創建 FileInfo 的實例並設置源 PDF 文件路徑。
  • 然後,創建另一個 FileInfo 實例並設置目標 PDF 文件路徑。
  • 接下來,創建設置的實例。
  • 然後,設置比較敏感度和各種屬性來自定義Item的樣式。
  • 接下來,創建 ComparisonOptions 的一個實例。
  • 然後,分配源/目標文件並設置輸出文件路徑。
  • 之後,使用 ComparisonOptions 對象創建 ComparisonsRequest 的實例
  • 最後,通過將 ComparisonsRequest 作為參數調用 CompareApi.comparisons() 方法來獲取結果。

以下代碼示例展示瞭如何在 Python 中使用 REST API 自定義比較結果。

# 此代碼示例演示如何自定義比較結果。
# 創建必要的 API 實例
api_instance = groupdocs_comparison_cloud.比較Api.from_keys(client_id, client_secret)

# 來源PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# 目標PDF
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

settings = groupdocs_comparison_cloud.Settings()

# 比較靈敏度
settings.sensitivity_of_comparison = 100

# 為更改自定義樣式
settings.inserted_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.inserted_items_style.highlight_color = "14297642"
settings.inserted_items_style.font_color = "16711680"
settings.inserted_items_style.underline = True
settings.deleted_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.deleted_items_style.font_color = "14166746"
settings.deleted_items_style.bold = True
settings.changed_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.changed_items_style.font_color = "14320170"
settings.changed_items_style.italic = True

# 定義比較選項
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
options.settings = settings

# 創建比較請求
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# 比較
response = api_instance.comparisons(request)

獲取 Python 中的更改列表

我們可以按照以下給出的步驟獲取在比較 PDF 文件期間發現的所有更改的列表:

  • 首先,創建 CompareApi 的實例。
  • 接下來,創建 FileInfo 的實例並設置源 PDF 文件路徑。
  • 然後,創建另一個 FileInfo 實例並設置目標 PDF 文件路徑。
  • 接下來,創建 ComparisonOptions 的一個實例。
  • 然後,分配源/目標文件並設置輸出文件路徑。
  • 之後,使用 ComparisonOptions 對象創建 PostChangesRequest 實例
  • 最後,通過以 ComparisonsRequest 作為參數調用 CompareApi.post\changes() 方法來獲取結果。

以下代碼示例展示瞭如何在 Python 中使用 REST API 獲取更改列表。

# 此代碼示例演示如何獲取所有更改的列表。
# 創建必要的 API 實例
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# 來源PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# 目標PDF
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

# 定義比較選項
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"

# 創建發布更改請求
request = groupdocs_comparison_cloud.PostChangesRequest(options)
# 發布更改
response = api_instance.post_changes(request)

# 顯示變化
for change in response:
  print("Change # " + str(change.id + 1) + "- Target Text: " + str(change.target_text) + ", Text: " + str(change.text) + ", Type: " + str(change.type));
獲取 Python 中的更改列表

獲取 Python 中的更改列表。

在 Python 中比較和保存密碼和元數據

我們可以按照以下步驟對生成的文件進行密碼保護並將其與元數據一起保存:

  • 首先,創建 CompareApi 的實例。
  • 接下來,創建 FileInfo 的實例並設置源 PDF 文件路徑。
  • 然後,創建另一個 FileInfo 實例並設置目標 PDF 文件路徑。
  • 接下來,創建設置的實例。
  • 然後,創建元數據的實例。
  • 之後,設置各種元數據屬性,如作者、公司、上次\保存\作者等。
  • 然後,設置密碼和密碼\保存\選項。
  • 接下來,創建 ComparisonOptions 的一個實例。
  • 然後,分配源/目標文件並設置輸出文件路徑。
  • 之後,使用 ComparisonOptions 對象創建 ComparisonsRequest 的實例
  • 最後,通過將 ComparisonsRequest 作為參數調用 CompareApi.comparisons() 方法來獲取結果。

以下代碼示例顯示瞭如何使用 Python 中的 REST API 保存帶有密碼和元數據的結果文件。

# 此代碼示例演示如何使用密碼和元數據保存生成的文件。
# 創建必要的 API 實例
api_instance = groupdocs_comparison_cloud.比較Api.from_keys(client_id, client_secret)

# 來源PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# 目標PDF
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

settings = groupdocs_comparison_cloud.Settings()
# 設置元數據
settings.meta_data = groupdocs_comparison_cloud.Metadata()
settings.meta_data.author = "Tom"
settings.meta_data.company = "GroupDocs"
settings.meta_data.last_save_by = "Jack"

#Set password
settings.password_save_option = "User"
settings.password = "password"

# 定義比較選項
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
options.settings = settings

# 創建比較請求
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# 比較
response = api_instance.comparisons(request)

在線試用

請試用以下使用上述 API 開發的免費在線 PDF 比較工具。 https://products.groupdocs.app/comparison/pdf

結論

在本文中,我們學習瞭如何比較雲端的 PDF 文檔。我們還了解瞭如何在 Python 中比較多個 PDF 文件、自定義更改樣式以及獲取更改列表。本文還介紹瞭如何以編程方式將多個 PDF 文件上傳到雲端,然後從雲端下載生成的文件。此外,您可以使用 文檔 了解有關 GroupDocs.Comparison Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看