Beispiel #1
0
 public function monthly($res, $id)
 {
     $dt = DateTime::createFromFormat('!m', $id);
     $fpdf = new Fpdf();
     $fpdf->AddPage('L');
     $fpdf->SetFont('Arial', 'B', 16);
     $fpdf->Cell(130);
     $fpdf->Cell(20, 10, Information::where('keyname', '=', 'name')->first()->value, 0, 1, 'C');
     $fpdf->Cell(130);
     $fpdf->SetFont('Arial', '', 14);
     $fpdf->Cell(20, 10, Information::where('keyname', '=', 'address')->first()->value, 0, 1, 'C');
     $header = array('ID', 'Date', 'Pax', 'Status', 'Amount', 'Payment Method', 'Duration');
     $fpdf->SetFont('Arial', 'B', 16);
     $fpdf->Cell(130);
     $fpdf->Cell(20, 10, 'Monthly Report for the Month of: ' . $dt->format('F'), 0, 1, 'C');
     // Colors, line width and bold font
     $fpdf->SetFillColor(255, 0, 0);
     $fpdf->SetTextColor(255);
     $fpdf->SetDrawColor(128, 0, 0);
     $fpdf->SetLineWidth(0.3);
     $fpdf->SetFont('', '');
     // Header
     $fpdf->Ln();
     $fpdf->Cell(10);
     $w = array(35, 25, 25, 45, 23, 50, 55);
     for ($i = 0; $i < count($header); $i++) {
         $fpdf->Cell($w[$i], 7, $header[$i], 1, 0, 'C', true);
     }
     $fpdf->Ln();
     // Color and font restoration
     $fpdf->SetFillColor(224, 235, 255);
     $fpdf->SetTextColor(0);
     $fpdf->SetFont('Arial', '', 12);
     // Data
     $fill = false;
     $total = 0;
     foreach ($res as $row) {
         $fpdf->Cell(10);
         $fpdf->Cell($w[0], 6, $row->id, 'LR', 0, 'L', $fill);
         $fpdf->Cell($w[1], 6, $row->date_request, 'LR', 0, 'L', $fill);
         $fpdf->Cell($w[2], 6, $row->pax, 'LR', 0, 'R', $fill);
         $fpdf->Cell($w[3], 6, $row->status, 'LR', 0, 'R', $fill);
         $fpdf->Cell($w[4], 6, $row->net_total, 'LR', 0, 'R', $fill);
         if ($row->payment_mode != '') {
             $fpdf->Cell($w[5], 6, $row->payment_mode . " (" . $row->payment_method . ")", 'LR', 0, 'L', $fill);
         } else {
             $fpdf->Cell($w[5], 6, 'Payment Method not set', 'LR', 0, 'L', $fill);
         }
         $fpdf->Cell($w[6], 6, $row->reservation_start . ' to ' . $row->reservation_end, 'LR', 0, 'L', $fill);
         $fpdf->Ln();
         $fill = !$fill;
         $total = +$row->net_total;
     }
     // Closing line
     $fpdf->Cell(10);
     $fpdf->Cell(array_sum($w), 0, '', 'T');
     $fpdf->Ln();
     $fpdf->Cell(190);
     $fpdf->SetFont('Arial', 'B', 13);
     $fpdf->Cell(40, 7, 'Total:', '', 0, 'R');
     $fpdf->SetFont('Arial', '', 13);
     $fpdf->Cell(40, 7, "{$total}", 0);
     $fpdf->Output();
     exit;
 }
Beispiel #2
0
 Fpdf::Cell(0, 25, "Meeting Notes", 'LTR', 0, 'L', true);
 Fpdf::Ln(25);
 Fpdf::SetFillColor(255);
 Fpdf::SetFont('Arial', '', 10);
 Fpdf::SetTextColor(0);
 if (empty($notes_meeting)) {
     Fpdf::MultiCell(0, 25, "No notes have been recorded for this meeting.", 'LRB', 'L');
 }
 foreach ($notes_meeting as $notes) {
     $cleanNotes = strip_tags($notes->description);
     $cleanNotes = str_replace("&nbsp;", " ", $cleanNotes);
     Fpdf::MultiCell(0, 25, $cleanNotes, 'LRB', 'L');
 }
 Fpdf::Ln(50);
 Fpdf::SetFillColor($pieces[0], $pieces[1], $pieces[2]);
 Fpdf::SetLineWidth(1);
 Fpdf::SetFont('Arial', '', 12);
 Fpdf::SetTextColor($fontpieces[0], $fontpieces[1], $fontpieces[2]);
 Fpdf::Cell(0, 25, "Action Items", 'LTR', 0, 'L', true);
 Fpdf::Ln(25);
 Fpdf::SetFillColor(255);
 Fpdf::SetFont('Arial', '', 10);
 Fpdf::SetTextColor(0);
 if (empty($action_meeting)) {
     Fpdf::MultiCell(0, 25, "No actions have been recorded for this meeting.", 'LRB', 'L');
 }
 foreach ($action_meeting as $action) {
     if ($action->type == '0') {
         Fpdf::SetFont('Arial', '', 10);
         Fpdf::SetTextColor(0);
         $cleanAction = strip_tags($action->description);
Beispiel #3
0
 /**
  * Generate lembar disposisi menggunakan FPDF.
  */
 public static function generate_lembar_disposisi($input)
 {
     $pdf = new Fpdf();
     /**
      * TODO:
      * Ubah posisi y dari perhitungan manual menjadi menggunakan GetY SetY
      */
     $pdf->SetLineWidth(0.01);
     // 0.01mm
     // specify margin variables, dalam unit milimeter
     $margin_left = 5;
     $margin_top = 10;
     $margin_right = 10;
     $pdf->SetMargins($margin_left, $margin_top, $margin_right);
     $pdf->AddPage();
     $pdf->Image(URL::to_asset('img/logo.png'), $margin_left, $margin_top, 0, 25);
     // specify height variables
     $h1 = 6;
     $h2 = 1.5 * $h1;
     $h3 = 2 * $h1;
     /**
      * Bagian Header
      */
     $span1 = 30;
     $span2 = 40;
     $span3 = 50;
     $span4 = 60;
     /* line 1 */
     $pdf->SetFont('Times', 'B', 16);
     $pdf->Cell($span1, $h1, '');
     $pdf->Cell(160, $h1, 'Direktorat Jenderal Pajak', 0, 0, 'C');
     $pdf->Ln();
     /* line 2 */
     $pdf->SetFont('Times', 'B', 12);
     $pdf->Cell($span1, $h1, '');
     $pdf->Cell(160, $h1, strtoupper($input->nama_kpp), 0, 0, 'C');
     $pdf->Ln();
     /* line 3 */
     $pdf->Cell($span1, $h1, '');
     $pdf->Cell(160, $h1, $input->nama_seksi, 0, 0, 'C');
     $line_x1 = $margin_left + $span1;
     $line_y1 = $margin_top + 3 * $h1;
     $line_x2 = 210 - $margin_right;
     $line_y2 = $line_y1;
     $pdf->Line($line_x1, $line_y1, $line_x2, $line_y2);
     $pdf->Ln();
     /* line 4 */
     $pdf->SetFont('Times', '', 14);
     $pdf->Cell($span1, $h3, '');
     $pdf->Cell(160, $h3, 'LEMBAR DISPOSISI', 0, 0, 'C');
     $line_x1 = $margin_left + $span1 + 10;
     $line_y1 = $margin_top + 3 * $h1 + $h2;
     $line_x2 = 210 - $margin_right - 10;
     $line_y2 = $line_y1;
     $pdf->Line($line_x1, $line_y1, $line_x2, $line_y2);
     $pdf->Ln();
     /* line 5, blank line */
     $pdf->Cell(210 - $margin_left - $margin_right, $h3, '');
     $pdf->Ln();
     /**
      * variable font size
      */
     $font_size = 10;
     /* line 6 */
     // output label left
     $pdf->SetFont('Times', '', $font_size);
     $pdf->Cell($span1, $h2, 'Tanggal Diterima:');
     $pdf->SetFont('Arial', '', $font_size);
     $pdf->Cell($span4 + 10, $h2, Printpdf::full_tanggal($input->tgl_diterima));
     // divider
     $pdf->Cell(10, $h2, '');
     //output label right
     $pdf->SetFont('Times', '', $font_size);
     $pdf->Cell($span1, $h2, 'Nomor Agenda:');
     $pdf->SetFont('Arial', '', $font_size);
     // cek apakah nomor Agenda otomatis akan ikut dicetak?
     $tampilkan_nomor_agenda = Konfigurasi::find(8)->config_value;
     if ($tampilkan_nomor_agenda == 1) {
         $pdf->Cell($span4 + 5 - $margin_right, $h2, $input->nomor_agenda_seksi);
     } else {
         $pdf->Cell($span4 + 5 - $margin_right, $h2, '');
     }
     // border-bottom dibuat secara manual agar posisinya bisa diatur dan tidak
     // dipengaruhi cell height
     // underline content left
     $line_x1 = $margin_left + $span1;
     $line_y1 = $margin_top + 4 * $h1 + 2 * $h3 + 1;
     $line_x2 = $line_x1 + $span4 + 10;
     $line_y2 = $line_y1;
     $pdf->Line($line_x1, $line_y1, $line_x2, $line_y2);
     // underline content right
     $line_x1 = 210 - $margin_right - ($span4 + 5 - $margin_right);
     $line_y1 = $line_y1;
     $line_x2 = 210 - $margin_right;
     $line_y2 = $line_y1;
     $pdf->Line($line_x1, $line_y1, $line_x2, $line_y2);
     $pdf->Ln();
     /* line 7 */
     // output label left
     $pdf->SetFont('Times', '', $font_size);
     $pdf->Cell($span1, $h2, 'Nomor Surat:');
     $pdf->SetFont('Arial', '', $font_size);
     $pdf->Cell($span4 + 10, $h2, $input->nomor_surat);
     // divider
     $pdf->Cell(10, $h2, '');
     //output label right
     $pdf->SetFont('Times', '', $font_size);
     $pdf->Cell($span1, $h2, 'No. Agenda Sekre:');
     $pdf->SetFont('Arial', '', $font_size);
     $pdf->Cell($span4 + 5 - $margin_right, $h2, $input->nomor_agenda_sekre);
     // underline content left
     $line_x1 = $margin_left + $span1;
     $line_y1 = $line_y1 + $h2;
     $line_x2 = $line_x1 + $span4 + 10;
     $line_y2 = $line_y1;
     $pdf->Line($line_x1, $line_y1, $line_x2, $line_y2);
     // underline content right
     $line_x1 = 210 - $margin_right - ($span4 + 5 - $margin_right);
     $line_y1 = $line_y1;
     $line_x2 = 210 - $margin_right;
     $line_y2 = $line_y1;
     $pdf->Line($line_x1, $line_y1, $line_x2, $line_y2);
     $pdf->Ln();
     /* line 8 */
     // output label left
     $pdf->SetFont('Times', '', $font_size);
     $pdf->Cell($span1, $h2, 'Tanggal Surat:');
     $pdf->SetFont('Arial', '', $font_size);
     $pdf->Cell($span4 + 10, $h2, Printpdf::full_tanggal($input->tgl_surat));
     // underline content left
     $line_x1 = $margin_left + $span1;
     $line_y1 = $line_y1 + $h2;
     $line_x2 = $line_x1 + $span4 + 10;
     $line_y2 = $line_y1;
     $pdf->Line($line_x1, $line_y1, $line_x2, $line_y2);
     $pdf->Ln();
     /* line 9 */
     // output label left
     $pdf->SetFont('Times', '', $font_size);
     $pdf->Cell($span1, $h2, 'Nama Pengirim:');
     $pdf->SetFont('Arial', '', $font_size);
     $pdf->Cell(210 - $margin_right - $margin_left - $span1, $h2, strtoupper($input->pengirim));
     // underline content left
     $line_x1 = $margin_left + $span1;
     $line_y1 = $line_y1 + $h2;
     $line_x2 = 210 - $margin_right;
     $line_y2 = $line_y1;
     $pdf->Line($line_x1, $line_y1, $line_x2, $line_y2);
     $pdf->Ln();
     /* line 10 */
     // output label left
     $pdf->SetFont('Times', '', $font_size);
     $pdf->Cell($span1, $h2, 'Perihal:');
     $pdf->SetFont('Arial', '', $font_size);
     $pdf->drawTextBox(strtoupper($input->hal), 210 - $margin_right - $margin_left - $span1, $h3 + $h1 / 2, 'L', 'T', 0, $h1 / 2);
     // underline content left
     $line_x1 = $margin_left + $span1;
     $line_y1 = $line_y1 + $h3 + $h1 / 2 + 1;
     $line_x2 = 210 - $margin_right;
     $line_y2 = $line_y1;
     $pdf->Line($line_x1, $line_y1, $line_x2, $line_y2);
     $pdf->Ln();
     /* line 11 */
     $pdf->SetFont('Times', '', $font_size);
     $y = $line_y1 + $h3;
     $pdf->SetY($y);
     $pdf->SetStyle("em", "Times", "I", 0, "0,0,0");
     $pdf->SetStyle("p", "Times", "N", $font_size, "0,0,0", 0);
     $pdf->SetStyle("content", "Arial", "", 0, "0,0,0");
     $pdf->SetStyle("strong", "Times", "B", 0, "0,0,0");
     $pdf->WriteTag(210 - $margin_left - $margin_right, $h1, '<p>PERHATIAN: <em>Dilarang memisahkan sehelai surat pun dari berkas yang telah disusun.</em></p>', 0, 'C');
     /**
      * line 12
      * print daftar disposisi, daftar sifat, daftar petunjuk
      */
     // set to correct y position
     $pdf->SetY($y + $h1);
     // create 3 column
     $spacer = 1;
     $box_width = (210 - $margin_left - $margin_right - 2) / 2;
     // box_width akan dipakai untuk dua kolom
     $checkbox_width = 8;
     $box_text_width = $box_width - $checkbox_width;
     // save y position
     $save_y_position = $pdf->GetY();
     // print right box first
     $pdf->Cell($box_width + $spacer, $h1, '');
     // padding-left hack :)
     $pdf->SetFont('Times', 'B', $font_size);
     $pdf->Cell($box_width, $h1, 'Ditujukan kepada:', 'LTR');
     $pdf->Ln();
     /* iterasi */
     foreach ($input->daftar_disposisi as $row) {
         if ($row->aktif) {
             // padding-left hack :)
             $pdf->Cell($box_width + $spacer, $h1, '');
             // draw checkbox
             Printpdf::draw_checkbox($pdf, in_array($row->id, $input->disposisi), $font_size, $h1, $checkbox_width);
             // print daftar nama
             $pdf->SetFont('Times', '', $font_size);
             $pdf->Cell($box_text_width, $h1, $row->nama, 'R');
             $pdf->Ln();
         }
     }
     // print daftar disposisi lain-lain
     if (!empty($input->lain_lain)) {
         // padding-left
         $pdf->Cell($box_width + $spacer, $h1, '');
         // draw checkbox
         Printpdf::draw_checkbox($pdf, true, $font_size, $h1, $checkbox_width);
         // print lain-lain
         $pdf->SetFont('Times', '', $font_size);
         $pdf->Cell($box_text_width, $h1, $input->lain_lain, 'R');
         $pdf->Ln();
     }
     // bottom space and border
     $pdf->Cell($box_width + $spacer, $h1, '');
     $pdf->Cell($box_width, $h1 / 2, '', 'RLB');
     $pdf->Ln();
     // save y position untuk reset posisi box catatan
     $catatan_box_y_position_1 = $pdf->GetY();
     // reset y position, print left box
     $pdf->SetY($save_y_position);
     $pdf->SetFont('Times', 'B', $font_size);
     $pdf->Cell($box_width, $h1, 'Sifat:', 'LTR');
     $pdf->Ln();
     /* iterasi */
     $pdf->SetFont('Times', '', $font_size);
     foreach ($input->daftar_sifat as $key => $value) {
         // draw checkbox
         Printpdf::draw_checkbox($pdf, in_array($key, $input->sifat), $font_size, $h1, $checkbox_width);
         // print daftar sifat
         $pdf->SetFont('Times', '', $font_size);
         $pdf->Cell($box_text_width, $h1, $value, 'R');
         $pdf->Cell($spacer, $h1, '', '');
         $pdf->Ln();
     }
     // continue print left box
     $pdf->SetFont('Times', 'B', $font_size);
     $pdf->Cell($box_width, $h1, 'Petunjuk:', 'LR');
     $pdf->Ln();
     /* iterasi */
     $pdf->SetFont('Times', '', $font_size);
     foreach ($input->daftar_petunjuk as $row) {
         // draw checkbox
         Printpdf::draw_checkbox($pdf, in_array($row->id, $input->petunjuk), $font_size, $h1, $checkbox_width);
         // print daftar petunjuk
         $pdf->SetFont('Times', '', $font_size);
         $pdf->Cell($box_text_width, $h1, $row->petunjuk, 'R');
         $pdf->Cell($spacer, $h1, '', '');
         $pdf->Ln();
     }
     // copy
     $dots = '........';
     if ($input->copy > 0) {
         $copy = '  ' . $input->copy . '  ';
         Printpdf::draw_checkbox($pdf, true, $font_size, $h1, $checkbox_width);
     } else {
         $copy = $dots;
         Printpdf::draw_checkbox($pdf, false, $font_size, $h1, $checkbox_width);
     }
     $pdf->SetFont('Times', '', $font_size);
     $pdf->Cell($box_text_width, $h1, 'Perbanyak: ' . $copy . ' kali,  Asli ke: ' . $dots, 'R');
     $pdf->Ln();
     // bottom border
     $pdf->Cell($box_width, $h1 / 2, '', 'RLB');
     $pdf->Ln();
     // save y position untuk reset posisi box catatan
     $catatan_box_y_position_2 = $pdf->GetY();
     /* line 13 */
     // adjust y position
     $y = $catatan_box_y_position_1 > $catatan_box_y_position_2 ? $catatan_box_y_position_1 : $catatan_box_y_position_2;
     $pdf->SetY($y + 1);
     // print box catatan
     $pdf->SetFont('Times', 'U', $font_size);
     $pdf->Cell(0, $h1, 'CATATAN:', 'LTR');
     $pdf->Ln();
     // save y position
     $y = $pdf->GetY();
     // print text catatan
     $pdf->SetFont('Arial', '', $font_size - 1);
     $pdf->drawTextBox(strtoupper($input->catatan), 210 - $margin_right - $margin_left, 'L', 'T', 1, $h1 / 2);
     // reset position, draw fake border
     $pdf->SetY($y);
     $pdf->Cell(0, $h3, '', 'LBR');
     $pdf->Ln();
     /* line 14 */
     // adjust y position
     $y = $pdf->GetY();
     $pdf->SetY($y + 2);
     // print field tambahan
     $pdf->SetFont('Times', '', $font_size);
     $pdf->Cell(0, 5, 'PENGELOLAAN PADA SEKSI TERKAIT:');
     $pdf->Ln();
     /* line 15 */
     // dua kolom hal yang sama
     $half_width = (210 - $margin_left - $margin_right) / 2;
     $hw = $half_width;
     $padding_right = 20;
     $pdf->SetFont('Times', 'B', $font_size);
     $pdf->Cell($half_width, 7, 'Diteruskan ke:');
     $pdf->Cell($half_width, 7, 'Diteruskan ke:');
     $pdf->Ln();
     $s1 = '1. Seksi: ';
     $s2 = '2. Diterima Seksi: ';
     $s3 = '3. Selesai diproses: ';
     $dot1 = str_repeat('.', 71);
     $dot2 = str_repeat('.', 56);
     $dot3 = str_repeat('.', 54);
     $w1 = $pdf->GetStringWidth($s1);
     $w2 = $pdf->GetStringWidth($s2);
     $w3 = $pdf->GetStringWidth($s3);
     $pdf->SetFont('Times', '', $font_size);
     // print text dengan dotted yang right-aligned
     $pdf->Cell($hw - ($hw - $w1) - $padding_right, 4, $s1);
     $pdf->Cell($hw - $w1, 4, $dot1, 0, '', 'R');
     $pdf->Cell($padding_right, 4, '');
     $pdf->Cell($hw - ($hw - $w1) - $padding_right, 4, $s1);
     $pdf->Cell($hw - $w1, 4, $dot1, 0, '', 'R');
     $pdf->Cell($padding_right, 4, '');
     $pdf->Ln();
     $pdf->Cell($hw - ($hw - $w2) - $padding_right, 4, $s2);
     $pdf->Cell($hw - $w2, 4, $dot2, 0, '', 'R');
     $pdf->Cell($padding_right, 4, '');
     $pdf->Cell($hw - ($hw - $w2) - $padding_right, 4, $s2);
     $pdf->Cell($hw - $w2, 4, $dot2, 0, '', 'R');
     $pdf->Cell($padding_right, 4, '');
     $pdf->Ln();
     $pdf->Cell($hw - ($hw - $w3) - $padding_right, 4, $s3);
     $pdf->Cell($hw - $w3, 4, $dot3, 0, '', 'R');
     $pdf->Cell($padding_right, 4, '');
     $pdf->Cell($hw - ($hw - $w3) - $padding_right, 4, $s3);
     $pdf->Cell($hw - $w3, 4, $dot3, 0, '', 'R');
     $pdf->Cell($padding_right, 4, '');
     $pdf->Ln();
     // generate pdf ke folder 'public' subfolder 'pdf'
     $file_name = 'print' . time() . '.pdf';
     $output_path = Printpdf::pdf_folder_path() . $file_name;
     $pdf->Output($output_path, 'F');
     return $file_name;
 }