Pdf.js: getDocument рдЬреЗрд╕реНрдЯ/JSDom рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдорд╛рд░реНрдЪ 2018  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mozilla/pdf.js

PDF.js 2.0.385 рдФрд░ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░, рдирд┐рдореНрди рд╕рд░рд▓рддрдо рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ:

pdf.getDocument({ data: arrayBufferData })
  .then(() => console.log('Success'))
  .catch() => console.log('Fail'));

рдЬрд╛рд╣рд┐рд░ рд╣реИ, Node.js рдкрд░ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред

рдЬреЗрд╕реНрдЯ рдореЗрдВ рдЙрд╕реА рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЪрд▓рд╛рдирд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИ (рд╕рд░рд▓реАрдХреГрдд, рдХреГрдкрдпрд╛ рдЗрд╕ рддрдереНрдп рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдПрд╕рд┐рдВрдХреНрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП):

describe('Test', () => {
  it('does something', () => {
    pdf.getDocument({ data: arrayBufferData })
      .then(() => console.log('Success'))
      .catch() => console.log('Fail'));
  });
}
  • рдпрджрд┐ testEnvironment рдХреЛ "node" рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИред
  • рдЕрдЧрд░ testEnvironment рдХреЛ "jsdom" (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣реИрдВрдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрднреА рднреА .then() рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред

PDF.js 2.0.305 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рдЬрдмрдХрд┐ #9385 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, PDF.js рдФрд░ Jest/JSDom рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ PDF.js-рд╕рдВрдмрдВрдзрд┐рдд рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реЛрдВрдЧреЗ ред testEnvironment рд╕реЗ "node" рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдкрд░ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛! рдореЗрд░реЗ рдЬреИрд╕реЗ рдЕрдЯрдХреЗ рд╣реБрдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, pdfjs.GlobalWorkerOptions.workerSrc рдпрд╛ pdfjs.GlobalWorkerOptions.workerPort рд╕реЗрдЯ рди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, pdf.worker.entry.js рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рдмрд╕ рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХрд╛ рдХрд╛рдо рд╣реЛ рдЧрдпрд╛!

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬреИрд╕рд╛ рдХрд┐ ISSUE_TEMPLATE.md рдФрд░ CONTRIBUTING.md рджреЛрдиреЛрдВ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдХрд╕реНрдЯрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдкреВрд░реНрдг, рдФрд░ рдЫреЛрдЯреЗ, рдЪрд▓рд╛рдиреЗ рдпреЛрдЧреНрдп рдЙрджрд╛рд╣рд░рдг рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдХреГрдкрдпрд╛ рдпрд╣ рди рдорд╛рдиреЗрдВ рдХрд┐ рд▓реЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдЬреЗрдПрд╕ рдврд╛рдВрдЪреЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ "рдЬреЗрд╕реНрдЯ"ред

рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрджрд░реНрдн рдпрд╛ рдХреЛрдб рдХреЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ:
рдХреНрдпрд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдЖрдкрдиреЗ workerSrc рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╕рдХреНрд╖рдо рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдП рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП workerPort рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ getDocument рдкрд░ рднреЗрдЬрдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ, рджреЗрдЦреЗрдВ https://github.com/mozilla/pdf.js/blob/0d391daccc2f4e4b9c91268e719bd10fe63a49ae/src/display/api.js#L129 -L130

рдореИрдВ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛! рдореЗрд░реЗ рдЬреИрд╕реЗ рдЕрдЯрдХреЗ рд╣реБрдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, pdfjs.GlobalWorkerOptions.workerSrc рдпрд╛ pdfjs.GlobalWorkerOptions.workerPort рд╕реЗрдЯ рди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, pdf.worker.entry.js рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рдмрд╕ рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХрд╛ рдХрд╛рдо рд╣реЛ рдЧрдпрд╛!

рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореБрдЭреЗ jsdom рдХреЗ рдмрдЬрд╛рдп рдиреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо)

рдЗрд╕реЗ рдореЗрд░реА рдХрд▓реНрдкрдирд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛

/**
 * @jest-environment node
 */

рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЬреЗрд╕реНрдЯ рдЯреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рд╡реВ-рдХреНрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

azetutu picture azetutu  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xingxiaoyiyio picture xingxiaoyiyio  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SehyunPark picture SehyunPark  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aaronshaf picture aaronshaf  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

THausherr picture THausherr  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ