μ΅μ pdfjs λ²μ (2.0.550)μ μ¬μ©νλ©΄ λ€μ μ€λ₯κ° λ°μν©λλ€.
μ¬λ¬ render() μμ μ€μ λμΌν μΊλ²μ€λ₯Ό μ¬μ©ν μ μμ΅λλ€.
λ λλ§μ μ¬μ©νλ μ½λλ λ€μκ³Ό κ°μ΅λλ€.
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];
});
});
}
μ½λμ ν΄λΉ λΆλΆμ μ£Όμ js νλ‘μ νΈμμ κ°μ Έμ¨ κ²μ
λλ€.
https://github.com/instructure/pdf-annotate.js/blob/master/docs/index.js
보μλ€μνΌ λͺ¨λ νμ΄μ§μλ μ체 μΊλ²μ€κ° μμ΅λλ€. κ·Έλμ λλ μ μ¬μ ν κ·Έλ° μ€λ₯κ° λ°μνλμ§ λͺ¨λ₯΄κ² μ΅λλ€.
무μμ΄ μλͺ»λκ³ μ΄λλ₯Ό μ‘°μ¬ν΄μΌ ν©λκΉ?
@atnsm bro Angular 2+μμ PDF μ£Όμμ μ¬μ©νκ³ μλμ§ μ μ μμ΅λκΉ?
λ κ·Έλ κ² μκ°νμ§ μμ. λ€μμ λͺ¨λ μ’
μμ± λͺ©λ‘μ
λλ€.
https://github.com/instructure/pdf-annotate.js/blob/master/package.json
κ°μ λ¬Έμ , μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ².
pdfjs-dist
μ£Όμμ λνΌμΈ react-pdf-js
μμ λμΌν μ€λ₯κ° νμλ©λλ€.
μ΅μ pdfjs λ²μ (2.0.550)μ μ¬μ©νλ©΄ λ€μ μ€λ₯κ° λ°μν©λλ€.
μ΄ λ¬Έμ λ #9456μ μ€λ³΅μΌ κ°λ₯μ±μ΄ λ§€μ° λμΌλ©°, μ΄ κ²½μ° PR #9853( 2.0.550
λ²μ μ ν¬ν¨λ μκ°μ΄ λμ§ μμ)μ μν΄ μμ λμμ΅λλ€.
λλ κ·Έλ κ² λ§ν κ²μ΄λ€. μ΄κ²μ λ«κ³ μ΅μ’ 2.0 릴리μ€κ° μλ£λκ³ λ¬Έμ κ° λ¨μ μμΌλ©΄ μΈμ λ μ§ λ€μ μ΄ μ μμ΅λλ€.
κ°μ λ¬Έμ κ° λ°μν©λλ€. λμμ΄ νμν.
μ΄ λ¬Έμ μ λν μ λ°μ΄νΈκ° μμ΅λκΉ?
κ°λ 8μμ pdfjsλ₯Ό μ¬μ©ν λ μ΄ λ¬Έμ κ° λ°μνμ΅λλ€. ν¬λ§μ΄ λκ΅°κ°λ₯Ό λμΈ μ μμ΅λλ€.
κ³΅κ° ngOnDestroy() {
if (this._pdf) {
this._pdf.destroy();
}
if (this.renderTask) {
this.renderTask.cancel();
}
}
λ λλ§ κΈ°λ₯μμ dom λ¬Έμ λ‘ μΏΌλ¦¬νλ λμ this.element.nativeElement.children[0] μ μν΄ μΊλ²μ€ μμλ₯Ό κ°μ ΈμμΌ ν©λλ€.
μ΄ λ¬Έμ μ λν μ λ°μ΄νΈκ° μμ΅λκΉ?
λμΌν λ¬Έμ κ° μμ΅λλ€. λ¨μΌ μΊλ²μ€λ₯Ό μ¬μ©νμ¬ λ¬Έμλ₯Ό νμνκ³ μ¬μ©μλ νμν μ¬λ¬ λ¬Έμ μ€ νλλ₯Ό μ νν μ μμ΅λλ€.
λμΌν λ¬Έμ κ° μμ΅λλ€. λ¨μΌ μΊλ²μ€λ₯Ό μ¬μ©νμ¬ λ¬Έμλ₯Ό νμνκ³ μ¬μ©μλ νμν μ¬λ¬ λ¬Έμ μ€ νλλ₯Ό μ νν μ μμ΅λλ€.
μ pdf νμΌμ λ λλ§νκΈ° μ μ pdf λ λλ§ νλ‘μΈμ€λ₯Ό μ·¨μν λ€μ μ κ±°ν΄μΌ ν©λλ€.
λκ΅°κ°κ° κ°μ νμ΄μ§λ₯Ό μ·¨μνκ³ λ€μ λ λλ§νλ μ μ ν λ°©λ²μ μ€λͺ ν μ μμ΅λκΉ?
λ΄κ° λ³Έ λ€λ₯Έ λ¬Έμ μμ ν λ²μ λ κ°μ λ λλ§ μμ μ μ€ννλ λ° λμΌν μΊλ²μ€λ₯Ό μ¬μ©ν΄μλ μ λ©λλ€. κ·Έλ¦¬κ³ μ΄μ μμ μ΄ μλ£λ λκΉμ§ κΈ°λ€λ¦¬κ±°λ(νκ³ μΆμ§ μμ μμ ) μ·¨μν΄μΌ ν©λλ€.
κ·Έλ¬λ μ΄μ μμ
μμ cancel
λ₯Ό νΈμΆν΄λ νμ΄μ§κ° κ±°κΎΈλ‘ λ λλ§λλ λ¬Έμ κ° μ¬μ ν ν΄κ²°λμ§ μμ΅λλ€. μ΄λ λμΌν μΊλ²μ€μμ λ κ°μ λ λλ§ μμ
μ μ€ννλ κ²½μ° λ°μνλ κ²μΌλ‘ μΆμ λ©λλ€.
@huannxdev μ μ루μ λ pdfλ₯Ό νκ΄΄ν΄μΌ ν©λλ€. κ·Έλ¬λ λ¨μΌ νμ΄μ§λ₯Ό λ€μ λ λλ§νκΈ° μν΄ λ€μ λ‘λνκ³ μΆμ§λ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
μ΄ λ¬Έμ μ λν μ λ°μ΄νΈκ° μμ΅λκΉ?