Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: PHP’de ekran görüntüsü alma ve PDF oluşturma (wkhtmltopdf olmadan)
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » PHP’de ekran görüntüsü alma ve PDF oluşturma (wkhtmltopdf olmadan)

Yazılım

PHP’de ekran görüntüsü alma ve PDF oluşturma (wkhtmltopdf olmadan)

teknomers
Son güncelleme: 26 Şubat 2026 08:43
teknomers
Paylaş
Paylaş

PHP ile Ekran Görüntüsü Alma ve PDF Oluşturma Yöntemleri (wkhtmltopdf Kullanmadan)

PHP ile PDF oluşturma süreci genellikle zorlu bir deneyimdir. wkhtmltopdf, bir binary kurulum gerektirirken modern CSS ve JavaScript ile sorunlar yaşayabilir. Dompdf tamamen PHP tabanlıdır ancak JavaScript ağırlıklı sayfaları render edemez. mPDF benzer bir sınırlamaya sahiptir. Browsershot (Spatie), Puppeteer’i sarmaladığı için sunucunuzda Node.js çalıştırmanızı gerektirmektedir.

Contents
  • Bir URL’den Ekran Görüntüsü Alma
  • Bir URL’den PDF Oluşturma
  • HTML’den PDF Oluşturma (wkhtmltopdf / Dompdf Yerine)
  • Laravel Kontrolcü Örneği
  • Dağıtım

Temiz bir yol var: bir HTTP isteği, binary cevap ve sistem bağımlılığı yok.

Bir URL’den Ekran Görüntüsü Alma

<?php

function screenshot(string $url): string
{
    $ch = curl_init('https://pagebolt.dev/api/v1/screenshot');
    curl_setopt_array($ch, [
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            'x-api-key: ' . $_ENV['PAGEBOLT_API_KEY'],
            'Content-Type: application/json',
        ],
        CURLOPT_POSTFIELDS => json_encode([
            'url' => $url,
            'fullPage' => true,
            'blockBanners' => true,
        ]),
    ]);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

// Diskte kaydet
file_put_contents('screenshot.png', screenshot('https://example.com'));

Bir URL’den PDF Oluşturma

function pdfFromUrl(string $url): string
{
    $ch = curl_init('https://pagebolt.dev/api/v1/pdf');
    curl_setopt_array($ch, [
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            'x-api-key: ' . $_ENV['PAGEBOLT_API_KEY'],
            'Content-Type: application/json',
        ],
        CURLOPT_POSTFIELDS => json_encode([
            'url' => $url,
            'blockBanners' => true,
        ]),
    ]);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

file_put_contents('page.pdf', pdfFromUrl('https://yourapp.com/invoice/1042'));

HTML’den PDF Oluşturma (wkhtmltopdf / Dompdf Yerine)

Öncelikle PHP şablonunuzu bir HTML stringine render edin, ardından gönderebilirsiniz:

function pdfFromHtml(string $html): string
{
    $ch = curl_init('https://pagebolt.dev/api/v1/pdf');
    curl_setopt_array($ch, [
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            'x-api-key: ' . $_ENV['PAGEBOLT_API_KEY'],
            'Content-Type: application/json',
        ],
        CURLOPT_POSTFIELDS => json_encode(['html' => $html]),
    ]);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

// HTML'yi istediğiniz gibi oluşturun
ob_start();
include 'templates/invoice.php';
$html = ob_get_clean();

$pdf = pdfFromHtml($html);
file_put_contents("invoice-{$invoiceId}.pdf", $pdf);

Laravel Kontrolcü Örneği

use Illuminate\Http\Response;

class InvoiceController extends Controller
{
    public function download(Invoice $invoice): Response
    {
        $html = view('invoices.pdf', compact('invoice'))->render();

        $ch = curl_init('https://pagebolt.dev/api/v1/pdf');
        curl_setopt_array($ch, [
            CURLOPT_POST => true,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HTTPHEADER => [
                'x-api-key: ' . env('PAGEBOLT_API_KEY'),
                'Content-Type: application/json',
            ],
            CURLOPT_POSTFIELDS => json_encode(['html' => $html]),
        ]);
        $pdf = curl_exec($ch);
        curl_close($ch);

        return response($pdf, 200, [
            'Content-Type' => 'application/pdf',
            'Content-Disposition' => "attachment; filename=\"invoice-{$invoice->id}.pdf\"",
        ]);
    }
}

Hiçbir Composer paketi, binary veya Node.js gerektirmiyor. Blade şablonu normal şekilde render ediliyor — sadece PDF oluşturma adımını değiştirmelisiniz.

Dağıtım

Hiçbir buildpack, apt-get veya binary katmanı gerekli değil. Paylaşımlı hosting, Heroku, Laravel Forge veya outbound HTTPS olan herhangi bir PHP ortamında çalışıyor. PAGEBOLT_API_KEY‘yi .env dosyanıza ekleyin ve normal bir şekilde dağıtım yapın.

Kaynak: Orijinal Makale

Laravel WebDAV Sunucusu Beta Aşamasına Girdi – API Artık Stabil
Laravel Personel Takviyesi: Bu Yıl Dikkate Alınması Gereken En İyi 5 Ajans
Laravel Projelerinde Güvenli AI Benimseme İçin 7 Adım (Üretimi Bozmadan)
Chrome 100 web sitenizi bozabilir – ancak Google üzerindedir
Nginx’i Başlatma, Durdurma ve Yeniden Başlatma Yöntemleri
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Waymo Chicago ve Charlotte’da Testlere Başlıyor
Sonraki Makale Sony Watchman’dan CRT ile VR Başlık Tasarlandı: Keskin Olmasa da Ekran Kapı Etkisini Hızla Gideriyor

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

AMD Helios MI455X AI platformu lanse edildi, Ethernet sınırlamaları var
Donanım
Kurucular Fonu, Sam Altman ve Palmer Luckey’in Yer Aldığı Heyecan Verici Oyun Şovunu Başlattı
Genel
Laravel Başlangıç Kiti Neden Geliştirdim
Yazılım
Startup Battlefield Avustralya’ya geri dönüyor – Sydney’de geçen sefer neler oldu?
Genel
Computex 2026’nın En İyileri: Kesintilere Rağmen Yenilikçi Çözümler
Donanım
Switch 2 Avrupa’da Tüketici Dostu Bir Yenilikle Geliyor
Oyun
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?