原生向量圖表
THPDFChart 把資料數列、座標軸、主題、圖例、標籤與無障礙文字組成可重用的圖表模型,再交由 THPDFPage.DrawChart 轉譯
轉譯器直接輸出 PDF 路徑與文字運算子,圖表在任何縮放層級都保持銳利,也不會產生 Image XObject
圖表模型
THPDFChart 擁有自己的 THPDFChartSeries 執行個體與兩個 THPDFChartAxis 物件,每個數列的點儲存以幾何級數成長,讓附加點的均攤成本為常數時間
以 THPDFChartKind 值呼叫 THPDFChart.AddSeries,再透過 THPDFChartSeries.AddPoint 加入有限座標
THPDFChart.ClearSeries 釋放所有擁有的數列,THPDFChartSeries.Clear 則保留數列設定、只移除點
SeriesCount、Series、Count 與 Points 屬性提供對模型的索引讀取
數列與座標軸
hckLine繪製相連的路徑,可加向量標記與點標籤hckBar在每個數值 X 座標周圍繪製分組長條,並把零納入自動 Y 邊界hckArea把每個數列閉合到可見的零基線,並使用主題感知的混色填色hckPie把單一正值數列繪成各自上色的向量扇形hckScatter在數值座標上繪製獨立的向量標記
折線、長條、面積與散佈數列可以共用同一個笛卡兒座標圖,圓餅圖則必須恰好包含一個 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 結構