Pdf.js: PDFJS.getDocument tidak berfungsi

Dibuat pada 31 Des 2014  ·  12Komentar  ·  Sumber: mozilla/pdf.js

Saya menjalankan aplikasi grails di Host lokal (yang saya tahu ada masalah dengan pdf.js dan sistem file lokal) dan alih-alih menggunakan file: url yang saya tahu akan gagal, saya meneruskan array javascript yang diketik dan itu masih gagal. Benar, itu tidak memberi tahu saya apa pun selain "Peringatan: Menyiapkan pekerja palsu." dan kemudian tidak melakukan apa-apa.

this.base64ToBinary = function(dataURI) {
        var BASE64_MARKER = ';base64,';
        var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
        var base64 = dataURI.substring(base64Index);
        var raw = window.atob(base64);
        var rawLength = raw.length;
        var array = new Uint8Array(new ArrayBuffer(rawLength));

        for(i = 0; i < rawLength; i++) {
        array[i] = raw.charCodeAt(i);
        }
        return array;
    };

PDFJS.disableWorker = true; // due to CORS

// I convert some base64 data to binary data here which comes back correctly
var data = utilities.base64ToBinary(result);

PDFJS.getDocument(data).then(function (pdf) {
         //nothing console logs or reaches here
         console.log(pdf);
}).catch(function(error){
//no error message is logged either
            console.log("Error occurred", error);
        });

Saya ingin tahu apakah saya tidak mengaturnya dengan benar? Bisakah saya menggunakan perpustakaan ini murni di sisi klien dengan hanya menyertakan pdf.js atau apakah saya perlu menyertakan viewer.js juga? dan juga saya perhatikan file kompatibilitas ... pengaturannya tidak terlalu jelas dan contoh ini http://jsfiddle.net/epistemex/LUNaJ/ berfungsi dan milik saya tidak dan saya tidak memahami perbedaannya. Juga jika saya menggunakan url yang disediakan dalam contoh itu juga mengatakan hal yang sama.

screen shot 2014-12-31 at 11 59 17 am

1-other 4-information-requested

Komentar yang paling membantu

"Itu tidak akan membantu jika nama pdf.js diubah atau bagian dari file gabungan." benar tetapi selain dari masalah saya sendiri menggunakan grails, Anda harus mengulanginya untuk membuat metode standar lebih akurat. Itu penuh dengan lubang.

Semua 12 komentar

Saya telah membuat masalah ini lebih komprehensif dengan beberapa pembaruan, beri tahu saya jika Anda dapat menjelaskannya. Tidak ada yang mengenai fungsi kesalahan dan semua yang saya lihat di konsol saya adalah apa yang Anda lihat di tangkapan layar.

Kami tidak dapat membantu sampai kami melihat contoh lengkap dan memiliki cara untuk mereproduksi masalah secara lokal. Silakan baca https://github.com/mozilla/pdf.js/blob/master/CONTRIBUTING.md dan berikan informasi lebih lanjut sesuai permintaan.

@yurydelendik Bagaimana saya bisa memberikannya kepada Anda contoh biola berfungsi tetapi kode yang sama persis tidak berfungsi di lingkungan saya ... jadi saya tidak dapat mengulanginya untuk Anda ... yang terbaik yang dapat saya pikirkan adalah itu saya bisa melakukan google hangout atau screenhero dengan Anda untuk menunjukkan kepada Anda.

Bisakah Anda setidaknya memberi saya beberapa kemungkinan?

Hanya menebak (dari pengalaman):

  • mesin webkit/javascript lawas (ini biasanya diperbaiki dengan menambahkan compatibility.js)
  • versi PDF.js lama (silakan gunakan versi yang dirilis atau npm/bower pdfjs-dist)
  • konfigurasi yang salah untuk disableWorker/workerSrc
  • kesalahan sederhana dari reporter/pengembang masalah

apa itu pdf.worker.js?

Saya menggunakan rilis terbaru. Juga apakah ada beberapa dokumentasi seputar disableWorker/workerSrc?

pdf.worker.js adalah file utama yang melakukan parsing PDF (di luar halaman utama thread). Ketika disableWorker=true itu akan dimuat ke halaman utama secara otomatis (dari lokasi workerSrc) dan memblokir UI untuk kebutuhan penguraian PDF. Lihat https://github.com/mozilla/pdf.js/blob/master/src/display/api.js#L65

ahhh ok saya tahu apa masalahnya ... Anda mungkin harus mencatat ini di dokumentasi atau memperjelasnya. Jadi, jika Anda tidak menentukan pekerjaSrc, Anda mencoba mencari tahu apa itu dengan menggunakan tag skrip terakhir di kepala aplikasi untuk membuka dan memuatnya, tetapi bagaimana jika aplikasi itu grails atau menyajikan beberapa file gabungan uri? Anda juga tidak dapat dengan andal berasumsi bahwa tag skrip terakhir akan memiliki sumber yang benar. Jika Anda ingin melakukan ini dengan cara yang benar, Anda harus mengulang semua tag skrip di kepala mencari pdf.js di setiap src dan kemudian menggunakan sumber yang benar alih-alih mengambil yang terakhir.

Saya pribadi tidak tahu apa-apa tentang grails. Kami memiliki workerSrc yang dapat dikonfigurasi untuk kasus tersebut.

Anda harus mengulang semua tag skrip

Itu tidak akan membantu jika nama pdf.js diubah atau bagian dari file gabungan.

Penutupan sebagai tidak valid.

"Itu tidak akan membantu jika nama pdf.js diubah atau bagian dari file gabungan." benar tetapi selain dari masalah saya sendiri menggunakan grails, Anda harus mengulanginya untuk membuat metode standar lebih akurat. Itu penuh dengan lubang.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat