andriajah Sun Sep 2023 7 months ago

Cara Menambahkan Tanda Tangan Digital di PDF menggunakan Laravel

Menambahkan tanda tangan digital ke dalam sebuah PDF menggunakan Laravel dapat dilakukan dengan beberapa langkah. Di bawah ini adalah panduan langkah-demi-langkah untuk melakukannya:

Langkah 1: Instal Dependensi

Pastikan Anda memiliki Laravel diinstal. Kemudian, Anda perlu menginstal beberapa dependensi seperti `spatie/pdf-to-image` untuk mengonversi PDF ke gambar, dan `setasign/fpdi` untuk bekerja dengan PDF. Instal dependensi ini dengan Composer:

composer require spatie/pdf-to-image setasign/fpdi

 

Langkah 2: Buat Route dan Controller

Buat route di file `routes/web.php` yang akan digunakan untuk mengakses halaman untuk menambahkan tanda tangan:

Route::get('/tambah-tanda-tangan', 'PDFSignatureController@index');
Route::post('/tambah-tanda-tangan', 'PDFSignatureController@store');

 

Kemudian, buat sebuah controller dengan perintah `php artisan make:controller PDFSignatureController` dan tambahkan kode berikut ke dalam controller tersebut:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Spatie\PdfToImage\Pdf;


class PDFSignatureController extends Controller
{
    public function index()
    {
        return view('tambah-tanda-tangan');
    }

    public function store(Request $request)
    {
        // Proses PDF dan tambahkan tanda tangan di sini
    }
}

 

Langkah 3: Buat View

Buat view yang akan digunakan untuk mengunggah PDF dan menampilkan formulir tanda tangan. Buat file `resources/views/tambah-tanda-tangan.blade.php` dan tambahkan formulir HTML untuk mengunggah PDF dan menambahkan tanda tangan. Anda dapat menggunakan tag `<input type="file">` untuk mengunggah file PDF dan tag `<canvas>` untuk menampilkan tanda tangan.

 

Langkah 4: Proses PDF dan Tanda Tangan

Di dalam method `store` dari controller, Anda perlu memproses PDF yang diunggah dan menambahkan tanda tangan ke dalamnya. Anda bisa menggunakan library seperti `setasign/fpdi` untuk membuka PDF, menambahkan tanda tangan, dan menyimpannya kembali. Berikut contoh singkatnya:

public function store(Request $request)
{
    $pdfPath = $request->file('pdf')->getRealPath();
    $pdf = new Pdf($pdfPath);


    // Konversi PDF ke gambar
    $images = $pdf->setResolution(300)->getImages();


    // Tambahkan tanda tangan ke setiap halaman gambar
    foreach ($images as $index => $image) {
        $imgPath = $image['path'];

        // Tambahkan tanda tangan ke $imgPath di sini
    }

    // Simpan PDF yang sudah ditandatangani
    $pdf->setImages($images)->save('path_to_signed_pdf.pdf');

    return redirect('/')->with('success', 'Tanda tangan berhasil ditambahkan.');
}

 

Anda perlu menambahkan logika untuk menambahkan tanda tangan ke setiap halaman gambar dalam PDF. Untuk tanda tangan digital, Anda bisa menggunakan library seperti `TCPDF` atau `FPDI` untuk menambahkan gambar tanda tangan ke setiap halaman.

 

Langkah 5: Tampilkan PDF yang Ditandatangani

 

Setelah Anda menambahkan tanda tangan ke PDF, Anda dapat mengirimkannya sebagai respons kepada pengguna atau menyimpannya di server untuk diakses nanti.

 

Ini adalah panduan umum untuk menambahkan tanda tangan digital ke PDF menggunakan Laravel. Anda perlu menyesuaikan kode sesuai kebutuhan Anda dan pastikan untuk mengikuti panduan keamanan terkait pengunggahan dan pemrosesan file di Laravel untuk mencegah masalah keamanan.

laravel