Pdf.js: рдПрдХрд╛рдзрд┐рдХ рд░реЗрдВрдбрд░ () рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдПрдХ рд╣реА рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЕрдЧре░ 2018  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mozilla/pdf.js

рдирд╡реАрдирддрдо рдкреАрдбреАрдПрдлрдЬреЗрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг (2.0.550) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

рдПрдХрд╛рдзрд┐рдХ рд░реЗрдВрдбрд░() рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдПрдХ рд╣реА рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдореИрдВ рдЬрд┐рд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

function renderPage(pageNumber, renderOptions) {
                var documentId = renderOptions.documentId;
                var pdfDocument = renderOptions.pdfDocument;
                var scale = renderOptions.scale;
                var rotate = renderOptions.rotate;
                // Load the page and annotations
                return Promise.all([pdfDocument.getPage(pageNumber), _PDFJSAnnotate2.default.getAnnotations(documentId, pageNumber)]).then(function (_ref) {
                    var _ref2 = _slicedToArray(_ref, 2);
                    var pdfPage = _ref2[0];
                    var annotations = _ref2[1];
                    var page = document.getElementById('pageContainer' + pageNumber);
                    var svg = page.querySelector('.annotationLayer');
                    var canvas = page.querySelector('.canvasWrapper canvas');
                    var canvasContext = canvas.getContext('2d', {alpha: false});
                    var viewport = pdfPage.getViewport(scale, rotate);
                    var transform = scalePage(pageNumber, viewport, canvasContext);
                    var renderContext = {
                        canvasContext: canvasContext,
                        viewport: viewport,
                        transform: transform
                    };
                    // Render the page
                    return Promise.all([pdfPage.render(renderContext), _PDFJSAnnotate2.default.render(svg, viewport, annotations)]).then(function () {
                        // Text content is needed for a11y, but is also necessary for creating
                        // highlight and strikeout annotations which require selecting text.
                        return pdfPage.getTextContent({normalizeWhitespace: true}).then(function (textContent) {
                            return new Promise(function (resolve, reject) {// Render text layer for a11y of text content
                                var textLayer = page.querySelector('.textLayer');
                                var textLayerFactory = new pdfjsViewer.DefaultTextLayerFactory();
                                var textLayerBuilder = textLayerFactory.createTextLayerBuilder(textLayer, pageNumber - 1, viewport);
                                textLayerBuilder.setTextContent(textContent);
                                textLayerBuilder.render();// Enable a11y for annotations
                                // Timeout is needed to wait for `textLayerBuilder.render`
                                setTimeout(function () {
                                    try {
                                        (0, _renderScreenReaderHints2.default)(annotations.annotations);
                                        resolve();
                                    } catch (e) {
                                        reject(e);
                                    }
                                });
                            });
                        });
                    }).then(function () {// Indicate that the page was loaded
                        page.setAttribute('data-loaded', 'true');
                        return[pdfPage, annotations];
                    });
                });
            }

рдХреЛрдб рдХрд╛ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдПрдиреЛрдЯреЗрд╢рди рдЬреЗрдПрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд╣реИ:
https://github.com/instruct/pdf-annotate.js/blob/master/docs/index.js

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдпрд╣ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХрд╛ рдЕрдкрдирд╛ рдХреИрдирд╡рд╛рд╕ рд╣реЛрддрд╛ рд╣реИред рддреЛ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА рдРрд╕реА рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдорд┐рд▓рддреА рд╣реИред

рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП?

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

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

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

@atnsm рднрд╛рдИ рдХреНрдпрд╛ рдореИрдВ рдЬрд╛рди рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХреЛрдгреАрдп 2+ рдореЗрдВ рдкреАрдбреАрдПрдл-рдПрдиреЛрдЯреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ?

рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ:
https://github.com/instruct/pdf-annotate.js/blob/master/package.json

рд╡рд╣реА рд╕рдорд╕реНрдпрд╛, рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВред

react-pdf-js рдХреЗ рд╕рд╛рде рд╡рд╣реА рддреНрд░реБрдЯрд┐ рджреЗрдЦрдирд╛ рдЬреЛ pdfjs-dist рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рд░реИрдкрд░ рд╣реИред

рдирд╡реАрдирддрдо рдкреАрдбреАрдПрдлрдЬреЗрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг (2.0.550) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ #9456 рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕реЗ рдкреАрдЖрд░ #9853 рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЬреЛ рд╕рдВрд╕реНрдХрд░рдг 2.0.550 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдкрд░ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛)ред

рдореИрдВ рднреА рдРрд╕рд╛ рдХрд╣реВрдВрдЧрд╛ред рдЖрдЗрдП рдЗрд╕реЗ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдЕрдВрддрд┐рдо 2.0 рд░рд┐рд▓реАрдЬрд╝ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИ рддреЛ рд╣рдо рд╣рдореЗрд╢рд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧрддрд╛ рд╣реВрдВред рдорджрдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реБрдИ рдЬрдм рдореИрдВ рдХреЛрдгреАрдп 8 рдореЗрдВ рдкреАрдбреАрдПрдлрдЬреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЖрд╢рд╛ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИ:

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ ngOnDestroy () {
рдЕрдЧрд░ (рдпрд╣._рдкреАрдбреАрдПрдл) {
рдпрд╣._pdf.рдирд╖реНрдЯ ();
}
рдЕрдЧрд░ (рдпрд╣ред рд░реЗрдВрдбрд░ рдЯрд╛рд╕реНрдХ) {
this.renderTask.cancel ();
}
}
рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдЖрдкрдХреЛ рдбреЛрдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реА рдХреЗ рдмрдЬрд╛рдп рдЗрд╕. element.nativeElement.child[0] рджреНрд╡рд╛рд░рд╛ рдХреИрдирд╡рд╛рд╕ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд╛рдзрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд╛рдзрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдирдИ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд░рджреНрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдкреАрдбреАрдПрдл рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреНрдпрд╛ рдХреЛрдИ рдЙрд╕реА рдкреГрд╖реНрда рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рд╕реЗ, рдЖрдкрдХреЛ рджреЛ рд░реЗрдВрдбрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЬреЛ рдореИрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛) рдпрд╛ рдЙрд╕реЗ рд░рджреНрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рдХрд╛рд░реНрдп рдкрд░ cancel рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЕрднреА рднреА рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХрднреА-рдХрднреА рдПрдХ рдкреГрд╖реНрда рдЙрд▓реНрдЯрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рдХреИрдирд╡рд╛рд╕ рдкрд░ рджреЛ рд░реЗрдВрдбрд░ рдХрд╛рд░реНрдп рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред

@huannxdev рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреАрдбреАрдПрдл рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирдГ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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

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

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

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

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

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

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