刪除 PDF 檔案中未使用的字體
介紹
嘿!您是否厭倦了臃腫的 PDF 文件,其中充滿了佔用不必要空間的字體?你並不孤單!管理 PDF 中的字體使用可能很麻煩,尤其是當您希望文件乾淨且有效率時。好消息是,使用 Aspose.PDF for .NET,您可以輕鬆地從 PDF 文件中刪除未使用的字體,從而提高效能並減少檔案大小。在本教程中,我們將逐步完成該過程,以便您可以簡化 PDF 文件管理。
先決條件
在我們開始之前,請確保您已進行以下設定以充分利用本教學:
- 已安裝 Visual Studio:您需要一個開發環境來執行 .NET 程式碼。 Visual Studio(任何版本)都是不錯的選擇。
- Aspose.PDF for .NET:請確定您已安裝此程式庫。你可以下載它這裡.
- 對 C# 的基本了解:由於我們將在本範例中使用 C#,因此熟悉語言將會派上用場。
- PDF 檔案:準備好範例 PDF 檔案。您可以建立自己的 PDF 或使用任何現有的 PDF。只要確保它被命名即可
ReplaceTextPage.pdf
並儲存在您的文件目錄中。 - 有效許可證:雖然您可以使用免費試用版,但建議使用有效許可證以獲得完整的功能。如果您需要臨時許可證,您可以獲得它這裡.
導入包
現在我們已經具備了先決條件,讓我們將必要的套件匯入到我們的 C# 專案中。這是您需要的:
Aspose.PDF 命名空間:它提供了處理 PDF 檔案的所有基本功能。
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;
若要匯入這些內容,請將以上行新增至 C# 檔案的頂部。這將授予您存取我們將用來操作 PDF 文件的類別和方法的權限。
第 1 步:設定您的專案環境
首先要事第一!您需要在 Visual Studio 中建立一個新的控制台應用程式。請依照下列步驟操作:
- 打開視覺工作室。
- 點選“檔案”>“新建”>“專案”。
- 選擇控制台應用程式 (.NET Framework) 並為其命名(例如,
PdfFontCleaner
)。 - 按一下“建立”。
現在您有一個新項目可以使用!
第2步:新增Aspose.PDF庫
接下來,您將把 Aspose.PDF 庫加入您的專案中。您可以透過 NuGet 執行此操作:
- 在解決方案資源管理器中,以滑鼠右鍵按一下您的專案。
- 選擇管理 NuGet 套件。
- 搜尋
Aspose.PDF
並安裝它。
第 3 步:載入 PDF 文檔
讓我們載入您要處理的文件。具體做法如下:
//文檔目錄的路徑。
string dataDir = "YOUR DOCUMENT DIRECTORY/"; //將此更新為您的路徑
//載入來源 PDF 文件
Document doc = new Document(dataDir + "ReplaceTextPage.pdf");
代替"YOUR DOCUMENT DIRECTORY/"
與儲存 PDF 檔案的實際路徑。此步驟至關重要,因為它允許 Aspose 存取您的 PDF 文件。
第 4 步:設定文字片段吸收器
接下來,我們將設定一個處理器,幫助我們識別並刪除 PDF 中未使用的字體。這是執行此操作的程式碼:
TextFragmentAbsorber absorber = new TextFragmentAbsorber(new TextEditOptions(TextEditOptions.FontReplace.RemoveUnusedFonts));
doc.Pages.Accept(absorber);
這行程式碼創建了一個TextFragmentAbsorber
配置為刪除未使用的字體的物件。透過致電doc.Pages.Accept(absorber)
,我們告訴 Aspose 瀏覽文件中的所有頁面並識別文字片段。
第 5 步:迭代文字片段並替換字體
識別文字片段後,是時候迭代它們並替換任何未使用的字體了。新增此程式碼:
//遍歷所有 TextFragment
foreach (TextFragment textFragment in absorber.TextFragments)
{
textFragment.TextState.Font = FontRepository.FindFont("Arial, Bold");
}
在此循環中,您將更改每個的字體TextFragment
到“Arial,粗體”。您可以選擇任何適合您需求的字體。這才是真正神奇的地方,因為它確保 PDF 保留乾淨、定義良好的字體。
步驟6:儲存更新後的文檔
現在我們已經進行了必要的更改,讓我們儲存更新的 PDF!新增以下程式碼:
dataDir = dataDir + "RemoveUnusedFonts_out.pdf";
//儲存更新的文檔
doc.Save(dataDir);
Console.WriteLine("\nUnused fonts removed successfully from pdf document.\nFile saved at " + dataDir);
在這裡,我們建立一個新文件,名為RemoveUnusedFonts_out.pdf
在同一目錄中。這將為您提供原始 PDF 的備份,同時仍為您提供簡化版本。
第7步:處理異常
最後,建立錯誤處理始終是一個好主意。這是一個簡單的 try-catch 區塊來包裝您的程式碼:
try
{
// ……(之前的程式碼)
}
catch (Exception ex)
{
Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get 30-day temporary license from https://購買.aspose.com。
}
這將捕獲過程中發生的任何異常並提供用戶友好的錯誤訊息。告知使用者要求非常重要,例如需要有效的 Aspose 許可證。
結論
恭喜!您已成功學習如何使用 Aspose.PDF for .NET 從 PDF 檔案中刪除未使用的字體。透過執行上述步驟,您可以使 PDF 檔案更精簡、更整潔,確保它們更有效率且使用者友好。不要忘記探索 Aspose.PDF 的其他功能,以進一步增強您的文件處理能力!
常見問題解答
我可以使用免費版本的 Aspose.PDF 來完成此任務嗎?
是的,您可以使用免費試用版,但建議使用完整授權以獲得最佳效能。
如果沒有可用的替代字體,字體會怎麼樣?
如果沒有找到替換字體,文字可能無法正確顯示,因此請務必選擇常用字體。
如何獲得臨時許可證?
您可以向以下機構申請臨時許可證這裡.
刪除未使用的字體會影響文件的外觀嗎?
它可以,這取決於刪除哪些字體以及如何替換文字片段;鼓勵測試。
有沒有其他方法可以刪除未使用的字體?
儘管其他程式庫或工具可能提供類似的功能,但 Aspose.PDF for .NET 對於此目的非常有效。