İlk PDF belgeniz
Bir bakışta
“Bir bakışta” başlıklı bölümBu öğreticide iki PDF dosyası oluşturacaksınız. İlk olarak metni doğrudan akıcı çekirdek Application Programming Interface (API) ile yazarsınız. Ardından Cascading Style Sheets (CSS) içeren bir Hypertext Markup Language (HTML) parçasını bir sayfaya işlersiniz. Sonunda elinizde, gerçek bir belgeye uyarlayabileceğiniz çalışan bir betik ve çerçeve ile sunucu varyantlarına yönelik bağlantılar olur.
Her iki yaklaşım da aynı motoru kullanır; bu nedenle burada öğrendiklerinizi her dağıtıma taşıyabilirsiniz.
Aşağıdaki şema, iki içerik oluşturma yaklaşımını ve bunları yeniden kullanan üç dağıtım yüzeyini gösterir.
Başlamadan önce
“Başlamadan önce” başlıklı bölümÇekirdek motorun kurulu olmasına ve bir PHP betiği çalıştırabileceğiniz bir ortama ihtiyacınız vardır.
-
PHP 8.4’ün etkin çalışma zamanı olduğunu doğrulayın:
Terminal window php --version -
Henüz yoksa çekirdek motoru projenize kurun:
Terminal window composer require nextpdf/core -
Proje kök dizininde
first-pdf.phpadında bir çalışma dosyası oluşturun.
PHP’den PDF oluşturma
“PHP’den PDF oluşturma” başlıklı bölümAkıcı API ile başlayın. Document::createStandalone() hemen kullanabileceğiniz bir belge döndürür. Bir sayfa ekleyin, bir yazı tipi ayarlayın, hücreler yazın ve ardından kaydedin. Her içerik oluşturma yöntemi belgeyi döndürür; böylece çağrı zinciri yukarıdan aşağıya okunur.
-
Bu kodu
first-pdf.phpdosyasına yerleştirin. Betik, katı tür bildirimini yapar, otomatik yükleyiciyi yükler ve tek sayfa oluşturur:<?phpdeclare(strict_types=1);require_once __DIR__ . '/vendor/autoload.php';use NextPDF\Core\Document;$document = Document::createStandalone();$document->setTitle('My first NextPDF document');$document->addPage();$document->setFont('helvetica', 'B', 24);$document->cell(0, 15, 'Hello, NextPDF!', newLine: true);$document->setFont('helvetica', '', 12);$document->cell(0, 10, 'This is the first PDF I generated with PHP.', newLine: true);$document->save(__DIR__ . '/first-pdf.pdf');echo "Wrote first-pdf.pdf\n"; -
Betiği çalıştırın:
Terminal window php first-pdf.php -
Çıktıyı doğrulayın. Standart çıktıda aşağıdaki satırı, betiğin yanında da
first-pdf.pdfadında yeni bir dosyayı görmeniz gerekir:Wrote first-pdf.pdf
Artık geçerli bir PDF 2.0 dosyası oluşturdunuz. Başlığı ve altındaki satırı görmek için dosyayı herhangi bir görüntüleyicide açın.
HTML’i PDF’ye işleme
“HTML’i PDF’ye işleme” başlıklı bölümHücre yazmak size ayrıntılı denetim sağlar. Ancak çoğu belgeyi HTML ve CSS olarak ifade etmek daha hızlıdır. Çekirdek motor, saf PHP tabanlı bir HTML işlem hattı içerir. writeHtml() yöntemi, bir parçayı geçerli sayfaya işler. Tarayıcı veya harici hizmet kullanmaz.
-
Bir HTML parçası işleyen,
html-pdf.phpadında ikinci bir dosya oluşturun:<?phpdeclare(strict_types=1);require_once __DIR__ . '/vendor/autoload.php';use NextPDF\Core\Document;$document = Document::createStandalone();$document->setTitle('HTML to PDF');$document->addPage();$html = <<<'HTML'<h1 style="color: #1E3A8A;">HTML rendering in NextPDF</h1><p>NextPDF renders <strong>HTML content</strong> directly into PDF pages.</p><ul><li>Headings, paragraphs, and lists</li><li>Inline <strong>bold</strong> and <em>italic</em></li><li>Inline styles such as color and font-size</li></ul>HTML;$document->writeHtml($html);$document->save(__DIR__ . '/html-pdf.pdf');echo "Wrote html-pdf.pdf\n"; -
Dosyayı çalıştırın:
Terminal window php html-pdf.php -
Çıktı satırını ve yeni dosyayı doğrulayın:
Wrote html-pdf.pdf
Motor, HTML ve CSS’nin desteklenen bir alt kümesini işler. Bir özelliğe güvenmeden önce CSS destek matrisini kontrol edin. Yerleşiminiz flexbox, grid veya web yazı tipleri gibi tam tarayıcı doğruluğu gerektirdiğinde, Artisan işleyicisini kurun ve bunun yerine writeHtmlChrome() çağırın. Bu yöntem metni seçilebilir tutar.
Bir çerçeve denetleyicisinden
“Bir çerçeve denetleyicisinden” başlıklı bölümUygulamanız zaten bir çerçevede veya sunucu üzerinde çalışıyor olabilir. Aynı iki çağrı bu ortama da taşınır. Motor aynı kalır; yalnızca bağlantı kurulumu değişir.
Yeni bir belgeyi her çağrı için Pdf facade’i çözümler. PdfResponse bir belgeyi indirme yanıtına dönüştürür:
<?php
declare(strict_types=1);
namespace App\Http\Controllers;
use Illuminate\Http\Response;use NextPDF\Contracts\PdfDocumentInterface;use NextPDF\Laravel\Http\PdfResponse;
final class ReportController extends Controller{ public function download(): Response { $document = app(PdfDocumentInterface::class); $document->addPage(); $document->cell(0, 10, 'Monthly report', newLine: true);
return PdfResponse::download($document, 'report.pdf'); }}Bkz. Laravel hızlı başlangıç.
Paket, bir PdfFactory hizmeti sunar. Bir denetleyicide NextPDF\Symfony\Service\PdfFactory tür ipucunu kullanın, belgeyi aynı şekilde oluşturun ve bir HTTP yanıtı olarak döndürün. Symfony hızlı başlangıç kılavuzuna bakın.
NextPDF Server çalışırken, sıralı bir işlem dizisini POST edin; sunucu PDF baytlarını döndürür:
curl -sS -X POST http://localhost:8080/api/v1/render \ -H 'Authorization: Bearer <api-key>' \ -H 'Content-Type: application/json' \ -d '{ "page_size": "A4", "orientation": "portrait", "operations": [ { "type": "add_text", "text": "Hello from NextPDF Connect" } ] }' \ --output hello.pdfBir 200 yanıtında gövde PDF’dir. Connect hızlı başlangıç kılavuzuna bakın.
Sonraki adımlar
“Sonraki adımlar” başlıklı bölümArtık bir PDF’yi üç farklı şekilde oluşturdunuz. Her bir yaklaşımdan devam etmek için bu sayfaları kullanın.