procedure UpdatePageObject(Index: Integer; const Value: TPdfPageObjectInfo; Changes: TPdfPageObjectChanges);
| Index | Integer。要修改之頁面物件的以零為基底的索引 |
| Value | TPdfPageObjectInfo。帶有新屬性值的記錄,通常取自 PageObjectInfo 後再加以編輯 |
| Changes | TPdfPageObjectChanges。TPdfPageObjectChange 旗標集合,用於選擇要寫入哪些屬性:pocMatrix、pocActive、pocFillColor、pocStrokeColor、pocStrokeWidth、pocLineJoin、pocLineCap、pocDashPattern |
將 Changes 指名的欄位套用到位於 Index 的頁面物件。空集合是無操作,因此呼叫端可以先計算出變更集再無條件呼叫
之所以需要變更集,是因為 TPdfPageObjectInfo 記錄一律帶有所有屬性,包括 PDFium 未針對該物件型別公開的屬性。若全部回寫,會把無意義的值寫進物件,例如把筆觸色彩寫到影像上。明確指名欄位能讓編輯範圍保持在呼叫端想要的窄度
色彩變更會一併取用記錄中對應欄位的 alpha 值:pocFillColor 會同時寫入 FillColor 與 FillAlpha,pocStrokeColor 則同時寫入 StrokeColor 與 StrokeAlpha。快取的文字頁會被捨棄,因為幾何或色彩編輯可能改變擷取文字的位置
var Info: TPdfPageObjectInfo;
Info := Pdf.PageObjectInfo(2);
Info.FillColor := clRed;
Info.FillAlpha := $FF;
Pdf.UpdatePageObject(2, Info, [pocFillColor]);
Pdf.UpdatePage;