使用 PHP 精簡簡報中的字型取代

概觀

Aspose.Slides 讓您在整個簡報中將一種字型取代為另一種字型。取代字型後,所有原始字型的實例都會變更為新字型。

要執行字型取代,請載入簡報、定義來源字型與取代字型、呼叫字型取代方法,然後將修改後的簡報儲存為 PPTX 檔案。當您有意在整個簡報中從一個字型系列切換到另一個時,此方法非常有用。

取代字型

如果您改變了使用某個字型的想法,可以將該字型取代為其他字型。舊字型的所有實例都會被新字型取代。

Aspose.Slides 讓您以此方式取代字型:

  1. 載入相關的簡報。
  2. 載入將被取代的字型。
  3. 載入新字型。
  4. 執行字型取代。
  5. 將修改後的簡報寫入為 PPTX 檔案。
  # 載入簡報
  $pres = new Presentation("Fonts.pptx");
  try {
    # 載入將被取代的來源字型
    $sourceFont = new FontData("Arial");
    # 載入新字型
    $destFont = new FontData("Times New Roman");
    # 取代字型
    $pres->getFontsManager()->replaceFont($sourceFont, $destFont);
    # 儲存簡報
    $pres->save("UpdatedFont_out.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

常見問題

「字型取代」、「字型置換」與「回退字型」之間有何差異?

取代是有意在整個文件中從一個系列切換到另一個系列。置換 是「如果字型不可用,使用 X」的規則。回退 在缺少特定字形時,以外科式方式套用於單一缺失的字形,前提是基底字型已安裝但未包含所需字元。

取代會套用到母片投影片、版面配置、備註與評論嗎?

會。取代會影響所有使用原始字型的簡報物件,包括母片投影片與備註;評論亦屬文件的一部分,會由字型引擎考慮。

嵌入的 OLE 物件(例如 Excel)內的字型會變更嗎?

不會。OLE 內容 受其自身應用程式控制。簡報中的取代不會重新格式化 OLE 內部資料;它可能以影像或外部可編輯內容的形式顯示。

我可以只在簡報的部分(依投影片或區域)取代字型嗎?

若在所需的物件/範圍層級變更字型,而非對整個文件執行全域取代,即可實現目標式取代。渲染期間的整體字型選擇邏輯保持不變。

我要如何事先確定簡報使用了哪些字型?

使用簡報的字型管理器:它會提供正在使用的使用中的字型系列清單,以及有關置換/「未知」字型的資訊,協助規劃取代工作。

在轉換為 PDF/映像時,字型取代仍會生效嗎?

會。匯出時,Aspose.Slides 會套用相同的字型選取/置換序列,因此事先執行的取代會在轉換過程中得到遵守。

我需要在系統中安裝目標字型,還是可以附加字型資料夾?

不需要安裝:函式庫允許從使用者資料夾載入外部字型以供渲染與匯出使用。

取代會解決「豆腐字」(方塊)而非字元的問題嗎?

只有在目標字型實際包含所需字形時才會解決。若不包含,請設定回退字型以涵蓋缺失的字元。