GigaTera
GigaTera

Reputation: 1252

How to merge pdf before download it using dompdf and setasign/FPDF

I have a method for passing data to report.blade

How do I so that when there is a .pdf file in Measurement Picture, the PDF file is merged with report.blade that is exported using a dompdf on the last page.

public function exportPdfRecord(Request $request)
    {
        // dd($request->all());
        // $id = $request->input('id');
        $inspect_id = $request->input('id');
        $status = $request->input('status');
        // dd($inspect_id);
            $inspect = InspectRecord::where('inspect_id', $inspect_id)->first();

            $inlineReports = InspectRecord::where('inspect_id', $inspect_id)->with(['additionalWos', 'pictureDefects', 'measurementPictures'])->get();
            $pictureDefect = PictureDefectRecord::where('inspect_record_id', $inspect->id)->get();
            $measurementPicture = MeasurementPictureRecord::where('inspect_record_id', $inspect->id)->get();
            // dd($inlineReports);
            if($status == 'pre_final'){
                $title = 'Pre-Final';
                $doc = 'report';
            }elseif($status == 'qa_inline'){
                $title = 'Inline';
                $doc = 'report';
            }elseif($status == 'factory_audit'){
                $title = 'Factory Audit';
                $doc = 'report';
            }elseif($status == 'inspection'){
                $title = 'Inspection';
                $doc = 'reportExport';
            }

            $data = [
                'inlineReports' => $inlineReports,
                'inspect' => $inspect,
                'pictureDefect' => $pictureDefect,
                'measurementPicture' => $measurementPicture,
                'title' => $title,
                // 'dateRange' => $dateRange,
                // 'buyer' => $buyer,
            ];
            $pdf = PDF::loadView('qc.QualityAssurance.pdf.'.$doc, $data)->setPaper('A4', 'portrait');
            return $pdf->download($status . '_report_' . Carbon::now()->format('Ymd') . '.pdf');
       
    }

Below is a file from report.blade

resources\views\qc\QualityAssurance\pdf\reportExport.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ $title }} Report</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            color: #263238;
        }
        .header div {
            float: right;
            width: 33.3%;
            font-size: 12px;
        }
        .header span.title {
            display: inline-block;
            width: 40%;
            font-weight: bold;
        }
        .header span.desc {
            display: inline-block;
            width: 60%;
        }
        h3 {
            text-align: center;
            margin-bottom: 5px;
        }
        h4 {
            text-align: center;
            margin-top: 0;
            margin-bottom: 20px;
        }
        .text-center {
            text-align: center;
        }
        .textDetail{
            border: 0px solid #E9E9E9;
            opacity: 1;
        }
        table {
            border: 1px solid #E9E9E9;
            border-collapse: collapse;
            width: 100%;
            margin-top: 20px;
            font-size: 10px;
        }
        table th, table td {
            border: 1px solid #E9E9E9;
            padding: 5px;
            text-align: center;
        }
        table th {
            background-color: #F9FCFF;
            font-size: 12px;
        }
        .img-defect img {
            width: 20%;
            margin: 5px;
        }
        p .textReport
        {
            margin-top: -15px;
            display: inline-block;
            width: 150px
            /* IE7 */
            *display: inline; 
            zoom: 1;
            /* IE7 */
        }
        .textTitle
        {
            text-align: left;
        }
        .textDetail tr td{
            font-weight: bolder;
            text-align: left;
            border:0px solid white
        }
        .table-defect tr td{
            border: 1px solid black;
        }
        .textData{
            border-bottom: 1px solid black !important
        }
    </style>
</head>
<body>
{{-- @dd($measurementPicture) --}}
    <div>
        <h3>REPORT {{ strtoupper($title) }} <br>
            {{ $inspect->buyer }}.</h3>
        <h4 class="text-center">
            {{-- @if($dateRange)
                {{ $dateRange }}
            @else --}}
                {{-- [Tanggal Belum Ditetapkan] --}}
            {{-- @endif --}}
        </h4>
    </div>

    <section>
        @forelse($inlineReports as $report)
            {{-- <div class="header clearfix">
                <div>
                    <p><strong>PO Number : </strong>{{ $report->po_number }}</p>
                </div>
                <div>
                    <p><strong>Shipment Periode / TOD : </strong>{{ \Carbon\Carbon::parse($report->shipment_period)->format('d/m/Y') }}</p>
                </div>
                <div>
                    <p><strong>Inspect Date : </strong>{{ \Carbon\Carbon::parse($report->inspect_date)->format('d/m/Y') }}</p>
                </div>
            </div> --}}
            <div class="header clearfix">
                <table class="mt-4 textDetail"  >
                    <tr>
                        <td>DIVISION</td>
                        <td colspan="3" class="textData">: <strong>{{ $inspect->buyer }}</strong></td>
                        <td>WORK</td>
                        <td colspan="3" class="textData">: <strong>{{ $inspect->style }}</strong></td>
                        <td>DATE</td>
                        <td colspan="3" class="textData">: <strong>{{ \Carbon\Carbon::parse($inspect->inspect_date)->format('d/m/Y') }}</strong></td>
                    </tr>
                    <tr>
                        <td>VENDOR</td>
                        <td class="textData">: <strong>PT.GISTEX</strong></td>
                        <td>FACTORY</td>
                        <td colspan="4" class="textData">: <strong>PT.GISTEX GARMENT INDONESIA</strong></td>
                        <td>PLACING</td>
                        <td class="textData">: <strong>{{ $inspect->placing }}</strong></td>
                        <td>SHIP DATE</td>
                        <td class="textData">: <strong>{{ \Carbon\Carbon::parse($inspect->shipment_period)->format('d/m/Y') }}</strong></td>
                    </tr>
                </table>
                <table style="border: 0px solid #E9E9E9; opacity: 1;" class="textDetail " style="margin-bottom: -20px" >
                    <tr>
                        <td >PO NO  </td>
                        <td >: {{ $report->po_number }}</td>
                    </tr>
                    <tr>
                        <td >ARTICLE </td>
                        <td >: {{ $inspect->style }}</td>
                    </tr>
                    <tr>
                        <td>ARTICLE PO QTY</td>
                        <td>: {{ $report->total_check }}</td>
                    </tr>
                    <tr>
                        <td>DESCRIPTION</td>
                        <td>: NULL</td>
                    </tr>
                    <tr>
                        <td>FABRIC</td>
                        <td>: {{ $inspect->fabric }}</td>
                    </tr>
                    <tr>
                        <td>COLOR</td>
                        <td>: {{ $inspect->color }}</td>
                    </tr>
                    <tr>
                        <td>BREAKDOWN SIZE</td>
                        <td>: NULL</td>
                    </tr>
                    <tr>
                        <td>SAMPLE SIZE</td>
                        <td>: {{ $report->sample_size }}</td>
                    </tr>
                </table>
            </div>
            <div class="header clearfix ">
                <table class="table-defect">
                    <tr>
                        <td>Pattern</td>
                        <td></td>
                        <td>Shell Fabric 1</td>
                        <td></td>
                        <td>Waisband 4</td>
                        <td></td>
                        <td>Main / Size Label</td>
                        <td></td>
                        <td>Poly bag/Sticker</td>
                        <td></td>
                        <td>Carton Quality</td>
                        <td></td>
                    </tr>
                    <tr>
                        <td>Size set sample</td>
                        <td></td>
                        <td>Shell Fabric 2</td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td>Care/Content Label</td>
                        <td></td>
                        <td>UPC Sticker</td>
                        <td></td>
                        <td>Carton Size</td>
                        <td></td>
                    </tr>
                    <tr>
                        <td>PP Sample</td>
                        <td></td>
                        <td>Shell Fabric 3</td>
                        <td></td>
                        <td>Lining</td>
                        <td></td>
                        <td>Supplier Label</td>
                        <td></td>
                        <td>Polybag/Boxes</td>
                        <td></td>
                        <td>G.W</td>
                        <td></td>
                    </tr>
                    <tr>
                        <td>Top Sample</td>
                        <td></td>
                        <td>Shell Fabric 4</td>
                        <td></td>
                        <td>Thread Color/Size 1</td>
                        <td></td>
                        <td>C/O: Indonesia</td>
                        <td></td>
                        <td>Pack Science</td>
                        <td></td>
                        <td>N.W</td>
                        <td></td>
                    </tr>
                    <tr>
                        <td>Print/Embroidery</td>
                        <td></td>
                        <td>Waisband 1</td>
                        <td></td>
                        <td>Thread Color/Size 2</td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td>Micro-Pak</td>
                        <td></td>
                        <td>Shipping mark</td>
                        <td></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td></td>
                        <td>Waisband 2</td>
                        <td></td>
                        <td>Thread Color/Size 3</td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td>Dump Box</td>
                        <td></td>
                        <td>Pallet</td>
                        <td></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td></td>
                        <td>Waisband 3</td>
                        <td></td>
                        <td>Thread Color/Size 4</td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td>Fabric Feel Tag</td>
                        <td></td>
                        <td>Outer Carton</td>
                        <td></td>
                    </tr>
                </table>
                <table class="textDetail">
                    <tr>
                        <td>CTN Required weight</td>
                        <td class="textData"></td>
                        <td>Actual Weight</td>
                        <td class="textData"></td>
                        <td>Variance</td>
                        <td class="textData"></td>
                        <td>Weight</td>
                        <td class="textData">Pass/Fail</td>
                    </tr>
                    <tr>
                        <td>Count Units</td>
                        <td class="textData">__________pck.</td>
                        <td>Errors</td>
                        <td class="textData">__________pcs</td>
                        <td>Accuracy</td>
                        <td class="textData">__________%</td>
                        <td>Count</td>
                        <td class="textData">Pass/Fail</td>
                    </tr>
                    <tr>
                        <td>Count units carton no</td>
                        <td colspan="7" class="textData"></td>
                    </tr>
                    <tr>
                        <td>Audit Carton</td>
                        <td colspan="7" class="textData"></td>
                    </tr>
                </table>
                <table class="table-defect">
                    <tr>
                        <td>Defects/Findings</td>
                        <td>Major</td>
                        <td>Minor</td>
                        <td>Defects/Findings</td>
                        <td>Major</td>
                        <td>Minor</td>
                        <td>Defects/Findings</td>
                        <td>Major</td>
                        <td>Mijor</td>
                    </tr>
                    <tr>
                        <td>Unsmooth Vurve on Back</td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                    </tr>
                    <tr>
                        <td>Skip Stich on Flatseam</td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                    </tr>
                    <tr>
                        <td>Puckering at Flatseam</td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                    </tr>
                    <tr>
                        <td>Loose Stictch at Bottom Hem</td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                    </tr>
                </table>
            </div>

            <div class="header clearfix">
                <table class="textDetail">
                    <tr>
                        <td>Quantity Audited</td>
                        <td class="textData"></td>
                        <td>Accepted</td>
                        <td class="textData"></td>
                        <td>Reject</td>
                        <td class="textData"></td>
                        <td>[]</td>
                        <td>Accept</td>
                        <td>[]</td>
                        <td>Fail</td>
                        <td>[]</td>
                        <td>Pending</td>
                    </tr>
                    <tr>
                        <td colspan="3">General Workmanship and Measurement Result</td>
                        <td class="textData" colspan="9"></td>
                    </tr>
                    <tr>
                        <td>Comment</td>
                        <td colspan="11" class="textData"></td>
                    </tr>
                    <tr>
                        <td><strong>PASSED Fabric & Garment Test is Annualy conducted and ned to be present in the QC file incl. PASSED A01 Test Report.</strong></td>
                    </tr>
                    <tr>
                        <td>OTHER COMMENTS:</td>
                    </tr>
                    <tr>
                        <td colspan="12" class="textData"></td>
                    </tr>
                    <tr>
                        <td colspan="12" class="textData"></td>
                    </tr>
                    <tr>
                        <td colspan="12" class="textData"></td>
                    </tr>
                </table>

                <table class="textDetail">
                    <tr>
                        <td></td>
                        <td></td>
                        <td></td>
                    </tr>
                    <tr>
                        <td class="textData" style="text-align: center !important;">MIA SUMIATI</td>
                        <td></td>
                        <td class="textData" style="text-align: center !important;">RUDIYANTO</td>
                    </tr>
                    <tr>
                        <td style="text-align: center !important;">Autidor</td>
                        <td></td>
                        <td style="text-align: center !important;">Factory</td>
                    </tr>
                </table>
            </div>
         

            <h4>Type Of Defect</h4>
            <table>
                <thead>
                    <tr>
                        <th>Scratches/Holes</th>
                        <th>Slub</th>
                        <th>Broken Stitch</th>
                        <th>Skip Stitch</th>
                        <th>Pleated</th>
                        <th>Puckering</th>
                        <th>Fractured</th>
                        <th>Hi Low</th>
                        <th>Trimming</th>
                        <th>Dirty</th>
                        <th>Sticker</th>
                        <th>Other Defect</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>{{ $report->defect_scratches_holes }}</td>
                        <td>{{ $report->defect_slub }}</td>
                        <td>{{ $report->defect_broken_stitch }}</td>
                        <td>{{ $report->defect_skip_stitch }}</td>
                        <td>{{ $report->defect_pleated }}</td>
                        <td>{{ $report->defect_purckering }}</td>
                        <td>{{ $report->defect_fractured }}</td>
                        <td>{{ $report->defect_hi_low }}</td>
                        <td>{{ $report->defect_trimming }}</td>
                        <td>{{ $report->defect_dirty }}</td>
                        <td>{{ $report->defect_sticker }}</td>
                        <td>{{ $report->defect_other }}</td>
                    </tr>
                </tbody>
            </table>

            <h4>Picture Defect</h4>
            <div class="clearfix img-defect">
                @forelse($pictureDefect as $defect)
                <img src="{{ public_path($defect->image_path) }}" alt="Defect Image">
                @empty
                    <p>No Picture Defects Available</p>
                @endforelse
            </div>

            <h4>Measurement Picture</h4>
            <div class="clearfix img-defect">
                @forelse($measurementPicture as $measurement)
                    {{-- @dd($measurement) --}}
                    <img src="{{ public_path($measurement->image_path) }}" alt="Measurement Image">
                @empty
                    <p>No Measurement Pictures Available</p>
                @endforelse
            </div>

            {{-- <h4>Measurement Document</h4>
            <div class="clearfix img-defect">
                @forelse($measurementPicture as $measurement)
                    <iframe src="{{ public_path($measurement->image_path) }}" width="100%" height="500px"></iframe>
                @empty
                    <p>No Measurement Pictures Available</p>
                @endforelse
            </div> --}}
            <div style="page-break-after: always;"></div>
        @empty
            <p class="text-center">No Data Found</p>
        @endforelse
    </section>
    
</body>
</html>

Upvotes: 1

Views: 38

Answers (0)

Related Questions