рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ рдкрд░ рдПрдХ grails рдРрдк рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ (рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкреАрдбреАрдПрдл.рдЬреЗрдПрд╕ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ) рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп: рдпреВрдЖрд░рдПрд▓ рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдореИрдВ рдПрдХ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░рдгреА рдореЗрдВ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╣реИ рдЕрднреА рднреА рд╡рд┐рдлрд▓ред рд╕рд╣реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореБрдЭреЗ рдХреБрдЫ рдирд╣реАрдВ рдмрддрд╛ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди "рдЪреЗрддрд╛рд╡рдиреА: рдирдХрд▓реА рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛ред" рдФрд░ рдлрд┐рд░ рдпрд╣ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
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);
});
рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдореИрдВ рдХреЗрд╡рд▓ pdf.js рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ viewer.js рдХреЛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдФрд░ рдореИрдВрдиреЗ рд╕рдВрдЧрддрддрд╛ рдлрд╝рд╛рдЗрд▓ рднреА рджреЗрдЦреА ... рд╕реЗрдЯ рдЕрдк рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдЙрджрд╛рд╣рд░рдг http://jsfiddle.net/epistemex/LUNaJ/ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореЗрд░рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЕрдВрддрд░ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдЧрд░ рдореИрдВ рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдП рдЧрдП рдпреВрдЖрд░рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╡рд╣реА рдмрд╛рдд рдХрд╣рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдХреБрдЫ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рднреА рддреНрд░реБрдЯрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рд┐рдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬреЛ рдХреБрдЫ рдореИрдВ рдЕрдкрдиреЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рд╡рд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдк рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред
рд╣рдо рддрдм рддрдХ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЬрдм рддрдХ рд╣рдо рдкреВрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ рдФрд░ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ https://github.com/mozilla/pdf.js/blob/master/CONTRIBUTING.md рдкрдврд╝реЗрдВ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
@yurydelendik рдореБрдЭреЗ рдпрд╣ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдмреЗрд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдареАрдХ рд╡рд╣реА рдХреЛрдб рдореЗрд░реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ... рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ ... рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд╕рд╛рде рдПрдХ Google рд╣реИрдВрдЧрдЖрдЙрдЯ рдпрд╛ рд╕реНрдХреНрд░реАрди рд╣реАрд░реЛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?
рдмрд╕ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ (рдЕрдиреБрднрд╡ рд╕реЗ):
pdf.worker.js рдХреНрдпрд╛ рд╣реИ?
рдореИрдВ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЕрдХреНрд╖рдо рд╡рд░реНрдХрд░/рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдПрд╕рдЖрд░рд╕реА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рднреА рд╣реИрдВ?
pdf.worker.js рдореБрдЦреНрдп рдлрд╛рдЗрд▓ рд╣реИ рдЬреЛ рдкреАрдбреАрдПрдл рдкрд╛рд░реНрд╕рд┐рдВрдЧ (рдкреЗрдЬ рдореБрдЦреНрдп рдереНрд░реЗрдб рдХреЗ рдмрд╛рд╣рд░) рдХрд░рддреА рд╣реИред рдЬрдм рдЕрдХреНрд╖рдорд╡рд░реНрдХрд░ = рд╕рддреНрдп рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдореЗрдВ рд▓реЛрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдПрд╕рдЖрд░рд╕реА рд╕реНрдерд╛рди рд╕реЗ) рдФрд░ рдкреАрдбреАрдПрдл рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдпреВрдЖрдИ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░реЗрдВред рджреЗрдЦреЗрдВ https://github.com/mozilla/pdf.js/blob/master/src/display/api.js#L65
рдЖрд╣ рдареАрдХ рд╣реИ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ ... рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ рдпрджрд┐ рдЖрдк рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдПрд╕рдЖрд░рд╕реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╢реАрд░реНрд╖ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдРрдк grails рд╣реИ рдпрд╛ рдХреБрдЫ рд╕рдВрдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдпреВрд░реА рдХреА рд╕реЗрд╡рд╛ рдХрд░рддрд╛ рд╣реИ? рдЖрдк рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдпрд╣ рднреА рдирд╣реАрдВ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдВрддрд┐рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХрд╛ рд╕рд╣реА рд╕реНрд░реЛрдд рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд░реЛрдд рдореЗрдВ pdf.js рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЕрдВрддрд┐рдо рд╕реНрд░реЛрдд рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рд╣реА рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ grails рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдПрд╕рдЖрд░рд╕реА рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд╣реИред
рдЖрдкрдХреЛ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдпрд╣ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрдм pdf.js
рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдпрд╛ рд╕рдВрдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛред
рдЕрдорд╛рдиреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░рдирд╛ред
"рдпрд╣ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрдм pdf.js рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд╕рдВрдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИред" рд╕рдЪ рд╣реИ рд▓реЗрдХрд┐рди рдЧреНрд░реЗрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрд░реЗ рдЕрдкрдиреЗ рдореБрджреНрджреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдЖрдкрдХреЛ рдорд╛рдирдХ рд╡рд┐рдзрд┐ рдХреЛ рдФрд░ рд╕рдЯреАрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╕реЗ рднреА рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЫрд┐рджреНрд░реЛрдВ рд╕реЗ рднрд░рд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
"рдпрд╣ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрдм pdf.js рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд╕рдВрдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИред" рд╕рдЪ рд╣реИ рд▓реЗрдХрд┐рди рдЧреНрд░реЗрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрд░реЗ рдЕрдкрдиреЗ рдореБрджреНрджреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдЖрдкрдХреЛ рдорд╛рдирдХ рд╡рд┐рдзрд┐ рдХреЛ рдФрд░ рд╕рдЯреАрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╕реЗ рднреА рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЫрд┐рджреНрд░реЛрдВ рд╕реЗ рднрд░рд╛ рд╣реИред