Görüntüleyici tercihlerini ve görüntüleme modunu ayarlama
Bir bakışta
“Bir bakışta” başlıklı bölümBu tarif, uyumlu bir Portable Document Format (PDF) okuyucusunda belgeniz açıldığında nasıl görüntüleneceğini denetler. Başlangıç yakınlaştırma düzeyini, sayfa yerleşimini, okuyucu denetimlerini, pencere boyutunu ve başlık çubuğu metnini ayarlayabilirsiniz. Başlık çubuğu belge başlığını veya dosya adını gösterebilir. Bu tarif, examples/24-viewer-preferences.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ümGörüntüleyici tercihleri belge kataloğunda yer alır. Bunlar okuyucuya yönelik ipuçlarıdır; garanti değildir. Üç ana bayrağı şu şekilde kullanın: DisplayDocTitle başlık çubuğu metnini denetler (ISO 32000-2 §12.2). HideToolbar okuyucudan araç çubuğunu gizlemesini ister. FitWindow okuyucudan penceresini ilk sayfaya sığacak şekilde yeniden boyutlandırmasını ister. setDisplayMode() başlangıç yakınlaştırma düzeyini sayfa yerleşimiyle eşleştirir.
Profil structural olur; çünkü belge bir trailer /ID değeri taşır. Son işlem adımı, iki çalıştırmayı karşılaştırmadan önce bu değeri normalleştirir.
API yüzeyi
“API yüzeyi” başlıklı bölümNextPDF\Core\Concerns\HasViewerPreferences (Document içine eklenir):
setViewerPreferences(array $prefs): static—HideToolbar,HideMenubar,HideWindowUI,FitWindow,CenterWindow,DisplayDocTitle(bool) gibi bayrak anahtarları; ayrıcaDirection,PrintScaling,Duplex(string),NumCopies(int).setDisplayMode(string $zoom = 'default', string $layout = 'SinglePage'): static—$zoom∈default | fullpage | fullwidth | real | <numeric>;$layout∈SinglePage | OneColumn | TwoColumnLeft | TwoColumnRight | TwoPageLeft | TwoPageRight.
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('Presentation Deck');
$doc->setDisplayMode('fullwidth', 'TwoColumnLeft');$doc->setViewerPreferences([ 'HideToolbar' => true, 'FitWindow' => true, 'DisplayDocTitle' => true,]);
$doc->addPage();$doc->setFont('helvetica', '', 12);$doc->cell(0, 10, 'Opens full-width, two columns, title bar shows the title.', newLine: true);
$doc->save(__DIR__ . '/viewer-prefs.pdf');echo "Wrote viewer-prefs.pdf\n";Kod örneği — üretim
“Kod örneği — üretim” başlıklı bölümAşağıdaki tam örnek examples/24-viewer-preferences.php dosyasını yansıtır. İki sütunlu yerleşimi görebilmeniz için çok sayfalı bir belge oluşturur ve test düzeneği için çıktıyı NEXTPDF_COOKBOOK_OUTPUT konumuna kaydeder.
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$doc = Document::createStandalone();$doc->setTitle('Viewer Preferences Demo');$doc->setAuthor('NextPDF Example');
$doc->setDisplayMode('fullwidth', 'TwoColumnLeft');$doc->setViewerPreferences([ 'HideToolbar' => true, 'HideMenubar' => true, 'FitWindow' => true, 'CenterWindow' => true, 'DisplayDocTitle' => true,]);
for ($page = 1; $page <= 3; $page++) { $doc->addPage(); $doc->setFont('helvetica', 'B', 18); $doc->cell(0, 12, "Page {$page}", newLine: true); $doc->setFont('helvetica', '', 11); $doc->multiCell(0, 7, 'With TwoColumnLeft layout a conforming reader ' . 'shows pages side by side. Toolbar and menu bar are hidden, the ' . 'window fits the first page and is centred, and the title bar ' . 'shows the document title rather than the filename.');}
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT');$doc->save($out !== false ? $out : __DIR__ . '/viewer-preferences.pdf');
echo "Wrote document with viewer preferences\n";Beklenen çıktı:
Wrote document with viewer preferencesSınır durumları ve dikkat edilecek noktalar
“Sınır durumları ve dikkat edilecek noktalar” başlıklı bölüm- Tercihler tavsiye niteliğindedir. ISO 32000-2 görüntüleyici tercihlerini ipucu olarak tanımlar. Okuyucular bunların herhangi birini yok sayabilir. Özellikle tarayıcılar bunların çok azını uygular. Güvenlik veya kiosk garantisi sağlamak için asla
HideToolbar/HideMenubarbayrağına güvenmeyin. DisplayDocTitlebir başlık gerektirir. YalnızcasetTitle()boş olmayan bir başlık ayarladığında davranışı değiştirir. Başlık olmadığında okuyucu yine de dosya adını gösterir.- Yerleşim dizeleri tam olmalıdır.
setDisplayMode()spesifikasyonda geçen yazımları bekler; örneğinTwoColumnLeft,two-column-leftdeğil. Bilinmeyen bir yerleşim verildiğinde okuyucu varsayılanına geri döner. - Sayısal yakınlaştırma bir dizedir. %150 için
'150'değerini iletin, tamsayı150değil. - Tek sayfa ve çift sayfa karşılaştırması.
TwoPageLeft/TwoPageRightPDF 1.5+ okuyucuları gerektirir. Eski görüntüleyiciler tek sütunlu bir yerleşime geri döner.
Performans
“Performans” başlıklı bölümGörüntüleyici tercihlerini ayarlamak sabit zamanlı bir katalog yapılandırmasıdır ve işleme maliyeti oluşturmaz. 1000 ms / 64 MB bütçesinin çok altında kalır.
Güvenlik notları
“Güvenlik notları” başlıklı bölümAraç çubuğunu veya menü çubuğunu gizlemek yalnızca görsel bir değişikliktir. Kullanıcının yapabileceklerini kısıtlamaz. Her okuyucu klavye kısayollarını ve sağ tıklama eylemlerini korur; birçoğu bayrakları tamamen yok sayar. Görüntüleyici tercihlerini kaydetmeyi, yazdırmayı veya kopyalamayı sınırlayan bir denetim olarak görmeyin. Bu istekler izin bitleriyle yönetilir ve okuyucular bunları da yalnızca isteğe bağlı olarak uygular. Bkz. İzinlerle şifreleme.
Uyumluluk
“Uyumluluk” başlıklı bölüm| İfade | Spesifikasyon | Madde | reference_id |
|---|---|---|---|
DisplayDocTitle pencere başlık çubuğunun belge başlığını gösterip göstermeyeceğini denetler. | ISO 32000-2 | §12.2 | |
HideToolbar etkileşimli araç çubuğunun gizlenmesini ister. | ISO 32000-2 | §12.2 | |
FitWindow pencerenin ilk sayfaya göre yeniden boyutlandırılmasını ister. | ISO 32000-2 | §12.2 |
Bu tercihler tavsiye niteliğindedir. Atıfta bulunulan maddeler bunların anlamını tanımlar; bir okuyucunun bunları uygulamakla yükümlü olduğunu belirtmez. NextPDF, tam ISO 32000-2 uyumluluğu iddia etmez.