Membuat File MS Office dengan CodeIgniter dan PHPOffice — Bagian III (PHPPresentation)

Avin Riyan
3 min readMar 15, 2019

--

PHPOffice adalah library PHP yang terdiri dari 3 bagian terpisah yaitu PHPWord, PHPSpreadsheet, dan PHPPresentation.

  • PHPWord untuk membaca dan menulis dokumen pengolah kata (docx/odt);
  • PHPSpreadsheet untuk membaca dan menulis dokumen spreadsheet (xlsx/ods);
  • PHPPresentation untuk membaca dan menulis dokumen presentasi (pptx/odp);

Artikel Terkait: Membuat File docx, xlsx, pptx Secara Terprogram dengan CodeIgniter dan PHPOffice (berqas.com)

Pada bagian ini saya akan melakukan uji coba pembuatan file berformat pptx secara terprogram yang didalamnya berisi teks hello world dengan bahasa pemprograman PHP, library PHPPresentation dan framework CodeIgniter.

Yang perlu disiapkan adalah

  1. Apache Web Server dan PHP7 (atau pakai XAMPP);
  2. Text Editor kesukaanmu (saya pakai VS Code);
  3. CodeIgniter yang telah terdownload https://codeigniter.com/download , saya pakai versi 3.1.10
  4. Composer https://getcomposer.org/download/
  5. Browser (saya pakai Chrome)

Langkah-langkahnya:

  1. Siapkan project CodeIgniter baru atau yang sudah pernah dibuat. nama folder project saya adalah ciphpoffice. Buka dengan text editor kesukaanmu.
  2. Buka terminal/cmd dan arahkan ke dalam folder ciphpoffice atau bagi pengguna text editor VS Code cukup menekan tombol Ctrl+shift+`
Membuka terminal baru via VS Code

3. ketikan perintah ini pada terminal

composer require phpoffice/phppresentation

tunggu proses installnya sampai selesai (membutuhkan waktu tergantung daripada koneksi internet)

4. Buka file application/config/config.php dan edit vendor directory path nya (jika sudah, skip langkah ini) menjadi

$config[‘composer_autoload’] = ‘vendor/autoload.php’;

5. Buat controller baru di folder application/controller dengan nama Presentation.php

6. coba jalankan di browser dengan alamat http://127.0.0.1/ciphpoffice/index.php/powerpoint maka file simple.pptx akan terdownload

7. Coba kita buka dengan aplikasi Office

begitulah hasil sederhana nya

Penjelasan kode

saat akan memanggil kelas-kelas di PHPPresentation, kita harus melakukan import menggunakan use …

use PhpOffice\PhpPresentation\PhpPresentation;use PhpOffice\PhpPresentation\Writer\PowerPoint2007;use PhpOffice\PhpPresentation\Style\Alignment;

Buat objek baru dari kelas PHPPresentation

$phpPresentation = new PhpPresentation();

kita get slide yang aktif

$currentSlide = $phpPresentation->getActiveSlide();

kita buat shape di dalam slide

$shape = $currentSlide->createRichTextShape()->setHeight(300)->setWidth(600)->setOffsetX(170)->setOffsetY(180);

Atur shape nya agar berada di tengah

$shape->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);

tulis teks di dalam slide

$textRun = $shape->createTextRun(‘Hello World !’);$textRun->getFont()->setBold(true)->setSize(60);

Membuat objek baru dari kelas PowerPoint2007

$writer = new PowerPoint2007($phpPresentation);

Content-Dispotition header digunakan untuk menentukan nama file dan memaksa browser menampilkan dialog save, kita juga menentukan Content-Type dan Cache-Control nya

$filename = ‘simple’;header(‘Content-Type: application/vnd.ms-powerpoint’);header(‘Content-Disposition: attachment;filename=”’. $filename .’.pptx”’);header(‘Cache-Control: max-age=0’);

terakhir kita panggil method save() dengan parameter php://output

$writer->save(‘php://output’);

Untuk teman2 yang mau bereksperimen dengan fitur yang lainnya, bisa cek dokumentasinya di

sekian dulu untuk part ini

Membuat File MS Office dengan CodeIgniter dan PHPOffice

--

--

Avin Riyan

Penulis di berqas.com dan pengelola kanal berqas 🧪🐟⚙️🐄🌳🪨🍞✈️