İçeriğe geç

TCPDF uyumluluk API'si başvurusu

Bu nextpdf/compat-legacy paketi tek bir ana sınıf sunar: NextPDF\Compat\Tcpdf\TCPDF. Bu sınıf, TCPDF 6.x genel uygulama programlama arayüzünü (API) yansıtır, ancak çağrıları modern NextPDF motoruyla işler. Paket ayrıca sınırlı bir destek yüzeyi içerir: genel sınıf takma adları için LegacyBootstrap, AdaptationConfig/LegacyDefaults yapılandırma yüzeyi, çıktı, kurulum, renk, birim ve sayfa biçimleri için dahili köprü sınıfları ve uyumluluk istisnaları. Bunu kalıcı bir bağımlılık olarak değil, geçiş yardımcısı olarak kullanın. Eski yöntemlerin tam durumu için yetkili kaynak yöntem kapsamı tablosudur. Bu sayfa yalnızca uygulama kodunun bilinçli olarak bağımlı kalması gereken yüzeyleri belgeler.

Buradan başlayın: Bu pakete yeniyseniz, NextPDF\Compat\Tcpdf\TCPDF sınıfının bir örneğini oluşturun, her zamanki TCPDF çağrılarınızı yapın (AddPage(), SetFont(), Cell()) ve Output($name, $dest) ile bitirin. Bu sınıf, aşağıda belgelenen yüzeylerin neredeyse tamamı için giriş noktasıdır. Çalıştırılabilir başlangıç noktaları için bkz. Yaygın görevler.

Bunlar, paketle en sık yapacağınız işlemlerdir. Her blok, adaptör kaynak koduna göre doğrulanmıştır ve olduğu gibi çalışır.

Tanıdık TCPDF çağrılarıyla bir PDF dosyası üretin, ardından çıktıyı bir kuyruk, bir HTTP yanıtı veya depolama için dize olarak yakalayın:

<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use NextPDF\Compat\Tcpdf\TCPDF;
$pdf = new TCPDF('P', 'mm', 'A4');
$pdf->SetTitle('Invoice 1234');
$pdf->SetFont('helvetica', '', 12);
$pdf->AddPage();
$pdf->Cell(0, 10, 'Hello from the NextPDF engine', 1, 1, 'C');
$bytes = $pdf->Output('invoice.pdf', 'S');

Ne yapar: TCPDF tarzı adaptör aracılığıyla bir PDF 2.0 belgesi oluşturur. Ham baytları (%PDF...) döndürür, çünkü 'S' hedefi çıktıyı yazdırmak yerine OutputBridge üzerinden Document::getPdfData() çağrısına yönlendirir; bu nedenle bir işçi süreci veya denetleyici içinde güvenlidir.

Mevcut new \TCPDF(...) kodunu kaynak kodunu değiştirmeden çalıştırmak için, genel takma adları başlangıçta bir kez kaydedin:

<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use NextPDF\Compat\Tcpdf\LegacyBootstrap;
LegacyBootstrap::enableAliases();
$pdf = new \TCPDF('P', 'mm', 'A4'); // resolves to the adapter
$pdf->AddPage();
$pdf->Cell(0, 10, 'Legacy call site, modern engine');
$pdf->Output(__DIR__ . '/legacy.pdf', 'F');

Ne yapar: enableAliases(), yalnızca bu adlar henüz tanımlı değilse \TCPDF sınıfını (ve \TCPDF_STATIC/\TCPDF_FONTS/\TCPDF_COLORS/\TCPDF_IMAGES yardımcılarını) bir kez kaydeder. Böylece değiştirilmemiş eski kod adaptör üzerinde çalışır.

Adaptörün normalde sessizce yok sayacağı her TCPDF parametresini görünür kılarak geçişi denetleyin:

<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use NextPDF\Compat\Tcpdf\Exception\TcpdfNotImplementedException;
use NextPDF\Compat\Tcpdf\TCPDF;
$pdf = new TCPDF();
$pdf->setStrictMode(true);
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
try {
$pdf->Image('photo.jpg', 10, 10, 50, 0, '', '', '', true, 300);
} catch (TcpdfNotImplementedException $e) {
fwrite(STDERR, $e->getMessage() . "\n"); // names every ignored parameter
}

Ne yapar: setStrictMode(true) etkinken, TCPDF davranışı yeniden üretilemiyorsa çağrı TcpdfNotImplementedException fırlatır ve yok sayılan her parametreyi adlandırır. Bu, sessiz bozulmayı bir geçiş iş listesine dönüştürür. Bunu yalnızca denetim geçişi sırasında çalıştırın, asla üretimde çalıştırmayın.

Bu tablo, kanonik adaptör yüzeyidir. Örneğini oluşturduğunuz sınıfı (TCPDF), katı kip ve kaçış yöntemlerini ve uyguladığı sözleşmeyi bulmak için bunu kullanın.

SembolParametrelerVarsayılan davranışDöndürürFırlatılan hata veya başarısızlık nedeniNotlar
NextPDF\Compat\Tcpdf\TCPDFYapıcı parametreleri, ConstructorBridge aracılığıyla eski TCPDF biçimini izler.Arkasında bir NextPDF belgesi bulunan adaptör oluşturur.TCPDFYapıcı doğrulaması veya desteklenmeyen özellik istisnaları.Geçiş sırasında kullanın, yeni yerel NextPDF kodu için değil.
TCPDF::getDocument()Yok.Temeldeki NextPDF belgesini döndürür.NextPDF\Core\DocumentBeklenmez.Eski ve yerel çağrıları karıştırması gereken geçiş kodu için kaçış yolu olarak kullanın.
TCPDF::getUnitConverter()Yok.Eski birimden oluşturulan dönüştürücüyü döndürür.UnitConverterBeklenmez.Normal uygulama kodu için değil, geçiş tanılaması için kullanın.
TCPDF::setStrictMode(bool $enabled)Katı kip bayrağı.Desteklenmeyen uyumluluk davranışında açıkça başarısız olmayı etkinleştirir veya devre dışı bırakır.staticBeklenmez.Geçiş denetimleri sırasında etkin tutun.
TCPDF::isStrictMode()Yok.Geçerli katı kip bayrağını döndürür.boolBeklenmez.Test doğrulamalarında yararlıdır.
TCPDF eski yöntemleriYönteme göre değişir.Desteklenen yöntemler çekirdek belge çağrılarına eşlenir; desteklenmeyen yöntemler açıkça başarısız olur.Yönteme göre değişir.TcpdfNotImplementedException veya UnsupportedFeatureException.Bir yönteme güvenmeden önce yöntem kapsamını denetleyin.
CompatAdapterInterface::getDocument()Yok.Bu sözleşme yöntemi TCPDF tarafından uygulanır.DocumentBeklenmez.Araçların yerel belgeye erişmesine olanak tanır.
CompatAdapterInterface::Output(string $name = '', string $dest = '')Dosya adı ve eski hedef.Çıktı köprüsüne devreder.stringÇekirdek yazma veya desteklenmeyen hedef hataları.Eski TCPDF çıktısını yansıtır; somut TCPDF::Output, 'doc.pdf'/'I' varsayılanlarını sağlar.

Bu tablo, adaptörün kapsadığı TCPDF yöntem ailelerini eşler. Eski bir çağrının tam durumunu yöntem kapsamında denetlemeden önce, onu bulmak için bu tabloyu tarayın.

GrupTemsili sembollerVarsayılan davranışNotlar
Yaşam döngüsü ve çıktıOpen(), Close(), Output(), getPDFData()Yerel belge üzerinde TCPDF biçimli belge yaşam döngüsünü sürdürür.Geçişten sonra yerel çıktı API’lerini tercih edin.
Üst veriSetTitle(), SetAuthor(), SetSubject(), SetKeywords(), SetCreator()Üst veri ayarlayıcılarını temeldeki belgeye eşler.Üst veri normalleştirmesini uygulama kodunda tutun.
Sayfalar ve konumlandırmaAddPage(), setPage(), lastPage(), GetX(), SetXY()Eski birimleri ve koordinatları yerel sayfa işlemlerine dönüştürür.Geçişten sonra mutlak konumlandırmayı görsel olarak doğrulayın.
Kenar boşlukları ve yerleşimSetMargins(), SetAutoPageBreak(), setCellPaddings(), getMargins()Uyumluluk durumunu saklar ve desteklenen değerleri eşler.Karmaşık TCPDF sayfa sonu davranışı, elle inceleme gerektirebilir.
Yazı tipleri ve metinSetFont(), AddFont(), Cell(), MultiCell(), Write(), Text()Yaygın metin işlemlerini yerel yazı tipi ve metin API’lerine yönlendirir.CJK ve kodlama davranışını üretim yazı tipleriyle denetleyin.
HTMLwriteHTML(), writeHTMLCell(), fixHTMLCode()Desteklenen HTML’yi yerel HTML iş hattına aktarır.Yerel işleyici, tam bir TCPDF HTML kopyası değildir.
Görüntüler ve çizimImage(), Line(), Rect(), Circle(), SetDrawColor()Desteklenen grafik işlemlerini adaptör bileşenleri aracılığıyla eşler.Desteklenmeyen vektör veya özel biçimler açıkça başarısız olur.
Gezinme ve açıklamalarBookmark(), AddLink(), SetLink(), Annotation()Eşleme bulunan durumlarda yaygın gezinme çağrılarını korur.Oluşturulan ana hatları ve bağlantıları doğrulayın.
Güvenlik ve imzalarSetProtection(), setSignature(), setTimeStamp(), setUserRights()Desteklenen eski güvenlik çağrılarını yerel özelliklere köprüler.Kriptografik çıktıyı ayrı bir doğrulama geçidi olarak değerlendirin.
Formlar, şablonlar, dönüşümlerTextField(), startTemplate(), StartTransform(), Rotate(), Scale()Desteklenen alt kümeleri uygular ve desteklenmeyen davranışta açıkça başarısız olur.Dağıtımdan önce her çağrıyı yöntem kapsamıyla karşılaştırarak denetleyin.

Adaptörü uygulamanın başlangıç akışına bağladığınızda, genel takma adları kaydettiğinizde veya eski sabitler ile modern AdaptationConfig arasında seçim yaptığınızda bu tabloyu kullanın.

SembolParametrelerVarsayılan davranışDöndürürFırlatılan hata veya başarısızlık nedeniNotlar
LegacyBootstrap::enableAliases()Yok.Uyumluluk takma adlarını bir kez kaydeder.voidOtomatik yükleme veya ortam hataları.Yalnızca eski kod TCPDF adlarının genel kapsamda var olmasını beklediğinde kullanın.
LegacyBootstrap::isRegistered()Yok.Takma adların kaydedilip kaydedilmediğini bildirir.boolBeklenmez.Bootstrap testlerinde yararlıdır.
LegacyBootstrap::resetForTesting()Yok.Testler için kayıt durumunu temizler.voidBeklenmez.Yalnızca test amaçlıdır.
AdaptationConfigAdaptör bayrakları ve geçiş denetimleri.Atlanırsa paket varsayılanlarını kullanır.AdaptationConfigGeçersiz seçenek değerleri.Geçiş denetimleri sırasında yapılandırmayı açıkça belirtin.
AdaptationConfig::fromLegacyConstants()Yok.Bilinen eski sabitleri okur ve bir yapılandırma nesnesi oluşturur.AdaptationConfigGeçersiz eski sabit değerleri.Büyük ölçekli eski uygulamalar için geçiş yardımcısı.
LegacyDefaultsYok.Eski varsayılan değerleri sağlar.Varsayılan değerler.Beklenmez.Uyumluluk varsayılanları için merkezi yer.

Bu dahili dönüştürme sınıfları adaptörün temelini oluşturur. Adaptör kapsamına katkıda bulunduğunuzda veya eski bir bağımsız değişkenin nasıl çevrildiğini tanıladığınızda bu tabloyu kullanın. Günlük uygulama kodu için genel adaptör yüzeyini tercih edin.

SembolParametrelerVarsayılan davranışDöndürürFırlatılan hata veya başarısızlık nedeniNotlar
ConstructorBridgeEski yapıcı bağımsız değişken listesi.Eski seçenekleri NextPDF yapılandırmasına normalleştirir.Yapıcı verileri.Geçersiz eski bağımsız değişken değerleri.Adaptör tarafından dahili olarak kullanılır.
CellParameterAdapterTCPDF hücre parametreleri.Eski konumsal bağımsız değişkenleri çekirdek metin yerleşimi seçeneklerine eşler.Uyarlanmış parametreler.Geçersiz boyutlar veya hizalama.Yeni kodda yerel çekirdek yöntemlerini tercih edin.
OutputBridge::dispatch(Document $document, string $filename, string $dest)Yerel belge, dosya adı ve eski hedef.inline/download/kaydetme davranışını NextPDF çıktı API’lerine eşler.stringÇekirdek yazma hataları; desteklenmeyen hedef.Çıktıdan önce dosya adlarını ve depolama köklerini doğrulayın.
OutputBridge::resolveDestination(string $dest)Eski hedef kodu.Hedefi yerel bir çıktı hedefine dönüştürür.OutputDestinationDesteklenmeyen hedef hataları.Hedef eşlemesini merkezi tutar.
ColorTranslatorTCPDF renk bağımsız değişkenleri.Eski renk biçimlerini normalleştirir.Çekirdek renk değeri.Geçersiz renk değerleri.Renk ve çizim bileşenleri tarafından kullanılır.
PageFormatResolverEski sayfa biçimi girdisi.Bilinen adları çekirdek sayfa boyutlarına eşler.Sayfa biçimi değeri.Bilinmeyen biçim.Geçişten sonra yerel sayfa boyutlarını açıkça kullanın.
UnitConverterEski ölçüm değerleri ve birimleri.Çekirdek birimlerine dönüştürür.Sayısal değer.Geçersiz birim.Eski yerleşim davranışını korumaya yardımcı olur.

Bir geçiş çağrısı açıkça başarısız olduğunda bu tabloyu kullanın. “Uygulanmadı” ile “bilinen ancak desteklenmeyen” başarısızlıklarını ayırır ve kurtarma yolunu gösterir.

SembolAnlamıKurtarma
TcpdfNotImplementedExceptionAdaptör, istenen eski yöntemi bilinçli olarak uygulamaz.Çağrıyı yerel NextPDF API’siyle değiştirin veya bağımlılığı kaldırın.
TcpdfNotImplementedException::forSilentIgnore()Eski bir çağrı daha önce yok sayılırdı, ancak geçiş netliği için açığa çıkarılır.Açık işlemsiz davranışın kabul edilebilir olup olmadığına karar verin.
TcpdfNotImplementedException::forUnimplemented()Eski bir çağrı için uygulanmış adaptör yolu yoktur.Çağrıyı değiştirin veya geçiş kodunun arkasında yalıtılmış tutun.
UnsupportedFeatureExceptionEski özellik bilinir, ancak adaptör sınırları içinde desteklenmez.Geçiş kılavuzunu denetleyin ve özelliği bir uygulama adaptörünün arkasında yalıtılmış tutun.
UnsupportedFeatureException::forMethod()Yönteme özgü desteklenmeyen özellik hatası oluşturur.Tutarlı başarısızlık iletilerini korumak için uyumluluk katkılarında kullanın.
  • Adaptörü bir geçiş aracı olarak ele alın. Yeni kod, doğrudan çekirdek NextPDF API’lerini hedeflemelidir.
  • Desteklenmeyen davranış açıkça başarısız olmalıdır. Uygulama bu riski açıkça kabul etmediği sürece, uyumluluk istisnalarını yakalayıp kısmi bir belgeyle devam etmeyin.
  • Geçiş değişikliklerini küçük tutun ve her eski yöntemi kapsam tablosuyla doğrulayın.