Pdf.js: PDFJS.getDocument no funciona

Creado en 31 dic. 2014  ·  12Comentarios  ·  Fuente: mozilla/pdf.js

Estoy ejecutando una aplicación de grails en el host local (que sé que hay un problema con pdf.js y el sistema de archivos local) y en lugar de usar un archivo: url que sé que fallaría, estoy pasando una matriz de javascript escrita y es sigue fallando Para ser correcto, no me dice nada más que "Advertencia: configurando un trabajador falso". y luego no hace nada.

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);
        });

Me pregunto si simplemente no lo tengo configurado correctamente. ¿Puedo usar esta biblioteca únicamente en el lado del cliente simplemente incluyendo pdf.js o necesito incluir viewer.js también? y también noté el archivo de compatibilidad... la configuración no es muy clara y este ejemplo http://jsfiddle.net/epistemex/LUNaJ/ funciona y el mío no y no entiendo la diferencia. Además, si uso la URL proporcionada en ese ejemplo, también dice lo mismo.

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

1-other 4-information-requested

Comentario más útil

"Eso no ayudará en caso de que se cambie el nombre de pdf.js o sea parte del archivo combinado". cierto, pero aparte de mis propios problemas con el uso de griales, debe recorrerlos de todos modos para que el método estándar sea más preciso. Está lleno de agujeros.

Todos 12 comentarios

He hecho este problema más completo con algunas actualizaciones. Por favor, avíseme si puede arrojar algo de luz. Nada golpea la función de error tampoco y todo lo que veo en mi consola es lo que ves en la captura de pantalla.

No podemos ayudar hasta que veamos el ejemplo completo y tengamos una forma de reproducir el problema localmente. Lea https://github.com/mozilla/pdf.js/blob/master/CONTRIBUTING.md y proporcione más información según se solicite.

@yurydelendik ¿Cómo se supone que debo hacértelo llegar? El ejemplo del violín funciona, pero exactamente el mismo código no funciona en mi entorno... por lo tanto, no puedo reproducirlo para ti... lo mejor que se me ocurre es que Puedo hacer un hangout de google o screenhero contigo para mostrártelo.

¿Podrías al menos darme algunas posibilidades?

Solo adivinando (por experiencia):

  • motor webkit/javascript heredado (esto generalmente se soluciona agregando compatibilidad.js)
  • versión antigua de PDF.js (utilice la versión publicada o npm/bower pdfjs-dist)
  • configuración incorrecta para disabledWorker/workerSrc
  • simple error del reportero/desarrollador del problema

¿Qué es pdf.worker.js?

Estoy usando la última versión. ¿También hay alguna documentación sobre disabledWorker/workerSrc?

pdf.worker.js es el archivo principal que realiza el análisis de PDF (fuera del hilo principal de la página). Cuando disabledWorker=true, se cargará en la página principal automáticamente (desde la ubicación de workerSrc) y bloqueará la interfaz de usuario para las necesidades de análisis de PDF. Consulte https://github.com/mozilla/pdf.js/blob/master/src/display/api.js#L65

ahhh ok, descubrí cuál es el problema... probablemente deberías anotar esto en la documentación o dejarlo claro. Entonces, si no especificas workerSrc, intentas averiguar qué es usando la última etiqueta de script en el encabezado de la aplicación para ir y cargarla, pero ¿qué pasa si la aplicación es grial o sirve algún archivo uri combinado? Tampoco puede asumir de manera confiable que la última etiqueta de script tendría la fuente correcta. Si desea hacer esto de la manera correcta, debe recorrer todas las etiquetas de script en el encabezado buscando pdf.js en cada src y luego usar la fuente correcta en lugar de tomar la última.

Yo personalmente no sé nada acerca de griales. Tenemos workerSrc configurable para esos casos.

necesitaría recorrer todas las etiquetas del script

Eso no ayudará en caso de que se cambie el nombre pdf.js o sea parte del archivo combinado.

Cerrando como inválido.

"Eso no ayudará en caso de que se cambie el nombre de pdf.js o sea parte del archivo combinado". cierto, pero aparte de mis propios problemas con el uso de griales, debe recorrerlos de todos modos para que el método estándar sea más preciso. Está lleno de agujeros.

¿Fue útil esta página
0 / 5 - 0 calificaciones