Cara Membuat Surat Otomatis di PHP dengan Menggunakan Word Template

Share:
Cara Membuat Surat Otomatis di PHP dengan Menggunakan Word Template
Halo semuanya, kembali lagi di sahretech. Pada kesempatan kali ini kita akan membuat surat otomatis dengan menggunakan template surat ms word yang sudah ada. Penasaran?, ayo ikuti tutorial selengkapnya di bawah ini.



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/download

2. 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.
perintah composer init
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.

Gambar Template Surat
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.
    

 <!DOCTYPE html>
 <html lang="en">
      
      <head>
          <meta charset="UTF-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Tutorial Use PHP Word Office Template</title>
          <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
              integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
      </head>
      
      <body>
          <div class="container col-lg-5">
              <div class="alert alert-info text-center mt-4">
                  Tutorial Menggunakan Template Surat dengan PHP
              </div>
              <div class="card mt-4">
                  <form method="post" action="process.php">
                      <div class="card-body">
                          <div class="form-group mb-2">
                              <label for="">Kota</label>
                              <input type="text" name="kota" class="form-control">
                          </div>
                          <div class="form-group mb-2">
                              <label for="">Tanggal</label>
                              <input type="date" name="tanggal" class="form-control">
                          </div>
                          <div class="form-group mb-2">
                              <label for="">Nama Sekolah</label>
                              <input type="text" name="nama_sekolah" class="form-control">
                          </div>
                          <div class="form-group mb-2">
                              <label for="">Kelas</label>
                              <input type="text" name="kelas" class="form-control">
                          </div>
                          <div class="form-group mb-2">
                              <label for="">Nama Siswa</label>
                              <input type="text" name="nama_siswa" class="form-control">
                          </div>
                          <div class="form-group mb-2">
                              <label for="">Alamat Sekolah</label>
                              <textarea name="alamat_sekolah" class="form-control" rows="3"></textarea>
                          </div>
                          <div class="form-group mb-2">
                              <label for="">Alamat Rumah</label>
                              <textarea name="alamat_rumah" class="form-control" rows="3"></textarea>
                          </div>
                          <div class="form-group mb-2">
                              <label for="">Nama Orangtua</label>
                              <input type="text" name="nama_ortu" class="form-control">
                          </div>
                          <div class="form-group mb-2">
                              <button type="submit" class="btn btn-success">Kirim</button>
                          </div>
                      </div>
                  </form>
              </div>
          </div>
      </body>
 </html>






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
Form Surat


Surat Otomatis PHP
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.


5 comments:

  1. Tutorial yang menggunakan koneksi Database nya kak

    ReplyDelete
  2. bisa dicontohkan jika isi template word ambil data dari database kah...makasih

    ReplyDelete
    Replies
    1. nah ini belum ada tutorialnya, klo bisa crud sebenarnya mudah aja

      Delete

Jangan lupa kasih komentar ya!. Karena komentar kalian membantu kami menyediakan informasi yang lebih baik

Tidak boleh menyertakan link atau promosi produk saat berkomentar. Komentar tidak akan ditampilkan. Hubungi 081271449921(WA) untuk dapat menyertakan link dan promosi