Definisi dan Fungsi GlobalWorkerOptions.workerSrc
pdfjsLib.GlobalWorkerOptions.workerSrc adalah properti esensial dalam library PDF.js yang berfungsi untuk menentukan lokasi (URL) file pdf.worker.js. Tanpa konfigurasi ini, library tidak dapat melakukan proses rendering dokumen PDF di luar thread utama (web worker), yang berakibat pada kegagalan pemuatan dokumen atau penurunan performa aplikasi secara signifikan.
Implementasi Teknis
Untuk mengintegrasikan PDF.js, Anda wajib mengarahkan workerSrc ke file worker yang sesuai dengan versi library yang digunakan. Berikut adalah sintaks standar untuk implementasi pada aplikasi web:
// Inisialisasi PDF.js worker
import * as pdfjsLib from 'pdfjs-dist';
// Menentukan path ke file worker
pdfjsLib.GlobalWorkerOptions.workerSrc = 'path/to/pdf.worker.js';
// Contoh penggunaan dengan CDN
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.worker.min.js';Tabel Komparasi Metode Pemuatan Worker
| Metode | Kelebihan | Kekurangan |
|---|---|---|
| Lokal (Self-hosted) | Kontrol penuh, tidak bergantung pada pihak ketiga | Memerlukan manajemen aset statis |
| CDN (Remote) | Implementasi cepat, caching browser | Bergantung pada ketersediaan server pihak ketiga |
Langkah Troubleshooting Umum
- Error 404: Pastikan path yang Anda masukkan ke
workerSrcbenar-benar mengarah ke filepdf.worker.jsataupdf.worker.min.js. - Cross-Origin Policy (CORS): Jika menggunakan CDN, pastikan server mengizinkan akses lintas domain.
- Versi Tidak Cocok: Pastikan versi
pdfjs-dist(library utama) sama persis dengan versi filepdf.worker.jsyang digunakan. Ketidakcocokan versi sering menyebabkan errorWorker script does not exist. - Bundler (Webpack/Vite): Jika menggunakan bundler, gunakan plugin seperti
worker-loaderatau salin file worker ke folderpublicagar dapat diakses secara statis.
Tips Optimasi
Untuk aplikasi produksi, disarankan menggunakan versi .min.js untuk mengurangi ukuran payload. Jika Anda menggunakan framework seperti React atau Vue, pastikan konfigurasi ini dijalankan sebelum fungsi getDocument dipanggil agar worker siap digunakan saat proses parsing dimulai.