Belge meta verilerini ayarlama (başlık, yazar, dil)
Bir bakışta
“Bir bakışta” başlıklı bölümPortable Document Format (PDF) meta veri alanlarını ayarlayın: başlık, yazar, konu, anahtar sözcükler ve oluşturucu. Belge dilini de aynı akış içinde belirleyin. Bu alanlar belge bilgilerini ve belge düzeyindeki meta verileri doldurur. PDF okuyucular bu verileri “Özellikler” panelinde gösterir; arama ve kataloglama araçları da bunları dizine ekleyebilir. Bu tarif examples/16-metadata.php dosyasını izler.
Kurulum
“Kurulum” başlıklı bölümcomposer require nextpdf/core:^3Kavramsal genel bakış
“Kavramsal genel bakış” başlıklı bölümMeta veri, bir belge hakkındaki genel bilgileri ifade eder (ISO 32000-2 §14.3). PDF 2.0 bu bilgileri iki yerde saklar: eski belge bilgi sözlüğünde ve belge düzeyindeki bir Extensible Metadata Platform (XMP) meta veri akışında. PDF 2.0’da, Author dahil çoğu bilgi sözlüğü alanı, XMP lehine açıkça isteğe bağlı ve kullanımdan kaldırılmıştır.
Söz konusu HasMetadata trait’indeki ayarlayıcılar motorun meta veri modelini günceller; yazıcı da bunlara karşılık gelen girdileri üretir. setLanguage(), yardımcı teknolojilerin kullandığı katalog /Lang değerini ayarlar. Profil structural olarak belirlenir; çünkü belge bir treyler /ID ve bir meta veri tarihi taşır. Son geçiş, iki çalıştırmayı karşılaştırmadan önce her ikisini de normalleştirir.
API yüzeyi
“API yüzeyi” başlıklı bölümNextPDF\Core\Concerns\HasMetadata (Document içine karıştırılmıştır):
setTitle(string $title): staticsetAuthor(string $author): staticsetSubject(string $subject): staticsetKeywords(string $keywords): staticsetCreator(string $creator): staticsetLanguage(string $lang): static— Best Current Practice (BCP) 47 etiketi (en,zh-Hant-TW,ja)isTaggedPdfEnabled(): bool— etkin etiketli mod için salt okunur erişimci
Kod örneği — Hızlı başlangıç
“Kod örneği — Hızlı başlangıç” başlıklı bölüm<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$doc = Document::createStandalone();
$doc->setTitle('Quarterly Report Q1 2026');$doc->setAuthor('Reporting Team');$doc->setSubject('Financial summary');$doc->setKeywords('finance, quarterly, report');$doc->setCreator('NextPDF Core');$doc->setLanguage('en');
$doc->addPage();$doc->setFont('helvetica', '', 12);$doc->cell(0, 10, 'See File > Properties for the metadata.', newLine: true);
$doc->save(__DIR__ . '/with-metadata.pdf');echo "Wrote with-metadata.pdf\n";Kod örneği — Üretim
“Kod örneği — Üretim” başlıklı bölümAşağıdaki tam örnek examples/16-metadata.php dosyasını yansıtır ve test düzeneği için NEXTPDF_COOKBOOK_OUTPUT konumuna yazar.
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$metadata = [ 'Title' => 'NextPDF Metadata Example', 'Author' => 'NextPDF Documentation Team', 'Subject' => 'Demonstrating PDF 2.0 document metadata fields', 'Keywords' => 'nextpdf, pdf, metadata, document-properties, php', 'Creator' => 'NextPDF Core v3.0', 'Language' => 'en',];
$doc = Document::createStandalone();$doc->setTitle($metadata['Title']);$doc->setAuthor($metadata['Author']);$doc->setSubject($metadata['Subject']);$doc->setKeywords($metadata['Keywords']);$doc->setCreator($metadata['Creator']);$doc->setLanguage($metadata['Language']);
$doc->addPage();$doc->setFont('helvetica', 'B', 20);$doc->cell(0, 14, 'Document Metadata', newLine: true);$doc->ln(4);
$doc->setFont('helvetica', '', 11);$doc->cell(0, 8, 'The following fields are embedded in this PDF.', newLine: true);$doc->cell(0, 8, 'Open File > Properties in your reader to verify.', newLine: true);$doc->ln(6);
$doc->setFont('helvetica', 'B', 11);$doc->cell(40, 9, 'Field', border: true);$doc->cell(0, 9, 'Value', border: true, newLine: true);foreach ($metadata as $field => $value) { $doc->setFont('helvetica', 'B', 10); $doc->cell(40, 9, $field, border: true); $doc->setFont('helvetica', '', 10); $doc->cell(0, 9, $value, border: true, newLine: true);}
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT');$doc->save($out !== false ? $out : __DIR__ . '/metadata.pdf');
echo "Wrote document with metadata\n";Beklenen çıktı:
Wrote document with metadataUç durumlar ve tuzaklar
“Uç durumlar ve tuzaklar” başlıklı bölüm- PDF 2.0, Info sözlüğü alanlarını kullanımdan kaldırır.
Authorve diğer bilgi sözlüğü girdileri PDF 2.0’da isteğe bağlıdır ve kullanımdan kaldırılmıştır. PDF 2.0 tüketicisi için yetkili meta veri kaynağı XMP akışıdır. NextPDF uyumluluk için her ikisini de üretir; bu nedenle katı bir PDF 2.0 okuyucusunun Info alanlarını göstereceğini varsaymayın. - Dil, BCP-47 biçimindedir.
zh-Hant-TWkullanın;zh_TWya daChinesekullanmayın. Geçersiz bir etiket olduğu gibi saklanır ve yardımcı teknolojiler tarafından göz ardı edilebilir. Motor, etiketi hızlı başarısızlık davranışıyla yalnızca etiketli PDF katı modu etkinleştirildiğinde doğrular. setKeywords()tek bir dize alır. Virgülle ayrılmış terimler geçirin. Motor sizin için bir PHP dizisini ayrıştırmaz.- Etiketli PDF etkileşimi. Etiketli PDF daha sonra etkinleştirildiğinde, önceden yapılan açık bir
setLanguage()çağrısı korunur. Yapısal dil, yalnızca hiçbiri ayarlanmadığında devreye giren bir yedektir. - Tarihler motor tarafından yönetilir. Oluşturma ve değiştirme zaman damgaları motorun saatinden gelir; yeniden üretilebilirlik düzeneği de bunları sabitler. Bu nedenle profil
structuralolur,bitwisedeğil.
Performans
“Performans” başlıklı bölümMeta verilerin ayarlanması sabit zamanlı bir alan atamasıdır ve işleme maliyeti oluşturmaz. 1000 ms / 64 MB bütçesinin oldukça içinde kalır.
Güvenlik notları
“Güvenlik notları” başlıklı bölümMeta veri açık metin olarak saklanır ve kolayca çıkarılabilir. Yayımlamayacağınız sırları, dahili tanımlayıcıları veya kişisel verileri başlık, yazar, konu, anahtar sözcükler ya da oluşturucu alanlarına yerleştirmeyin. Bu alanlar dosyayla birlikte taşınır ve arama araçları tarafından dizine eklenir. Dahili bir şablondan türetilmiş bir belgeyi dağıtmadan önce meta verileri temizleyin.
Uygunluk
“Uygunluk” başlıklı bölüm| İfade | Standart | Madde | reference_id |
|---|---|---|---|
| Meta veri, bir belge hakkındaki genel bilgilerdir. | ISO 32000-2 | §14.3 | |
Info sözlüğündeki Author girdisi PDF 2.0’da isteğe bağlıdır ve kullanımdan kaldırılmıştır. | ISO 32000-2 | §14.3 | |
| Belgeye, belge düzeyinde bir XMP meta veri akışı eklenebilir. | ISO 32000-2 | §14.3 |
NextPDF, alıntılanan maddelerde açıklanan meta veri yapılarını üretir. Genel bir ISO 32000-2 uygunluğu iddiasında bulunmaz.