How to Redact Text in C# PDF with IronSecureDoc

This article was translated from English: Does it need improvement?
Translated
View the article in English

本文將探討如何使用 IronSecureDoc 對 PDF 文件中的文字進行遮蔽處理。 這使得服務或流程能透過向正在運行的 IronSecureDoc 伺服器發送包含 PDF 的簡單 POST 請求,快速且輕鬆地遮蔽敏感資訊。 我們將透過 Swagger 文件進行視覺化示範。 POST 請求同時接受必填與選填參數,且具備高度可自訂性; 回傳的 PDF 檔案中,相關文字已遭遮蔽。

拉取並啟動 IronSecureDoc

若您尚未執行 IronSecureDoc,請點擊下方連結進行設定:

本地部署部署至雲端

[POST] 文字遮蔽 API

[POST] Redact Text API 端點可讓您透過遮蔽功能,隱藏 PDF 文件中的敏感文字。 此功能對於處理機密文件(例如法律合約、醫療紀錄或財務報告)的應用程式至關重要。 使用此 API 可確保特定文字被永久移除,從而提升安全性並確保符合資料保護標準。

請注意一旦文字被刪除,內容將無法恢復。

Swagger

Swagger 是一款強大的工具,可讓開發人員透過友善的網頁介面與 RESTful API 進行互動。 無論您使用的是 Python、Java 或其他語言,Swagger 都能提供便捷的方式來測試並實作此 API。

使用 Swagger 進行文字遮蔽的步驟

  1. 存取 Swagger UI:

    若您的 API 伺服器在本地端運行,您可透過在網頁瀏覽器中導航至 http://localhost:8080/swagger/index.html 來存取 Swagger。

    Swagger 文件

  2. 定位 [POST] 文字遮蔽 API:

    在 Swagger UI 中,請找到 POST /v1/document-services/pdfs/redact-text 端點。

    隱藏文字

  3. 指定設定:

    在此範例中,我同時提供了 PDF 檔案以及 POST 請求中需遮蔽的文字。我們將遮蔽"we"一詞,並在其上疊加一個黑色方框。 在此示範中,我們將使用"sample.pdf"檔案並採用以下設定:

    • draw_black_box: true
    • match_whole_word: true
    • words_to_redact: 我們
  4. 上傳範例 PDF:

    請在請求主體中上傳一個您希望進行遮蔽處理的樣本 PDF 檔案。 請確保檔案以 pdf_file 的格式加入。

  5. 執行請求:

    點擊"執行"以執行請求。回應中將包含經過遮蔽處理的 PDF 檔案。 此 Swagger UI 互動功能讓您能輕鬆測試遮蔽處理流程,並提供即時回饋。


透過命令提示字元使用 CURL 請求

此外,我們亦可透過命令提示字元,使用 curl POST 指令來達成相同效果。

curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-text' \
 -H 'accept: */*' \
 -H 'Content-Type: multipart/form-data' \
 -F 'pdf_file=@sample.pdf;type=application/pdf' \
 -F 'words_to_redact="we"' \
 -F 'draw_black_box=true' \
 -F 'match_whole_word=true'
curl -X POST 'http://localhost:8080/v1/document-services/pdfs/redact-text' \
 -H 'accept: */*' \
 -H 'Content-Type: multipart/form-data' \
 -F 'pdf_file=@sample.pdf;type=application/pdf' \
 -F 'words_to_redact="we"' \
 -F 'draw_black_box=true' \
 -F 'match_whole_word=true'
SHELL

請注意
預設情況下,PowerShell 可能會將 curl 解讀為 Invoke-WebRequest 的別名,後者是 PowerShell 的內建 cmdlet。 請嘗試使用 curl.exe 取代 curl

curl.exe --version
curl.exe --version
SHELL

)}]

必填請求主體參數

名稱資料類型描述
pdf_fileapplication/pdf您要處理的 PDF 檔案。
words_to_redactarray[string]此參數接受一組單字清單,並會將與輸入內容相符的文字進行遮蔽。

可選的請求主體參數

名稱資料類型描述
user_passwordstring若輸入的 PDF 檔案設有使用者密碼,則必須提供密碼。若未為受密碼保護的 PDF 提供密碼,操作將失敗。
owner_passwordstring若輸入的 PDF 設有擁有者密碼,則必須提供此密碼。若未為受密碼保護的 PDF 提供密碼,操作將失敗。
specific_pagesarray[int]可讓您指定要在哪些頁面上遮蔽文字。預設值為 null,表示所有頁面中的指定WORD都會被遮蔽。
draw_black_box布林值可讓您指定是否要在遮蔽的文字上方繪製黑色方框。預設情況下,此值設定為 True.
match_whole_word布林值指定是否應將單字內的局部匹配內容一併遮蔽。例如,若提供的單字為"are",任何包含"are"的單字(如"hare")中的"are"也會被遮蔽。預設值為 True.
match_case布林值指定提供的WORD是否需在大小寫方面完全匹配。預設值為 null。注意:若將此設定為 True 表示不會匹配大小寫不同的字串。例如,若提供的單字為"WE",則小寫版本"we"將不會被遮蔽。
overlay_textstring此參數指定覆蓋在遮蔽文字上的文字(例如單字或符號)。預設情況下,此字串為空。
save_as_pdfa布林值將修改後的 PDF 儲存為符合 PDF/A-3 標準的檔案。預設情況下,此設定為 False.
save_as_pdfua布林值將修改後的 PDF 儲存為符合 PDF/UA 標準的檔案。預設設定為 False.

可選的標頭參數

名稱資料類型描述
作者string有助於識別您為 PDF 文件的作者。預設情況下,此欄位為空。
標題string顯示 PDF 文件的標題。預設情況下,此欄位為空。
主題string有助於快速識別 PDF 文件的內容。預設情況下,此欄位為空。

常見問題

如何使用 POST 請求在 PDF 中遮蔽文字?

您可以透過向 IronSecureDoc 伺服器發送 POST 請求,並附上 PDF 檔案及欲遮蔽的文字,來對 PDF 中的文字進行遮蔽。伺服器會處理該請求,並返回一份文字已被遮蔽的 PDF 檔案。

使用 IronSecureDoc API 進行 PDF 遮蔽處理的步驟為何?

若要使用 IronSecureDoc API 進行 PDF 遮蔽處理,您應先拉取並啟動 IronSecureDoc Docker 映像檔,透過 Swagger 測試 API,指定需遮蔽的文字,執行 API 呼叫,最後匯出經過遮蔽處理的 PDF 文件。

如何在正式環境中使用 IronSecureDoc API 之前進行測試?

您可以透過存取 Swagger UI 來測試 IronSecureDoc API,該介面允許您使用提供的端點來模擬資料遮蔽流程。

在 PDF 遮蔽請求中,哪些參數可以自訂?

在 PDF 遮蔽請求中,您可以自訂 user_password、owner_password、specific_pages、draw_black_box、match_whole_word、match_case、overlay_text、save_as_pdfa 及 save_as_pdfua 等參數,以進行進一步的客製化設定。

如何使用 curl 執行 PDF 遮蔽請求?

若要使用 curl 執行 PDF 遮蔽請求,您可以在命令提示字元中使用 curl POST 請求指令,並指定必要的參數和檔案路徑。

若在遮蔽處理過程中,我的 PDF 檔案受到密碼保護,該如何處理?

若您的 PDF 文件設有密碼保護,請務必在可選參數中加入 user_password 或 owner_password,以確保遮蔽處理程序能存取並修改該文件。

在文字遮蔽處理中,'draw_black_box' 參數的用途為何?

'draw_black_box' 參數用於指定是否以黑色方框覆蓋遮蔽的文字。此選項有助於視覺化顯示遮蔽區域,且預設為啟用狀態。

如何在本地端部署 IronSecureDoc 以進行資料遮蔽?

您可以透過遵循針對 Windows、Mac 或 Linux 等各種作業系統提供的教學指南,在本地端部署 IronSecureDoc,從而讓您能在本地伺服器上管理資料遮蔽流程。

是否可以對 PDF 中的特定頁面進行遮蔽處理?

是的,您可以透過 'specific_pages' 參數指定要遮蔽的頁面,藉此針對文件中的特定區域進行遮蔽處理。

我可以在 PDF 的遮蔽區域上疊加文字嗎?

是的,您可以透過使用 'overlay_text' 參數,在遮蔽區域上疊加文字,此功能可讓您將遮蔽的文字替換為自訂訊息或佔位符。

IronSecureDoc 是否相容於 .NET 10 及其客戶端函式庫?

是的,IronSecureDoc 透過 NuGet 套件 IronSoftware.SecureDoc.Client 提供 .NET 客戶端,除了 .NET 6–9 等舊版之外,也相容於 .NET 10。這確保您能將遮蔽功能及相關 API 無縫整合至 .NET 10 應用程式中。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
版本: 2024.10 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎?
執行範例 觀看您的 PDF 被加密。