原生向量圖表

THPDFChart 把資料數列、座標軸、主題、圖例、標籤與無障礙文字組成可重用的圖表模型,再交由 THPDFPage.DrawChart 轉譯

轉譯器直接輸出 PDF 路徑與文字運算子,圖表在任何縮放層級都保持銳利,也不會產生 Image XObject

圖表模型

THPDFChart 擁有自己的 THPDFChartSeries 執行個體與兩個 THPDFChartAxis 物件,每個數列的點儲存以幾何級數成長,讓附加點的均攤成本為常數時間

以 THPDFChartKind 值呼叫 THPDFChart.AddSeries,再透過 THPDFChartSeries.AddPoint 加入有限座標

THPDFChart.ClearSeries 釋放所有擁有的數列,THPDFChartSeries.Clear 則保留數列設定、只移除點

SeriesCount、Series、Count 與 Points 屬性提供對模型的索引讀取

數列與座標軸

折線、長條、面積與散佈數列可以共用同一個笛卡兒座標圖,圓餅圖則必須恰好包含一個 hckPie 數列

THPDFChartAxis.AutomaticMinimum 與 AutomaticMaximum 挑選資料驅動的邊界;停用任一屬性就會啟用對應的 Minimum 或 Maximum 值

TickCount 在轉譯時被限制在 2 到 20 之間,ShowGrid 控制軸格線,NumberFormat 則提供刻度與產生標籤的數字格式

外觀與標籤

THPDFChartTheme 挑選 hctLight、hctDark 或 hctMonochrome 調色盤

THPDFChartLegendPosition 透過 hclNone、hclRight 與 hclBottom 選擇無圖例、右側圖例或底部圖例

每個數列都提供 Name、Kind、Color、LineWidth、ShowMarkers、ShowLabels 與帶標籤的 THPDFChartPoint 資料

把 Color 設成實際的 TColor 可明確指定數列顏色,保留預設值則使用目前的調色盤

無障礙

THPDFChart.BuildAccessibleText 在有明確 AlternativeText 時直接回傳,否則建立有界的標題、數列、標籤、X 與 Y 摘要,點數與位元組各有獨立上限

把結構父節點傳給擴充版 DrawChart 多載,整個圖表就會包進帶 Alt 項目與版面邊界框的標記 Figure

結構父節點通常應是為目前頁面建立的 Document、Sect 或含圖形的版面元素

預算與統計

THPDFChartRenderOptions.Default 允許 64 個數列、每數列 100,000 點、總計 1,000,000 點、512 個可見標籤、無障礙文字中 64 點,以及 8,192 位元組的無障礙文字

無效幾何、非有限座標、混雜的圓餅內容,以及超出數列或點預算,都會在開始繪製前丟出例外

THPDFChartRenderStatistics 回報已轉譯的數列、點、標籤、路徑線段、圖形標記與標籤截斷

驗證與轉譯階段的成本與數列和點數呈線性關係,標籤與無障礙工作也有上界

支援型別

公開介面包含 THPDFChartKind、THPDFChartTheme、THPDFChartLegendPosition、THPDFChartPoint、THPDFChartSeries、THPDFChartAxis、THPDFChart、THPDFChartRenderOptions 與 THPDFChartRenderStatistics

範例

Chart := THPDFChart.Create;
try
  Chart.Title := 'Quarterly revenue';
  Chart.XAxis.Title := 'Quarter';
  Chart.YAxis.Title := 'Revenue';
  Chart.Theme := hctLight;

  SeriesItem := Chart.AddSeries(hckBar, 'North');
  SeriesItem.ShowLabels := True;
  SeriesItem.AddPoint(1, 120, 'Q1');
  SeriesItem.AddPoint(2, 175, 'Q2');
  SeriesItem.AddPoint(3, 164, 'Q3');

  Options := THPDFChartRenderOptions.Default;
  Document.CurrentPage.DrawChart(
    Chart, 48, 72, 500, 320, Options, Statistics
  );
finally
  Chart.Free;
end;

另請參閱: THPDFPage.DrawChart, 向量圖形總覽, 自動 PDF/UA 結構