次ã®HTMLã¯ããã®åé¡ã瀺ããŠããŸãã
<html>
<head>
<title>Flexpaper React/Require Sandbox</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.js"></script>
<script>
require(['pdf'], function(pdf) {
console.log('PDFJS Module: ' + pdf);
console.log('PDFJS Global: ' + window.PDFJS);
});
</script>
</head>
</html>
pdf.jsã¯ããrequireãããã³ãdefineãé¢æ°ã®ååšãæ€åºãããããã°ããŒãã«PDFJSã€ã³ã¹ã¿ã³ã¹ãèšå®ããŸããã ãã ããã¢ãžã¥ãŒã«ããŒããŒãä»ããŠãã®ã€ã³ã¹ã¿ã³ã¹ãžã®åç §ãè¿ãããšããããŸããã
äžèšã®äŸã§ã¯ãpdfããšãwindow.PDFJSãã®äž¡æ¹ãå®çŸ©ãããŠããªããããrequireã䜿çšããã¢ããªã±ãŒã·ã§ã³ã§ã©ã€ãã©ãªã䜿çšããããšã¯ã§ããŸããã ããã¯ãpdf.jsã®ããŒãã«requireã䜿çšãããŠãããã©ããã«é¢ä¿ãªãåœãŠã¯ãŸããŸãã
ããã¯ããŒãžã§ã³1.0.1040ã§ã¯æ£ããæ©èœããŸããã1.4.20ããã³1.5.188ã§ã¯å€±æããããšã«æ³šæããŠãã ããã ããã3以å€ã®ããŒãžã§ã³ã§ã¯ãã¹ãããŸããã§ãããåäœã¯ChromeãšSafariã®éã®3ã€ã®ããŒãžã§ã³ãã¹ãŠã§äžè²«ããŠããŸããã
ãpdfããšã¯äœã§ããïŒ å®å šãªäŸãæäŸã§ããŸããïŒ
確ãã«ãGithubãªããžããªãã»ããã¢ããããŠãããå®å šã«ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ããŸãã
ãªããžããªã¯æ¬¡ã®ãšããã§ãïŒ https ïŒ
'pdf'ã¯ãrequireããã®é¢æ°ã«æ»ãããšããŠããã¢ãžã¥ãŒã«åç §ã§ãã ãã®ã·ããªãªã§ã¯ãRequirejsã¯åçã«pdf.jsãããŒããããã¢ãžã¥ãŒã«åç §ããã³ãŒã«ããã¯é¢æ°ã«è¿ãããšããŠããŸãããã¢ãžã¥ãŒã«åç §ã¯èšå®ãããŠããŸããã ãã©ãŠã¶ã®ãããã¯ãŒã¯ãããã¬ãä»ããŠåçããŒããçºçããããšã確èªã§ããŸãã
pdf.jså ã®äœããã¢ãžã¥ãŒã«ããŒããŒãååšããããšãæ€åºããã°ããŒãã«PDFJSãªããžã§ã¯ããèšå®ããŠããªãããšãé€ããŠãããã¯éåžžã¯ããã»ã©å€§ããªåé¡ã§ã¯ãããŸããã ã©ã¡ããååšããªããããrequirejsãããŒãžã«ããå Žåã¯ã©ã€ãã©ãªã䜿çšã§ããŸããã
ããã¯ãrequireã䜿çšããŠãªããžã§ã¯ããããŒãããªãå Žåã§ãçºçããããšã«æ³šæããŠãã ããã ã³ã¡ã³ãã¢ãŠããããpdf.jsãžã®ã¹ã¯ãªããåç §ãããŒãžã«é 眮ããŸããã ãããrequireã®åã«é 眮ãããŠããå Žåãã°ããŒãã«ã¯é©åã«èšå®ãããŸãã ãããrequireã®åŸã«é 眮ãããŠããå Žåãã°ããŒãã«ã¯èšå®ãããŸããã
ã³ãŒãã«ã¯2ã€ã®åé¡ããããŸãã
次ã®ãããªãã®ãè©ŠããŠãã ããïŒ
require.config({paths: {'pdfjs-dist': './node_modules/pdfjs-dist'}});
require(['pdfjs-dist/build/pdf'], function(pdf) {
console.log('PDFJS Module: ' + pdf + '<br>');
console.log('PDFJS Global: ' + window.PDFJS);
});
çããéãã«ç· ãããããŸãã
ããã¯ããŒãžã§ã³1.0.1040ã§æ£ããæ©èœããããšã«æ³šæããŠãã ãã
ãã®ããŒãžã§ã³ã§ã®äœæ¥ã¯ãrequirejsãã¹ã¯ãªãããéåžžã®ã¹ã¯ãªããã¿ã°ãšããŠããŒãããããšã®å¯äœçšã§ã-require.jsãšäºææ§ãããããšã瀺ããã®ã§ã¯ãããŸãã
ã°ããŒãã«PDFJSã€ã³ã¹ã¿ã³ã¹ãèšå®ããŸã
ã°ããŒãã«PDFJSã¯å°æ¥ã®ããŒãžã§ã³ã§åé€ããããããrequirejsã䜿çšããŠããå Žåã¯ã pdf.PDFJS
/ãä»ããŠåããªããžã§ã¯ãã䜿çšã§ããŸãã
ãã€ã³ã1ã«é¢ããŠïŒ
ãã®äŸã§ã¯ãããŒãã䜿çšããŠpdf.jsãå«ããŸããã§ããã å
¬åŒãã£ã¹ããªãã¥ãŒã·ã§ã³ãããŠã³ããŒãããpdf.jsããµã³ãã«ã®ã«ãŒããã£ã¬ã¯ããªã«ã³ããŒããŸããã ãã®ããããpdfããšããŠåç
§ããã®ãæ£ããã§ãã ãããã¯ãŒã¯ãããã¬ãŒã®äŸãèŠããšãããã確èªã§ããŸãããã¡ã€ã«ãrequireã«ãã£ãŠæ£ããããŠã³ããŒããããŠããããšãããããŸãã
ãã€ã³ã2ã«é¢ããŠïŒ
ããã¯ãäŸãåçŽåããããã«è¡ãããŸããã äŸã®å
容ã«é¢ä¿ãªããåç
§ã¯æªå®çŸ©ã§ãããã©ã€ãã©ãªã¯äœ¿çšã§ããŸããã å
·äœçã«ã¯ãconsole.logã«åãæ¿ãããšãåç
§ãæªå®çŸ©ãšããŠè¡šç€ºãããŸãã
å°æ¥ã®ããŒãžã§ã³ã§åé€ãããã°ããŒãã«PDFJSã«é¢ããŠïŒ
ç§ã¯ããã§å€§äžå€«ã§ãããpdfãå®çŸ©ãããŠããªãå Žåãpdf.PDFJSãä»ããŠã©ã€ãã©ãªãã©ã®ããã«åç
§ããããšã«ãªã£ãŠããŸããïŒ
ãã®äŸã§ã¯ãããŒãã䜿çšããŠpdf.jsãå«ããŸããã§ãã
node.jsã䜿çšããŠãããšã¯æããŸããã§ããã
å ¬åŒãã£ã¹ããªãã¥ãŒã·ã§ã³ãããŠã³ããŒãããpdf.jsããµã³ãã«ã®ã«ãŒããã£ã¬ã¯ããªã«ã³ããŒããŸããã
PDF.jsã¯ã©ã€ãã©ãªã§ãããå€ãã®ãã¡ã€ã«ã§æ§æãããŠããŸããããšãã°ãpdfjs-dist / build / pdfã¢ãžã¥ãŒã«ã¯pdfjs-dist / build /pdf.workerã¢ãžã¥ãŒã«ãããŒãã§ããŸãã
ãã®ããããpdfããšããŠåç §ããã®ãæ£ããã§ãã
å®çŸ©ã«ãªã¹ããããŠãããã®ã¯äœã§ãAMDåã䜿çšããå¿ èŠããããŸããhttpsïŒ//github.com/MartinSnyder/pdfjs-with-requirejs/blob/master/pdf.js#L21ãåç §ããŠ
å®å šãªã©ã€ãã©ãªãæãrequire.configã䜿çšããŠãäžèšã®äŸãè©ŠããŸãããïŒ
å®å šãªã©ã€ãã©ãªãæãrequire.configã䜿çšããŠãäžèšã®äŸãè©ŠããŸãããïŒ
ç§ã¯ã¡ããã©ä»ãããå®äºããŸããããããŠããã¯ããªããèšã£ãããã«åããŸãã
ããã¯ãããã«ãããããŠã³ããŒããããããã£ã¹ããªãã¥ãŒã·ã§ã³ããã®ç®çã«äœ¿çšã§ããªãããšãæå³ããŸããïŒ
https://mozilla.github.io/pdf.js/getting_started/#download
ããŒããpdfjs-distãããã±ãŒãžã䜿çšããŠããéãåé¡ãããŸããããããŠã³ããŒãããããŒãžã§ã³ã¯ããã§åäœããã¯ãã§ã¯ãããŸãããïŒ
ããŒããpdfjs-distãããã±ãŒãžã䜿çšããŠããéãåé¡ãããŸããããããŠã³ããŒãããããŒãžã§ã³ã¯ããã§åäœããã¯ãã§ã¯ãããŸãããïŒ
件åãšã¯é¢ä¿ãªããšæããŸããããã®ããã±ãŒãžã®pdf.js / pdf.worker.jsãã¡ã€ã«ã䜿çšããŠãrequirejs'pdfjs-dist 'ãzip圢åŒã®å Žæã«ãã€ã³ãããããšãã§ããŸãïŒpdf.jsããã³pdf以éã§æ©èœããŸãïŒã worker.jsãã¡ã€ã«ã¯ãã«ããã©ã«ããŒã«ãããŸãïŒã
å®çŸ©ã«ãªã¹ããããŠãããã®ã¯äœã§ãAMDåã䜿çšããå¿ èŠããããŸããhttpsïŒ//github.com/MartinSnyder/pdfjs-with-requirejs/blob/master/pdf.js#L21ãåç §ããŠ
ããã¯ç§ãç§ã®ç解ããæ¬ ããŠããéèŠãªãããã§ããã æéãå²ããŠèª¬æããŠããã ãããããšãããããŸãã
ããã«ã¡ã¯ãç§ãåæ§ã®åé¡ãæ±ããŠããã®ã§ãæ°ããåé¡ãéãã€ããã¯ãããŸããããããã§è³ªåããŠãã ãããããã§åé¡ãªãããšãé¡ã£ãŠããŸãã
require.jsã䜿çšããŠhttps://github.com/mozilla/pdf.js/blob/master/examples/components/simpleviewer.jsã«åºã¥ããŠãã¥ãŒã¢ãå®è£
ããããšããŠã
ãµã³ãã«ãªããžããªã¯æ¬¡ã®ãšããã§ãïŒ https ïŒ
@Lazzi main.jsã¢ãžã¥ãŒã«ã¯AMDã«ãšã£ãŠæ¬åœã«å¥åŠã«èŠããŸããè©ŠããŠã¿ãŠãã ããïŒ
define('main', ['pdfjs-dist/build/pdf', 'pdfjs-dist/web/pdf_viewer'], function(pdfjsLib, viewer, require) {
äºææ§ã¯AMDã§ã¯ãªãã®ã§ãã©ã®ããã«æ©èœãããããããŸããã
ã¯ããAMDã§ã¯ãããŸããããrequire.jsã¯ãã®çš®ã®ã¢ãžã¥ãŒã«å®çŸ©ããµããŒãããŠããŸãïŒ http ïŒ//requirejs.org/docs/api.html#cjsmodule
ããããããªãã®ææ¡ãããå€æŽã¯ç§ã®åé¡ãä¿®æ£ããŸããã§ããã
@Lazziãªãã»ã©ãïŒ7332ãè©ŠããŠã¿ãŸãããïŒAFAIK AMDã®ååãéèŠã§ãïŒ
@yurydelendikåäœããŸãïŒ ããªãã¯ãšãŠã圹ã«ç«ã¡ãŸããã ããããšãããããŸããã
ããã¯ãrequire.configã«é 眮ããã®ãšåæ§ã«æ©èœããå¯èœæ§ããããŸã
map: {
'*': {
'pdfjs-dist/build/pdf.worker' : 'path/to/your/install/pdf.worker'
}
},
mapé¢æ°ã¯æ¬è³ªçã«ã°ããŒãã«ãªæåå眮æã§ãããã*ãã¯æåå眮æã䜿çšããäŸåé¢ä¿ã§ããäž»ã«ãä»ã®ã©ã€ãã©ãªã«ç°ãªãããŒãžã§ã³ã®ã©ã€ãã©ãªãå«ããããã«äœ¿çšãããŸãã 2ã€ã®ããŒãžã§ã³ã®JQueryã䞊è¡ããŠå®è¡ãããããªãã®ã§ãã -ã®äœ¿çšã«ã¯æ³šæããŠãã ãããæååã®çœ®æã®ã¿ãè¡ããããä»ã®äŸåé¢ä¿ã®ãã¹ãäžèŽããå Žåããããã眮æãããå¯èœæ§ããããŸãã
ãã®å Žåã®ã*ãã¯ãpdf.jsã®äž»èŠãªäŸåé¢ä¿ã«ãããªãå¯èœæ§ããããŸãã
RequireJSã§ãæ£ããåç §ã«å°ãèŠåŽããŠããã®ã§ãRequireJSæ§æã®äžéšã§ãããœãªã¥ãŒã·ã§ã³ãæ®ããŸãã
paths: {
'pdfjs-dist/build/pdf': 'myfolder/pdf.min',
'pdfjs-dist/build/pdf.worker': 'myfolder/pdf.worker.min'
}
ããªãããã®ããã«ãããè¡ããšãããªããã®åŽåè
ãžã®ãã¹ãå²ãåœãŠãå¿
èŠã¯ãããŸããPDFJS.workerSrc
ã§ææ¡ãããŠããããã«ãäŸã®ã¯ãŒã«ãŒãèªåçã«æ€åºãããŸãã®ã§ãã
ããããšã@dmaxweilerïŒ ç§ã¯åãåé¡ã«èŠåŽããŸãã-RequireJSã䜿çšããŠãããšãã«ãpdf.jsãæ£ããããŒãããã®ã«åé¡ããããŸããã ããªãã®è§£æ±ºçã¯ç§ã®ããã«åããïŒ çŽ æŽãããã ãååããã ãããããšãããããŸãã
æãåèã«ãªãã³ã¡ã³ã
RequireJSã§ãæ£ããåç §ã«å°ãèŠåŽããŠããã®ã§ãRequireJSæ§æã®äžéšã§ãããœãªã¥ãŒã·ã§ã³ãæ®ããŸãã
ããªãããã®ããã«ãããè¡ããšãããªããã®åŽåè ãžã®ãã¹ãå²ãåœãŠãå¿ èŠã¯ãããŸãã
PDFJS.workerSrc
ã§ææ¡ãããŠããããã«ãäŸã®ã¯ãŒã«ãŒãèªåçã«æ€åºãããŸãã®ã§ãã