Documentação do HotXLS

Classe TXLSXChartLayout

TXLSXChartLayout guarda uma disposição manual que preserva os campos, para áreas de plotagem, títulos de gráfico ou de eixo e legendas

Declaração

type
  TXLSXChartLayoutTarget = (xlsxChartLayoutOuter, xlsxChartLayoutInner);
  TXLSXChartLayoutMode = (xlsxChartLayoutFactor, xlsxChartLayoutEdge);

  TXLSXChartLayout = class
    property Enabled: Boolean;
    property HasTarget: Boolean;
    property HasXMode, HasYMode, HasWidthMode, HasHeightMode: Boolean;
    property HasX, HasY, HasWidth, HasHeight: Boolean;
    property Target: TXLSXChartLayoutTarget;
    property XMode, YMode, WidthMode, HeightMode: TXLSXChartLayoutMode;
    property X, Y, Width, Height: Double;
    procedure ClearTarget;
    procedure ClearXMode;
    procedure ClearYMode;
    procedure ClearWidthMode;
    procedure ClearHeightMode;
    procedure ClearX;
    procedure ClearY;
    procedure ClearWidth;
    procedure ClearHeight;
    procedure SetPositionAndSize(AX, AY, AWidth, AHeight: Double);
    procedure Assign(Source: TXLSXChartLayout);
    procedure Clear;
  end;

Modelo de coordenadas

X, Y, Width e Height são normalizados em relação ao retângulo do gráfico. Nos modos Edge, X e Y são coordenadas esquerda/topo, e a largura e a altura de edge são coordenadas direita/fundo; nos modos factor, X e Y deslocam a posição automática, e a largura e a altura de factor são tamanhos relativos ao gráfico
O modelo mantém cada campo e modo de forma independente. As omissões presentes no ficheiro carregado continuam omitidas, e tokens numéricos inválidos sobrevivem a uma gravação sem alterações, enquanto a renderização recai na geometria automática
As disposições de título podem conter apenas X e Y e mantêm o tamanho medido automaticamente. As disposições de área de plotagem e de legenda exigem as quatro coordenadas
SetPositionAndSize atribui os quatro valores, marca os respetivos modos como presentes e ativa a disposição numa única chamada. Os setters individuais de coordenadas também ativam a disposição

Modos e destino

xlsxChartLayoutEdgePosição a partir do limite do gráfico, usada por predefinição para X e Y
xlsxChartLayoutFactorFator de tamanho ou deslocamento, usado por predefinição para largura e altura
TargetRetângulo de plotagem interno ou externo, com significado apenas para PlotAreaLayout

Resolução e conversão

TXLSXChartLayoutResolver resolve os retângulos de título, legenda, área de plotagem interna e externa e títulos de eixo uma única vez para paginação, saída SVG, PDF, imagem, pré-visualização, impressão, viewer e HTML. A geometria inválida ou incompleta mantém o retângulo automático, enquanto um retângulo válido fora dos limites passa para a posição mais próxima dentro do gráfico, sem alterar o tamanho
A conversão ODF mapeia a geometria resolvida para distâncias absolutas do gráfico. Título e legenda usam svg:x e svg:y, enquanto a área de plotagem também usa svg:width e svg:height. Uma legenda ODF manual omite chart:legend-position, porque esse atributo sobrepõe-se às coordenadas absolutas

Exemplo

Chart.PlotAreaLayout.Target := xlsxChartLayoutInner;
Chart.PlotAreaLayout.SetPositionAndSize(0.12, 0.18, 0.72, 0.64);
Chart.TitleLayout.SetPositionAndSize(0.1, 0.02, 0.6, 0.12);
Chart.LegendLayout.SetPositionAndSize(0.2, 0.84, 0.6, 0.1);

Ver também