İçeriğe geç
getnextpdf.com

Pro sürüm

Legal — Derinlemesine başvuru

  • Sıralı Bates numarası damgalarını, sayfa başına PDF içerik akışı parçaları olarak üretir.
  • Üç genel tür: BatesNumberConfig (değişmez yapılandırma), BatesNumberer (motor), BatesPosition (altı durumlu konum enum’u).
  • Her parça kendi içinde tutarlıdır. Grafik durumu kaydedilir ve geri yüklenir, bu nedenle ekleme mevcut sayfa içeriğini asla bozmaz.
  • Çıktı belirlenimcidir: bir parça; yapılandırmanın, damga metninin ve sayfa boyutunun saf bir fonksiyonudur.
  • Modül hiçbir istisna oluşturmaz. Aralık dışı girdiler, belgelenen geri dönüş kurallarıyla bozulur.

Bu yetenek NextPDF Pro (nextpdf/pro) ile gelir ve Pro katmanı lisans zarfıyla etkinleşir. Bu yetkilendirmeye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve lisans edinin.

Özellik başına lisans bayrağı yoktur. Bu, bir Pro sürümü yeteneğidir.

Terminal window
composer require nextpdf/pro:^3
SembolParametrelerVarsayılan davranışDöndürürŞununla fırlatır veya başarısız olurNotlar
BatesNumberConfig::__constructstring $prefix = '', string $suffix = '', int $startNumber = 1, int $padding = 5, BatesPosition $position = BatesPosition::BottomRight, float $fontSize = 9.0, string $fontFamily = 'Courier', float $opacity = 1.0, bool $useLayer = true, string $layerName = 'Bates Numbers', float $inset = 15.0Değişmez görünüm ve numaralandırma yapılandırmasıBatesNumberConfigOn bir özelliğin tümü public ve readonly’dir.
BatesNumberConfig::formatNumberint $pageIndex (0 tabanlı)prefix + sıfır dolgulu (startNumber + pageIndex) + suffixstringpadding değerinden geniş bir sayı kesilmez.
BatesNumberConfig::getRangeint $pageCountÇalıştırma için ilk ve son biçimlendirilmiş damgalararray{first: string, last: string}pageCount >= 1 varsayar; 0 sayımı, sayfa indeksi -1’i biçimlendirir.
BatesNumberer::__constructBatesNumberConfig $configYapılandırmayı bağlarBatesNumbererSınıf final ve readonly’dir.
BatesNumberer::generateint $pageCount, array $pageSizes, string $prefix = '', int $startFrom = 1Varsayılan görünümle statik hızlı yollist<string>Sonek, konum, yazı tipi, opaklık ve katman varsayılanlarında kalır.
BatesNumberer::generateStreamsint $pageCount, list<array{width: float, height: float}> $pageSizesSayfa başına kendi içinde tutarlı bir parçalist<string>Asla fırlatmaz; eksik bir boyut girdisi A4 dikeye geri dönerParça sayısı pageCount değerine eşittir; fazladan boyut girdileri yok sayılır.
BatesNumberer::buildPageStreamstring $text, float $pageWidth, float $pageHeightBir sayfanın damga parçasını oluştururstringq/Q ile sarılır; damga metni, değişmez dize sözdizimi için kaçışlanır.
BatesNumberer::getConfigBağlı yapılandırmayı döndürürBatesNumberConfig
BatesPositionenum durumları BottomLeft, BottomCenter, BottomRight, TopLeft, TopCenter, TopRightDize destekli konum sözcük dağarcığıDestek değerleri kebab-case’dir (örneğin bottom-right).
BatesPosition::coordinatesfloat $pageWidth, float $pageHeight, float $textWidth, float $inset = 15.0PDF’e özgü uzayda damga taban çizgisi için X/Yarray{x: float, y: float}Başlangıç sol alttadır; üst satırlar taban çizgisini üst kenardan inset kadar yerleştirir.
public function __construct(
public string $prefix = '',
public string $suffix = '',
public int $startNumber = 1,
public int $padding = 5,
public BatesPosition $position = BatesPosition::BottomRight,
public float $fontSize = 9.0,
public string $fontFamily = 'Courier',
public float $opacity = 1.0,
public bool $useLayer = true,
public string $layerName = 'Bates Numbers',
public float $inset = 15.0,
) {}
public static function generate(
int $pageCount,
array $pageSizes,
string $prefix = '',
int $startFrom = 1,
): array
public function generateStreams(int $pageCount, array $pageSizes): array
public function buildPageStream(string $text, float $pageWidth, float $pageHeight): string
public function coordinates(
float $pageWidth,
float $pageHeight,
float $textWidth,
float $inset = 15.0,
): array

BatesNumberConfig::formatNumber, startNumber + pageIndex değerini hesaplar, sayıyı padding basamağa kadar soldan sıfırlarla doldurur ve prefix ile suffix arasına sarar. getRange, bir sayfa sayısı için ilk ve son biçimlendirilmiş damgaları döndürür. Üretimler arasında sürekli numaralandırmayı zincirlemek için kullanın.

Her parça sırasıyla şunlardan oluşur: bir grafik durumu kaydı (q), bir dolgu rengi operatörü, isteğe bağlı bir işaretli içerik başlangıcı, damgayı konumlandıran ve gösteren bir metin bloğu, isteğe bağlı bir işaretli içerik sonu ve bir geri yükleme (Q). Koordinatlar ve yazı tipi boyutu altı ondalık basamakla serileştirilir, bu nedenle özdeş girdiler özdeş baytlar üretir. Damga metni, değişmez dizeye girmeden önce \, ( ve ) karakterlerini kaçışlar.

Metin bloğu, sabit yazı tipi kaynak adı /BatesFont’u seçer. Gömülü sayfanın kaynak sözlüğü, bu adı yapılandırılan fontFamily ile eşleşen bir yazı tipine eşlemelidir ve aile, yazı tipi kayıt defterinde çözümlenmelidir. Parça üretiminin kendisi kayıt defterine asla başvurmaz.

BatesPosition::coordinates, damga taban çizgisini PDF’e özgü uzayda hesaplar; başlangıç sol alttadır. Orta ve sağ yerleştirme, tahmini bir metin genişliğini çıkarır: bayt uzunluğu çarpı 0.6 çarpı yazı tipi boyutu, bir tek aralıklı yaklaşım. Orantılı yazı tipleri ve çok baytlı metin, bu tahmini kaydırır. Sol yerleştirme buna bağlı değildir.

useLayer etkinken (varsayılan), parça, metni BDC ve EMC işaretli içerik operatörleri arasına alır. İşaretli içerik adı /Lyr_<name> biçimindedir; layerName değerinden, sözcük olmayan karakterler alt çizgilerle değiştirilerek türetilir. Bu paranteze alma yalnızca parça düzeyindedir: belgede karşılık gelen isteğe bağlı içerik grubunu kaydetmek — katmanı bir görüntüleyicide açılıp kapatılabilir yapan adım — gömen yazıcıya aittir.

1.0’ın altındaki bir opacity, daha açık bir gri tonlamalı dolgu olarak yayılır. Tamamen opak bir damga siyah olarak işlenir.

Motor, Bates numaralandırmasını tam olarak yapılandırıldığı gibi uygular. Numaralandırılmış bir belgenin mahkemede kabul edilebilir veya hukuken geçerli olduğunu öne sürmez. Numaralandırma şeması, saklama ve delil işleme müşterinin sorumluluğunda kalır; işlemsel yeterlilik için hukuk ve uyumluluk ekiplerinize danışın.

  • generateStreams, bir pageSizes uyumsuzluğunda asla fırlatmaz. Eksik bir girdi A4 dikeye, 595.276 çarpı 841.890 puana geri döner; fazladan girdiler yok sayılır.
  • Parça sayısı her zaman pageCount değerine eşittir.
  • padding değerinden geniş bir sayı kesilmez; damga metni yalnızca büyür.
  • getRange, pageCount >= 1 varsayar. 0 sayımı, sayfa indeksi -1’i, yani startNumber - 1 değerini biçimlendirir.
  • Opaklık, ExtGState saydamlığı değil, gri tonlamalı bir açma işlemidir; damganın altındaki örtüşen içerik harmanlanmaz.
  • \, ( ve ) dışındaki damga baytları kodlanmadan geçer. ASCII olmayan metin için kodlama doğruluğu, bağlı yazı tipine bağlıdır.
  • Bates işaretleri yer paylaşımlı içeriktir. Sayfadaki hiçbir şeyi maskelemez, kaldırmaz veya şifrelemez.
  • Modül hiçbir kriptografik işlem gerçekleştirmez; FIPS modu davranışını değiştirmez.
DavranışBaşvuruDurum
BDC/EMC işaretli içerik operatörleriyle katman paranteze almaISO 32000-2:2020 §8.11.3.2Kısmi — parça paranteze almayı yayar; isteğe bağlı içerik grubu kaydı, gömen yazıcının adımıdır

Bu satırlar, modülün üzerine kurulduğu belirtimi kaydeder, bir sertifikayı değil; NextPDF hiçbir uygunluk sertifikasına sahip değildir. Tablo ayrıca hukuki geçerlilik veya delil yeterliliği beyanı da değildir.

  • Parçalar saf dize değerleridir. Bunları doğrudan bayt karşılaştırmasıyla test edin; hiçbir belge bağlamı gerekmez.
  • buildPageStream public’tir ve izole olarak birim testine uygundur: önceden biçimlendirilmiş metin ve açık sayfa boyutları geçirin.
  • Üretimler arasında sürekli numaralandırma için, startNumber değerini önceki çalıştırmadan tohumlayın ve getRange çıktısını üretim günlüğünüze kaydedin.
  • Katman adları, sözcük karakterlerine göre temizlenir. İşaretli içerik adının inceleme araçlarında okunabilir kalması için ASCII katman adlarını tercih edin.

Bu 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.