Pdf.js: рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдз: рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ NPM рдкрд░ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдБред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рджрд┐рд╕ре░ 2016  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mozilla/pdf.js

рдореИрдВ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдХреЗ рд▓рд┐рдП "рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ" рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореЗрд░реА рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рджред

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

рдореИрдВрдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рд╡реЗ рдЗрддрдиреЗ рдЦрд░рд╛рдм рд╣реИрдВ рдХрд┐ рдпрд╣ рд╣рдВрд╕рдиреЗ рдпреЛрдЧреНрдп рд╣реИред (рд╣рдВрд╕реЛ рддреЛ рддреБрдо рд░реЛрдУ рдордд)

рдпреЗ рдирд╡реАрдирддрдо рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реИрдВ (рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛): https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/pdfjs-dist/index.d.ts

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ:

// imports typings first
import { PDFJSStatic, PDFDocumentProxy, PDFPromise } from 'pdfjs-dist';

// then import the actual library using require() instead of import
let pdfjs: PDFJSStatic = require("pdfjs-dist");

// only then you can actually do something useful
pdfjs.getDocument('helloworld.pdf').then(function (pdf: PDFDocumentProxy ) {
  let pageNum = 1;
  renderPage(pdf, pageNum);
});

рдХреНрдпрд╛ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ PDFJSStatic рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЖрдпрд╛рдд рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдлрд┐рд░ require() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдЪрд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реИ? рдпрд╣ рдкреВрд░реА рдмрдХрд╡рд╛рд╕ рд╣реИред (рдореВрд▓ рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдкрд░рд╛рдз рдирд╣реАрдВ)

рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдкреАрдбреАрдПрдлрдЬреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрди SO рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдЬреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдРрдк рдореЗрдВ pdf.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдмрдХрд╡рд╛рд╕ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдпрд╛ рдмрд╕ рд╣рд╛рд░ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд┐рдирд╛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ @types/pdf рд╕реЗ @types/pdfjs-dist рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╣рд░ рдЬрдЧрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ pdfjs-dist рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрд╡-рдирд┐рд╣рд┐рдд, рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реА рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реЛред

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

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ? рдЖрдк рдЗрд╕реЗ рдЕрднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реИ?

рдбрд┐рд╕реНрдкреНрд▓реЗ/рдПрдкреАрдЖрдИ.рдЬреЗрдПрд╕ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдпрд╣ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХрд░ рдЪреБрдХрд╛ рд╣реИред рд╣рдо рд╢реИрд▓реА рдХреЛ https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВрдЧреЗред api.js рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд┐рдВрдХ рдореЗрдВ рд░рдЦрдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдмрд╛рдж рдХреЗ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ pdf.d.ts рдХреЛ pdfjs-dist/build/pdf.js рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рди рдХрд┐ src/рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдЯрд╛рдЗрдк рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╛рдЗрд▓реНрд╕" рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рдХрд╛рдо рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЦреБрдж рдХреЛ "рдЯрд╛рдЗрдк рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╛рдЗрд▓реНрд╕" рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк "рдЯрд╛рдЗрдк рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╛рдЗрд▓реНрд╕" рдХреЗ рдмрд┐рдирд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдерд░реНрдб рдкрд╛рд░реНрдЯреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм "рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдЯрд╛рдЗрдк рдХрд░реЗрдВ" рдЙрдкрд▓рдмреНрдз рд╣реЛрдВ, рддреЛ рдЖрдк рдерд░реНрдб рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рдореГрджреНрдз рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html "рдЯрд╛рдЗрдк рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╛рдЗрд▓реНрд╕" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдВрд╕рд╛рдзрди рд╣реИред

рдореИрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдпрджрд┐ рдЖрдк рдПрдирдкреАрдПрдо рдкрд░ "рдЯрд╛рдЗрдк рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╛рдЗрд▓" рднреА рдЙрдкрд▓рдмреНрдз рдХрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ: npm рдЗрдВрд╕реНрдЯрд╛рд▓ @types/pdfjs-dist --save-dev

рдЙрдиреНрд╣реЗрдВ "@types/" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рддреГрддреАрдп-рдкрдХреНрд╖ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо .d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ pdfjs-dist рдХреЗ package.json рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ npm рдкреИрдХреЗрдЬ afaik рдореЗрдВ рд░рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ)

PS рдорддрднреЗрджреЛрдВ рдХреЗ рд▓рд┐рдП https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html рджреЗрдЦреЗрдВред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЖрдк рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде "рдЯрд╛рдЗрдк рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╛рдЗрд▓реНрд╕" рдХреЛ рдПрдХ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛ред рдЙрдиреНрд╣реЗрдВ @types/ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд░реЗрдкреЛ рдореЗрдВ рдПрдХ d.ts рдлрд╝рд╛рдЗрд▓ рд╣реИ:

рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рдкреВрд░реНрдг рдпрд╛ рд╕рдЯреАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рд╡реЗ рдЗрддрдиреЗ рдЦрд░рд╛рдм рд╣реИрдВ рдХрд┐ рдпрд╣ рд╣рдВрд╕рдиреЗ рдпреЛрдЧреНрдп рд╣реИред (рд╣рдВрд╕реЛ рддреЛ рддреБрдо рд░реЛрдУ рдордд)

рдпреЗ рдирд╡реАрдирддрдо рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реИрдВ (рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛): https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/pdfjs-dist/index.d.ts

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ:

// imports typings first
import { PDFJSStatic, PDFDocumentProxy, PDFPromise } from 'pdfjs-dist';

// then import the actual library using require() instead of import
let pdfjs: PDFJSStatic = require("pdfjs-dist");

// only then you can actually do something useful
pdfjs.getDocument('helloworld.pdf').then(function (pdf: PDFDocumentProxy ) {
  let pageNum = 1;
  renderPage(pdf, pageNum);
});

рдХреНрдпрд╛ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ PDFJSStatic рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЖрдпрд╛рдд рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдлрд┐рд░ require() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдЪрд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реИ? рдпрд╣ рдкреВрд░реА рдмрдХрд╡рд╛рд╕ рд╣реИред (рдореВрд▓ рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдкрд░рд╛рдз рдирд╣реАрдВ)

рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдкреАрдбреАрдПрдлрдЬреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрди SO рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдЬреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдРрдк рдореЗрдВ pdf.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдмрдХрд╡рд╛рд╕ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдпрд╛ рдмрд╕ рд╣рд╛рд░ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд┐рдирд╛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ @types/pdf рд╕реЗ @types/pdfjs-dist рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╣рд░ рдЬрдЧрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ pdfjs-dist рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрд╡-рдирд┐рд╣рд┐рдд, рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реА рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реЛред

@StevenLiekens рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИред рдЯрд╛рдЗрдк рдбреЗрдлрд┐рдирд┐рд╢рди рдлрд╝рд╛рдЗрд▓ @types/pdfjs-dist рдПрдХ TRAGEDY рд╣реИ ред рдЗрд╕рдореЗрдВ GlobalWorkerOptions рднреА рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ Mozilla рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдбреЗрдлрд┐рдирд┐рд╢рди рдлрд╝рд╛рдЗрд▓ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЗрддрдирд╛ рдХрдард┐рди рд╣реИ? рд╣рдо рдореЛрдЬрд╝рд┐рд▓рд╛ рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рдЯрдХреНрдХрд░ред @types/pdfjs-dist рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рднреА рдирд╣реАрдВ рд╣реИред

@types/pdfjs-dist рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдХреЛрдИ рднреА рдЯреЗрдХреНрд╕реНрдЯ рд▓реЗрдпрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдШреЛрд╖рдгрд╛ рд╡рд┐рд▓рдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдпрд╛ рд╣реИ:

declare module "pdfjs-dist" {
    export interface TextLayerRenderTask extends PDFLoadingTask<void> { }
    export interface RenderTextLayerOptions {
        textContent: TextContent;
        viewport: PDFPageViewport;
        container: HTMLElement;
    }
    export function renderTextLayer(options: RenderTextLayerOptions): TextLayerRenderTask;
}

@SandyGifford рд╣рд╛рдБ ... pdf.js рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░ рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рд╣реИрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ рдПрдХ рдЬрдирд╕рдВрдкрд░реНрдХ рднреЗрдЬрддрд╛ рд╣реВрдВ рддреЛ рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдПрдкреАрдЖрдИ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред pdf.js рдмрдврд╝рд┐рдпрд╛/рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИ рд▓реЗрдХрд┐рди рдПрдкреАрдЖрдИ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реИред рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

+1, рд╣рдореЗрдВ рдЙрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!

рдХреГрдкрдпрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╢реАрд░реНрд╖ рдЯрд┐рдкреНрдкрдгреА рдХреЛ +1 рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдореБрджрд╛рдп рд╕реЗ рд░реБрдЪрд┐ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ; рджреЗрдЦреЗрдВ #11235 рдЬреЛ рджреЛ рджрд┐рди рдкрд╣рд▓реЗ рдЖрдпрд╛ рдерд╛ рдФрд░ #11209 рдЬреЛ рдЫрд╣ рджрд┐рди рдкрд╣рд▓реЗ рдЖрдпрд╛ рдерд╛, рджреЛрдиреЛрдВ рдмреЗрд╣рддрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП JSDoc рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдХреНрдпрд╛ рдХреЛрдИ рдЕрднреА рдЯрд╛рдЗрдк рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?

10575 рдкрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕реА рддрд░рд╣ рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рдкреБрд▓ рдЕрдиреБрд░реЛрдз #12102 рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдПрдХ рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрд╛ рдЬреЛ рд░рдЦрд░рдЦрд╛рд╡ рдпреЛрдЧреНрдп рдФрд░ рдкрд░реАрдХреНрд╖рдг рджреЛрдиреЛрдВ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдореБрджрд╛рдп рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдЕрдм рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдХреЗ pdfjs-dist рд░рд┐рд▓реАрдЬ рд╣рдорд╛рд░реА JSDoc рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╢рд┐рдкрд┐рдВрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред

рди рдХреЗрд╡рд▓ рдмреЗрд╣рддрд░ рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдмрд▓реНрдХрд┐ рдмреЗрд╣рддрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рджреЛрдиреЛрдВ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ JSDoc рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рд╣рдо рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдФрд░ рднреА рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореБрджрд╛рдп рд╕реЗ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╣реИрдВред

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