Sebelum ini saya sudah pernah membuat tutorial cara membuat surat otomatis dengan menggunakan word template di link berikut ini. https://www.sahretech.com/2021/07/membuat-surat-otomatis-dengan-template.html. Tapi ternyata di tutorial saya sebelumnya memiliki kekurangan, yaitu file gambar tidak dapat ditampilkan saat mencetak file word.
Sekarang kita akan memanfaatkan plugin php word untuk mencetak surat secara otomatis dengan menggunakan template surat yang sudah ada. Kelebihan menggunakan plugin ini yaitu mudah dan dapat menampilkan gambar. Pada tutorial kita kali ini kita akan membuat surat otomatis yang dapat menampilkan teks dan gambar tanda tangan.
Cara Membuat Surat Otomatis di PHP dengan Menggunakan Word Template
1. Download dan install composer di link berikut ini https://getcomposer.org/download2. Buat folder baru di dalam htdocs dengan nama office_template atau dengan nama yang kalian inginkan.
3. Masuk ke dalam folder tersebut dan jalankan perintah di bawah ini menggunakan cmd atau terminal. Perintah ini berfungsi untuk untuk menginisialisasi composer.
composer init
4. Selanjutnya kalian pasti akan diminta untuk menjawab beberapa pertanyaan. Silahkan ikuti saja seperti gambar di bawah ini.
Menjalankan composer init |
5. Masih di dalam folder office_template. Selanjutnya kita akan menginstall package php office. Jalankan perintah di bawah ini. Setelah dijalankan akan muncul folder vendor
composer require phpoffice/phpword
6. Selanjutnya siapkan template surat dan gambar tanda tangan dengan format docx, lalu
masukkan ke dalam file office_template. Untuk contoh templatenya bisa
kalian lihat dan ikuti seperti gambar di bawah ini.
Setiap data yang nantinya ingin diisi harus menggunakan tanda ${...}. Ini berfungsi untuk mengenali data mana saja yang akan diisi. Jika terlalu panjang untuk sekedar uji coba bisa kalian sesuaikan dengan format kalian masing-masing. Dan untuk gambar tanda tangan bisa menggunakan jpg atau png
7. Buatlah sebuah file baru dengan nama index.php di dalam folder office_template. Lalu ikuti scriptnya seperti gambar di bawah ini.
8. Buatlah sebuah file baru dengan nama process.php di dalam folder office_template. Lalu ikuti scriptnya seperti gambar di bawah ini.
Semua tahapan sudah kita kerjakan, selanjutnya kita bisa melakukan uji coba. Silahkan jalankan xampp kalian. Lalu buka localhost/office_template. Isi semua data pada form dan klik submit untuk mencetak file word. Jika berhasil maka tampilannya akan tampak seperti ini.
Membuat Template Surat |
Setiap data yang nantinya ingin diisi harus menggunakan tanda ${...}. Ini berfungsi untuk mengenali data mana saja yang akan diisi. Jika terlalu panjang untuk sekedar uji coba bisa kalian sesuaikan dengan format kalian masing-masing. Dan untuk gambar tanda tangan bisa menggunakan jpg atau png
7. Buatlah sebuah file baru dengan nama index.php di dalam folder office_template. Lalu ikuti scriptnya seperti gambar di bawah ini.
8. Buatlah sebuah file baru dengan nama process.php di dalam folder office_template. Lalu ikuti scriptnya seperti gambar di bawah ini.
<?php
require 'vendor/autoload.php';
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('template_surat.docx');
$templateProcessor->setValues(array(
'kota' => $_POST['kota'],
'tanggal' => $_POST['tanggal'],
'nama_sekolah' => $_POST['nama_sekolah'],
'kelas' => $_POST['kelas'],
'nama_siswa' => $_POST['nama_siswa'],
'alamat_sekolah'=> $_POST['alamat_sekolah'],
'alamat_rumah' => $_POST['alamat_rumah'],
'nama_ortu' => $_POST['nama_ortu']
));
$templateProcessor->setImageValue('tanda_tangan',
array(
'path' => 'tanda_tangan.png',
'width' => 100,
'height' => 100,
'ratio' => false
)
);
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=nota_dinas.docx");
$templateProcessor->saveAs('php://output');
Semua tahapan sudah kita kerjakan, selanjutnya kita bisa melakukan uji coba. Silahkan jalankan xampp kalian. Lalu buka localhost/office_template. Isi semua data pada form dan klik submit untuk mencetak file word. Jika berhasil maka tampilannya akan tampak seperti ini.
Form Surat |
Hasil Akhir |
Sekarang kalian sudah bisa membuat surat secara otomatis dengan menggunakan template yang ada. Selanjutnya kalian bisa melakukan improvisasi dengan membuat form yang berbeda atau mengambil data dari database.
Sekian tutorial kita kali ini tentang Cara Membuat Surat Otomatis di PHP dengan Menggunakan Word Template, semoga bermanfaat. Jika ada pertanyaan silahkan tanya langsung di kolom komentar di bawah ini. Sekian dan terima kasih.
Tutorial yang menggunakan koneksi Database nya kak
ReplyDeletenama file dokument nya apa (docx) ?
ReplyDeleteIya pake docx
Deletebisa dicontohkan jika isi template word ambil data dari database kah...makasih
ReplyDeletenah ini belum ada tutorialnya, klo bisa crud sebenarnya mudah aja
Delete