procedure UpdatePageObject(Index: Integer; const Value: TPdfPageObjectInfo; Changes: TPdfPageObjectChanges);
| Index | Integer. Índice de base zero do objeto de página a modificar |
| Value | TPdfPageObjectInfo. Registo que transporta os novos valores de atributos, normalmente obtido de PageObjectInfo e depois editado |
| Changes | TPdfPageObjectChanges. Conjunto de flags TPdfPageObjectChange que seleciona os atributos a escrever: pocMatrix, pocActive, pocFillColor, pocStrokeColor, pocStrokeWidth, pocLineJoin, pocLineCap, pocDashPattern |
Aplica os campos nomeados por Changes ao objeto de página em Index. Um conjunto vazio não faz nada, por isso um chamador pode calcular um conjunto de alterações e chamar incondicionalmente
O conjunto de alterações existe porque um registo TPdfPageObjectInfo transporta sempre todos os atributos, incluindo os que o PDFium não expõe para esse tipo de objeto. Escrevê-los todos de volta empurraria valores sem sentido para o objeto - por exemplo uma cor de traço para uma imagem. Nomear os campos explicitamente mantém a edição tão estreita quanto o chamador pretendia
As alterações de cor tomam o valor alfa do campo correspondente do registo: pocFillColor escreve FillColor juntamente com FillAlpha, e pocStrokeColor escreve StrokeColor com StrokeAlpha. A página de texto em cache é descartada porque uma edição de geometria ou cor pode alterar as posições do texto extraído
var Info: TPdfPageObjectInfo;
Info := Pdf.PageObjectInfo(2);
Info.FillColor := clRed;
Info.FillAlpha := $FF;
Pdf.UpdatePageObject(2, Info, [pocFillColor]);
Pdf.UpdatePage;