Pro sürüm
Grafik
Bir bakışta
“Bir bakışta” başlıklı bölümNextPDF Pro; çubuk, çizgi ve pasta grafiklerini doğrudan bir PDF sayfasına vektör içerik operatörleri olarak işler. Hiçbir rasterleştirme adımı ve hiçbir başsız tarayıcı bağımlılığı yoktur; bu nedenle çıktı belirlenimci ve yinelenebilirdir.
Kurulum
“Kurulum” başlıklı bölümcomposer require nextpdf/pro:^3Kavramsal genel bakış
“Kavramsal genel bakış” başlıklı bölümChart modülü, üç yerel grafik işleyici sağlar. Her biri kendi içinde tamamlanmış bir çizim ilkelidir: sağladığınız sabit bir dikdörtgen kutu içinde işler; yeniden akış, kapsayıcı farkındalığı veya yerleşim uzlaşması yoktur. Kutuyu siz konumlandırırsınız; işleyici onu doldurur.
- Çubuk grafik — yapılandırılabilir çubuk rengi, eksen rengi, çubuk aralığı ve etiket yazı tipi boyutuna sahip dikey bir çubuk grafiği.
- Çizgi grafik — seri başına renk, isteğe bağlı veri noktası işaretleyicileri, isteğe bağlı ızgara ve yapılandırılabilir çizgi genişliğine sahip tek veya çok serili bir çizgi grafiği.
- Pasta grafik — otomatik palet ataması, isteğe bağlı yüzde etiketleri ve isteğe bağlı bir gösterge içeren dairesel bir grafik.
Her işleyici aynı biçimi izler: bir fromData(...) fabrikası, akıcı with*() yapılandırması ve PDF içerik akışı operatörleri döndüren bir render(ChartBox $box): string çağrısı. Çıktı belirlenimcidir — aynı girdi ve yapılandırma aynı operatörleri üretir; bu da grafikli belgeleri yinelenebilir ve imzalamaya veya arşivlemeye güvenli kılar.
İşleyiciler görüntü yerine vektör operatörleri yaydığı için grafikler her yakınlaştırma düzeyinde keskin kalır ve belgeye hiçbir raster yük eklemez.
Neden bu şekilde çalışır
“Neden bu şekilde çalışır” başlıklı bölümYük taşıyan karar, bir görüntüyü rasterleştirmek veya başsız bir tarayıcı çalıştırmak yerine yerel PDF vektör operatörleri yaymaktır. Bu seçim çıktıyı belirlenimci kılar: aynı veri ve yapılandırma her zaman bayt bazında özdeş operatörler üretir. Belirlenimci operatörler, grafikli bir belgeyi yinelenebilir ve dolayısıyla imzalamaya veya arşivlemeye güvenli tutar. Harici bir işleyiciden kaçınmak ayrıca bir süreç bağımlılığını da ortadan kaldırır; böylece verimlilik, tarayıcı başlatma maliyeti yerine veri noktalarıyla ölçeklenir. Her işleyici, operatörlerini bir q/Q grafik durumu çiftine sarar ve hiçbir zaman yeniden akış yapmaz; bu nedenle öngörülebilir ve ucuz biçimde bileşimlenir.
Tasarım arka planı: Yüksek hacimli belge üretimi.
API yüzeyi
“API yüzeyi” başlıklı bölümcomposer require nextpdf/pro:^3Chart genel yüzeyi, NextPDF\Pro\Chart içindeki beş sınıftır:
BarChart—fromData(),withBarColor(),withAxisColor(),withBarGap(),withFontSize(),render().LineChart—create(),fromData(),addSeries(),withAxisColor(),withLineWidth(),withFontSize(),withDots(),withGrid(),render().PieChart—fromData(),withColors(),withStrokeColor(),withFontSize(),withPercentages(),withLegend(),render().ChartBox— yerleştirme dikdörtgeni;fromUserSpace(), sol-üst kökenli bir kullanıcı uzayı dikdörtgenini PDF’in sol-alt kökenine dönüştürür; dolgu içininset().ChartColor—rgb(),hex(),palette()ile birlikte kontur/dolgu operatörü yayıcıları.
Kod örneği — Hızlı başlangıç
“Kod örneği — Hızlı başlangıç” başlıklı bölümuse NextPDF\Pro\Chart\BarChart;use NextPDF\Pro\Chart\ChartBox;
$box = ChartBox::fromUserSpace(72, 72, 400, 240, pageHeight: 842);$stream = BarChart::fromData(['Q1', 'Q2', 'Q3', 'Q4'], [100, 200, 150, 300]) ->render($box);// $stream is appended to the target page content.Kod örneği — Üretim
“Kod örneği — Üretim” başlıklı bölümuse NextPDF\Pro\Chart\ChartBox;use NextPDF\Pro\Chart\ChartColor;use NextPDF\Pro\Chart\LineChart;
$box = ChartBox::fromUserSpace(72, 72, 460, 260, pageHeight: 842) ->inset(8, 8, 8, 8);
$stream = LineChart::create(['Jan', 'Feb', 'Mar', 'Apr']) ->addSeries('Revenue', [120, 180, 150, 220], ChartColor::hex('#336699')) ->addSeries('Cost', [80, 90, 110, 130], ChartColor::palette(1)) ->withGrid(true) ->withDots(true, 2.5) ->withLineWidth(1.2) ->render($box);Uç durumlar ve dikkat edilmesi gerekenler
“Uç durumlar ve dikkat edilmesi gerekenler” başlıklı bölüm- Boş veri, hata oluşturmak yerine boş bir dize döndürür; böylece eksik bir veri kümesi sayfayı bozmak yerine hiçbir şey işlemez.
- Toplamı sıfır veya negatif olan bir pasta grafik, boş bir dize döndürür.
- Tek noktalı bir çizgi serisi hiçbir çizgi parçası çizmez (tek bir noktanın yolu yoktur).
- Sıfır boyutlu bir
ChartBox, anlamlı hiçbir şey işlemez; işlemeden önce kutuyu boyutlandırın. - İşleyiciler kutuya kırpma yapmaz; hedeflediğiniz sayfa bölgesine sığan bir kutu sağlayın.
Performans
“Performans” başlıklı bölümİşleme tek geçişlidir ve veri noktası sayısında doğrusaldır. Hiçbir rasterleştirme, hiçbir görüntü arabelleği ve hiçbir harici süreç yoktur. Yayılan operatör dizesinin boyutu bellek maliyetini sınırlar. Çok serili çizgi grafikleri, seriler genelindeki toplam nokta sayısıyla doğrusal olarak ölçeklenir.
Güvenlik notları
“Güvenlik notları” başlıklı bölümGrafik işleyicileri yalnızca sayısal ve etiket verisini tüketir; girdiyi değerlendirmez veya yürütmez. İşleyiciler, etiketleri PDF metin operatörleri olarak yayar ve onları hiçbir zaman yorumlamaz. Modül hiçbir grafik verisini günlüğe kaydetmez; uygulama, grafiklemeden önce hassas etiketleri temizlemelidir.
Uygunluk
“Uygunluk” başlıklı bölümGrafikler harici bir standart tarafından yönetilmez; çıktı, ISO 32000-2 içerik akışı anlam bilimine göre sayfaya işlenen bir PDF içerik akışıdır. Bu modül için hiçbir simgeleme veya kriptografik uygunluk yüzeyi yoktur.
Yayın sınırı
“Yayın sınırı” başlıklı bölümBu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. Dahili ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.