⚝
One Hat Cyber Team
⚝
Your IP:
192.168.31.6
Server IP:
192.168.1.11
Server:
Linux pams 6.1.0-29-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
PHP Version:
8.2.28
Buat File
|
Buat Folder
Upload File
Eksekusi
Dir :
~
/
var
/
www
/
pusaka
/
app
/
Views
/
Edit File: pdf_content.php
<div id="pdf-container-wrapper" style="text-align: center; overflow-x: auto;"> <canvas id="pdf-render-canvas"></canvas> </div> <div class="d-flex justify-content-center align-items-center mt-3 mb-3"> <button class="btn btn-sm btn-outline-secondary" id="prev-page"> <i class="fas fa-chevron-left"></i> Sebelumnya </button> <span class="mx-3">Halaman <strong id="page-num">1</strong> / <strong id="page-count"></strong></span> <button class="btn btn-sm btn-outline-secondary" id="next-page"> Berikutnya <i class="fas fa-chevron-right"></i> </button> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.min.js"></script> <script> // ---------------------------------------------------- // Variabel Global dan Konfigurasi // ---------------------------------------------------- //pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.worker.min.js'; let pdfDoc = null; let pageNum = 1; const canvas = document.getElementById('pdf-render-canvas'); const context = canvas.getContext('2d'); const pageNumSpan = document.getElementById('page-num'); const pageCountSpan = document.getElementById('page-count'); const prevButton = document.getElementById('prev-page'); const nextButton = document.getElementById('next-page'); // ---------------------------------------------------- // FUNGSI RENDER // ---------------------------------------------------- const renderPage = (num) => { pdfDoc.getPage(num).then(page => { // Skala rendering (bisa disesuaikan) const scale = 1.0; const viewport = page.getViewport({ scale }); // Atur dimensi canvas canvas.height = viewport.height; canvas.width = viewport.width; // Render halaman page.render({ canvasContext: context, viewport: viewport }); // Update tampilan navigasi pageNum = num; pageNumSpan.textContent = num; }); }; // ---------------------------------------------------- // PENGATURAN DAN PEMUATAN PDF // ---------------------------------------------------- window.loadPdfViewer = function(pdfUrl) { // Reset state jika dipanggil ulang pageNum = 1; pdfDoc = null; pdfjsLib.getDocument(pdfUrl).promise.then(pdf => { pdfDoc = pdf; pageCountSpan.textContent = pdf.numPages; renderPage(pageNum); // Pasang event listener (hanya sekali) prevButton.onclick = () => { if (pageNum <= 1) return; renderPage(pageNum - 1); }; nextButton.onclick = () => { if (pageNum >= pdfDoc.numPages) return; renderPage(pageNum + 1); }; }).catch(err => { console.error('Error saat memuat PDF:', err); canvas.style.display = 'none'; document.getElementById('pdf-container-wrapper').innerHTML = '<p class="text-danger">Gagal memuat dokumen PDF. Cek konsol untuk detail.</p>'; }); } // PENTING: Atasi masalah loading di modal // Memuat ulang PDF saat modal benar-benar terbuka (untuk mengatasi masalah dimensi canvas) // $('#view').on('shown.bs.modal', function () { // // Anda mungkin perlu memanggil loadPdfViewer(pdfUrl) di sini // // atau pastikan canvas memiliki dimensi yang benar saat dimuat. // }); </script>
Simpan