ããã«ã¡ã¯ïŒ PDFãã¥ãŒã¢ïŒPDF.jsïŒã«çœ²åããŒã¿ãã¥ãŒïŒXadesãPadesãCadesïŒããã€å®è£ ãããããŸãã¯å®è£ ãããã©ããã«ã€ããŠé¢å¿ããããŸãã
æ¬å ·
ã¢ã¬ãã³ãããããã
SOA-X
çŸåšããã®æ©èœãå®è£ ããå·®ãè¿«ã£ãèšç»ã¯ãããŸããã ããŸãåºãŠããªãã®ã§ãåªå äºé ã§ã¯ãããŸããã ãã ããåžžã«ããå€ãã®è²¢ç®è ãæ¢ããŠããã®ã§ããã®æ©èœãè¿œå ããããããæè¿ããŸãã è¿œå ã«èå³ãããå Žåã¯ãIRCãã£ãã«ïŒ#pdfjs irc.mozilla.orgïŒã«æ°è»œã«ç«ã¡å¯ã£ãŠãã ããã
ãã¬ã³ãã³
ããã«ã¡ã¯
ãã®æ©èœã®å®è£ ã®çŸç¶ã¯ã©ããªã£ãŠããŸããïŒ
ããããšã
@ fermo111ãŸã å®è£ ãããŠããŸãããããã®ã¿ã¹ã¯ãåãã§åŒãåããŠããã人ãæå°ããŠãããŸãã
@ yurydelendikpdf.jsã§PDFãã¡ã€ã«ã®ããžã¿ã«çœ²åã衚瀺ããæ©èœãå®è£ ããããšã«èå³ããããŸãã ã©ãããã°é£çµ¡ã§ããŸããïŒ
@wolvzã¯ãIRC irc.mozilla.orgãã£ãã«#pdfjsïŒæãç°¡åã§ãïŒã§ç§ãèŠã€ããããå ¬éäŒè°ã«åå ããŠèª¿æŽããŠãã ããã
pdf.jsã§ããžã¿ã«çœ²åããµããŒãããããã«ãannotation.jsã«SigWidgetAnnotationïŒTextAnnotationãLinkAnnotationãªã©ïŒãå®è£
ããããšããŠããŸãã
眲åã¯PDFãã¥ãŒã¢ã«è¡šç€ºãããŠãããDERã§ãšã³ã³ãŒããããPKCS7ãªããžã§ã¯ãã«åã蟌ãŸããŠãã蚌ææžãæœåºããŠæ€èšŒã§ããŸã...
次ã®ã¹ãããã«ç§»ããŸããããã¯ããã¡ã€ã«ã®ã¡ãã»ãŒãžãã€ãžã§ã¹ãã確èªããããšã§ãã
ãã®ããã«ã¯ãã¡ã€ã«ã®å
容ã«ã¢ã¯ã»ã¹ããå¿
èŠããããŸã... annotation.jsããã¢ã¯ã»ã¹ã§ãããã©ããã¯ããããŸããããç解ã§ããŸããã ç§ãã§ããæåã®ããšã¯ã以äžã䜿çšããŠcore.jsã®ã³ã³ãã³ããååŸããããšã§ããã
var contentStreamPromise = this.pdfManager.ensureïŒthisã 'getContentStream'ã[]ïŒ;
var dataPromises = Promise.allïŒ[contentStreamPromise]ïŒ;
dataPromises.thenïŒfunctionïŒdataïŒ{
var contentStream = data [0];
var contents = contentStream.str.bytes;
å
容ãè¿ã;
}ïŒ;
誰ããannotation.jsã§ãã¡ã€ã«ã®å
容ãååŸããããã®æè¯ã®æ¹æ³ãæããŠããããŸããïŒ
åãã£ãŠæè¬ããŸã...
wolvzã
ãã®ç¹ã§äœãé²æ©ã¯ãããŸããïŒ
@yurydelendik @wolvz
ããžã¿ã«çœ²å衚瀺æ©èœã«éåžžã«èå³ããããŸãã wolvzã®ãªããžããªã®ã¯ããŒã³ãäœæããŠã³ãŒãããã«ãããŸããããããã䜿çšããããšãããšããrequire isnotdefinedããšãããšã©ãŒã§promiseãæåŠãããŸãã 誰ãããã®ãšã©ãŒã®åå ãšç§ããããä¿®æ£ããæ¹æ³ã説æã§ããŸããïŒ ãŸããç§ã¯ãã®æ©èœã®äœæ¥ãç¶ç¶ããããšãéåžžã«åãã§ããŸãã ç§ã¯iTextã©ã€ãã©ãªãä»ããŠJavaã§PDFãæäœããŸããããjavascriptã§PDFãæäœããããšã¯ããããŸã§è©Šããããšã®ãªãããšã§ãã ãã®æ©èœããã£ãŒã«ãã®ããã«äžã«ç§»åããããšãããšãã«ã©ãããå§ããã°ããããç解ã§ããããã«ã誰ããç§ãæ£ããæ¹åã«åããããšãã§ããããã¥ã¡ã³ã/ãã¥ãŒããªã¢ã«ã«ç§ãå°ãããšãã§ããŸããïŒ
ç§ã¯æ··ä¹±ããŠããŸãã pdfJSã§ããžã¿ã«çœ²åpdfã衚瀺ããã«ã¯ãpdf.jsã©ã€ãã©ãªã§äœãããå¿ èŠããããŸãã
ãã®çœ²åãšèšŒææžã¯äž¡æ¹ãšãpdfã§è¡šç€ºãããŸãããpdf.jsã§éããšã衚瀺ãããŸããã
@ mrpandya007 ãéçºè
ã眲åæ€èšŒæ©èœãæ©èœãããŸã§ããžã¿ã«çœ²åãé衚瀺ã«ããããšãéžæãããããããžã¿ã«çœ²åã¯è¡šç€ºãããŸããã
ç§ãæãåºããå Žåãããããåã«è¡šç€ºãããå Žåã¯ãããã§389è¡ç®ãã392è¡ç®ã«ã³ã¡ã³ãããå¿
èŠããããŸãïŒ https ïŒ
確ãã§ã¯ãããŸããããä»ã¯ãã¹ãã§ããŸããã
@wolvz ãåç
ç§ã«çããŠãã ãã....ç§ãããªããã°ãªããªãããš..ç§ã¯ããªãã«ãã®pdfããã¹ãããããã«äžããããšãã§ããŸã
ããžã¿ã«çœ²åã®é©åãªãµããŒãã¯ãŸã ãªãããããããå®è£ ããå¿ èŠããããŸãã
ç§ãã¡ã¯ããªãã®ã©ã€ãã©ãªã«äŸåããŠããããããã®ããžã¿ã«çœ²åã®åé¡ãä¿®æ£ããã®ã«äœæ¥ããããŸããã
ãã®æ©èœã¯èª°ããéçºããå¿ èŠããããçŸåšåªå 床ã®é«ãåé¡ããããããæéããããå ŽåããããŸãã
ãã¡ã€ã«ãããŠã³ããŒãããåŸãpdf.jsã§ã®ã¿ã=ãµã€ã³ã€ã³èŠåºããã®ãããªåé¡ã«çŽé¢ããŠããã®ã¯ãªãã§ããã
ä»»æã®è§£æ±ºçããé¡ãããŸãã ããã¯ãtelerikã§çæãããpdfã§ã®ã¿çºçããŸãã
@ mrpandya007ä»ã®åé¡ã®äžã«ç¡é¢ä¿ãªåé¡ãæçš¿ããªãã§ãã ããã ãã®åé¡ã«ã€ããŠå¥ã®åé¡ãéããŸãã
ç§ãåãåé¡ã«ééããŸããã ç§ã¯å¿ ããã眲åã®æ€èšŒãå¿ èŠãšããŸããããç§ã®å Žåã¯çœ²åç»åã衚瀺ããã ãã§ååã§ãã ç»åã衚瀺ããªã代ããã«çœ²åæ€èšŒãå®è£ ããããŸã§ã¯ãç»åã衚瀺ããŠãã眲åæ€èšŒãå®è£ ãããŠããŸããã眲åã¹ããŒã¿ã¹ãäžæã§ãããªã©ã®å°ããªããã¹ãã§æ³šéãä»ããæ¹ãããã§ããããã ãããã£ãŠãå°ãªããšãèŠèŠçã«ã¯ãPDFã¯ããªããæåŸ ãããã®ã瀺ããŸãã
ãã®åé¡ããã€è§£æ±ºããããã«ã€ããŠã®ã¿ã€ã ã©ã€ã³ã¯ãããŸããïŒ ãããšãå¥ã®è£œåãæ€èšããå¿
èŠããããŸããïŒ
ç§ã®ç¥ãéãããŸã 誰ãããã«åãçµãã§ããªãã®ã§ã誰ããããã«åãçµãã§ããããªããé æ ®ãªãPRãæåºããŠãã ããã
ããã«ã¡ã¯ã
å€ãã®ãŠãŒã¶ãŒã«ãšã£ãŠãããžã¿ã«çœ²åãã£ãŒã«ãã®ã¿ã衚瀺ã§ããPDF.JSããŒãžã§ã³ã§ååãªã¯ãã§ã...ãããå®è¡ã§ããããã©ãŒã¯ãã¯ãããŸããïŒ
ãããã
@DORNINEMã¯ã眲åã¢ãããŒã·ã§ã³ãé衚瀺ã«ããã³ãŒããã³ã¡ã³ãã¢ãŠãããå¿
èŠããããŸãã
ããããšã«ãããããã«ããªããæ±ãããã©ãŒã¯ããããŸãïŒ https ïŒ
@wolvz !! ã©ããããããšãã
ãã®æ©èœã¯éåžžã«ããŸãæ©èœããã®ã§ããªãå
¬åŒããŒãžã§ã³ã«ãªãã®ãçåã«æããŸãã 眲åæžã¿ã®PDFãã¡ã€ã«ïŒ1ãã6ã®ç°ãªã眲åãã£ãŒã«ãïŒã®ããã€ãã§ãã¹ããããšãããçµæã¯å®ç§ã§ãïŒ
æ¬åœã«å¿
èŠãªã®ã¯ã眲åãæ€èšŒããããšã§ã¯ãªãããããã®ãã£ãŒã«ãã衚瀺ããããšã ãšç¢ºä¿¡ããŠããŸãã 眲åã®æ€èšŒã¯ãããŒã«ã«ã®èšŒææžãªããžããªã«ã€ã³ã¹ããŒã«ãããŠããªã蚌ææžãå¿
èŠã«ãªãå ŽåãããããããµãŒããŒåŽã§è¡ãã®ãæé©ã§ãã
ããã«ã¡ã¯ã
pdf.jsãããžã¿ã«çœ²åã衚瀺ã§ããããã«ããããã«ãã³ã¡ã³ããŸãã¯ã³ã¡ã³ã解é€ããå¿ èŠãããè¡ã誰ãã説æã§ããŸããïŒ
ãã¹ãŠã®æ å ±ãããããšã:)
@maximlefebvre https://github.com/wolvz/pdf.js/commit/7df3f4fe6e21b888358fd7718cb15e3c266ba066ã«ãããšãPDF.jsã«çœ²åã衚瀺ãããã«ã¯ããã§ååã§ãã ãã ããããã¯PDF.jsããŒã ã«ãã£ãŠå®å®ãããœãªã¥ãŒã·ã§ã³ãšããŠæ€èšŒãããŠããŸãããïŒãããã£ãŠããŸã å ¬åŒã³ãŒãããŒã¹ã«å«ãŸããŠããªãããïŒãäžæçãªãœãªã¥ãŒã·ã§ã³ãšããŠæ©èœããå¯èœæ§ãããããšã«æ³šæããŠãã ããã
眲åæ€èšŒã®å®è£ ã«é¢å¿ããããŸãã @wolvzã¯ããã«
@wolvz ãããªãã®ã¬ããç解ããããã«å°ããªã¡ã¢ã
httpsïŒ// pkijsã䜿çšããŠãã©ãŠã¶ã§PDFã®çœ²åãšçœ²åæ€èšŒã®äž¡æ¹ãå®è£ ããŸãããåæã®çœ²åæ€èšŒãã¢ã¯ã ã芧ããã ããŸãããŸã PDFjsãšçµ±åããŠããŸãããããã»ã©é ããªãå°æ¥ã«ãããè¡ãã§ãããã ç§ãã¡ã®æå³ã¯ããããã®ã»ãšãã©ãOSSãšããŠãªãªãŒã¹ããçµ±åãã¹ã ãŒãºã«ããããã«å¿ èŠãªPDFjsãžã®å€æŽãè¿ãããšã§ãã
çŽ æŽããããããããšã@rmhriskïŒ ãã ããCAãã³ãã«ãã¡ã€ã«ã®äœææ¹æ³ãããããŸããã ãã®æ¹æ³ã®è©³çŽ°ã¯ãããŸããïŒ ãããpdf.jsãšçµ±åããããšãããã©ã«ãã§Adobe Root CAã«ä»å±ãã蚌ææžãã§ãŒã³ãæ€èšŒã§ãããããããã©ã°ã¢ã³ããã¬ã€ãã«ãªããšæããŸãããïŒ ãããŠãpdf.jsçµ±åã®äºå®ãããã¿ã€ã ã©ã€ã³ã¯ãããŸããïŒ ããªãã®ä»äºã¯å€§æè¿ã§ãïŒ
çŸæç¹ã§ã¯ETAãå ±æã§ããŸããããªãœãŒã¹ã«éãããããããã¯ç§ãã¡ã«ãšã£ãŠéèŠã§ãããæåã«ããã€ãã®ããè€éãªéšåãå®äºããå¿ èŠããããŸãã
ãªã³ã¯ãããã®ãšãAdobe Readerã䜿çšããŠPDFããæœåºããããšããããã€ãã®èšŒææžãè©ŠããŸãããããTypeErrorïŒUndefinedã®ãããã㣠'signature_time_stamp'ãèªã¿åããŸããããšãããšã©ãŒãåžžã«è¡šç€ºãããŸãïŒSafari / Chromeå®å®ç/ Chromeã§ïŒã«ããªã¢ïŒã
ä»é±ã¯ããŸããŸæéããããŸãã®ã§ãpdf.jsãžã®ããŒãžã«ã€ããŠäœããæäŒãã§ãããã©ããæããŠãã ããã
ãã®ãµã³ãã«ã¯åºæ¬çãªçœ²åã®ã¿ããµããŒãããŠãããçŸæç¹ã§ã¯ã¿ã€ã ã¹ã¿ã³ããLTVã¯ãµããŒãããŠããŸããã unmitigatedrisk dotcomã®rmhã§ç§ã«pingããŠãã ããã
ãããåãã£ãã åèãŸã§ã«ããã®CAãã³ãã«ãšãã®PDFãã¡ã€ã«ã䜿çšããŠãæçµçã«Chrome / Firefoxã§åäœããããã«ãªããŸããïŒãã ããSafariã¯ããã¬ãã£ãã¯ã¹ä»ãã®WebCryptoã®ã¿ããµããŒãããŠãããã
ã¯ããããããæ¥é èŸä»ãã®åé¡ã ãã§ãªããnetflixdrmã®ã±ãŒã¹ãåŠçããã®ã«ååãªwebcryptoã®ã¿ããµããŒãããŠããŸãã ããšãã°ãçæããããŒãã¢ã®å ¬éããŒããšã¯ã¹ããŒãããããšã¯ã§ããŸããïŒïŒ ããã¯ããã©ãŠã¶ã®ãµããŒããverifingããã®åªãããªãœãŒã¹ã§ã- https://diafygi.github.io/webcrypto-examples/
@viveksjain Chrome / Firefoxã§ã©ã®ããã«
Firefoxã§éçºãã©ã°ã€ã³ã䜿çšããããšããŸããããããã§ã眲åã衚瀺ãããªãããã§ãã
http://mozilla.github.io/pdf.js/extensions/firefox/pdf.js.xpi
@complience圌ã¯https://pkijs.org/examples/PDFexample.htmlã«ãããµã³ãã«ã³ãŒããPDFjsã§ã¯ãªãæ©èœãããŸãã
ããã«ã¡ã¯@complience ãç§ã¯https://github.com/viveksjain/pdf.js/tree/sig-verify-supportã§æŠå¿µå®èšŒãè¡ã£ãŠãgit clone --recursive https://github.com/viveksjain/pdf.js.git
ã䜿çšããŠè©Šãããšãã§ããŸãã ããå°ãäœæ¥ãããã°ããã®ãªããžããªãžã®ãã«ãªã¯ãšã¹ãã®æºåãã§ããŠããã¯ãã§ããããŸã æéããããŸããã
@viveksjainãããïŒ ãã«ãªã¯ãšã¹ãã®æºåãæŽãåã«ããŸã äœãå¿ èŠã§ããïŒ
+1ãã®æ©èœãå©çšã§ããããšãããããæããŸãã
ã¯ããããã¯ã³ãã¥ããã£ã«å€§ããªä»å 䟡å€ããããããå€ãã®ãŠãŒã¹ã±ãŒã¹ãžã®æãéããŸãã ããããšãããããŸããïŒïŒ
ãã®æ©èœã®+1
ãã®æ©èœã®+1
äžèšã®ãã¹ãŠã®äººã«ãããã«ã³ã¡ã³ããè¿œå ãã代ããã«ãGitHubã®æ°ãã+1ãªã¢ã¯ã·ã§ã³ãã¿ã³ãå©çšããŠãã ããã
+1ãã®æ©èœæ§
ðãã®æ©èœæ§ã«ã¯+1
ç¹°ãè¿ãã«ãªããŸãããäžéšã®ã³ã¡ã³ãã«ããGitHubã®ãªã¢ã¯ã·ã§ã³ãã¿ã³ã䜿çšããŠããã®æ©èœã«è³æããŠãã ãããããã«ãããåé¡ã«åªå é äœãä»ããããšãã§ããŸãã ã+1ãã³ã¡ã³ããè¿œå ãããšãéçºè ã«äžèŠãªéç¥ãçºçããŸãã
ãTypeErrorïŒundefinedã®ãããã㣠'signature_time_stamp'ãèªã¿åããŸããã @viveksjainã®ãã©ã³ãã
+1ã ãã®æ©èœãåŸ ã£ãŠããŸãïŒ..
ãã®æ©èœã¯ãã€å©çšå¯èœã«ãªããŸããïŒ viveksjainã®é²è¡ã¯ã©ããªããŸãããïŒ
@complienceããã«ã¡ã¯ã httpsïŒ//github.com/viveksjain/pdf.js/tree/sig-verify-supportã§æŠå¿µå®èšŒãè¡ã£ãŠãïŒ //github.com/viveksjain/pdf.js.gitã䜿çšããŠè©Šãããšãã§ã
@lexcorpæ®å¿µãªãããããã¯ç§ã®åã®ã¡ãã»ãŒãžã®åŸãç§ã«ãšã£ãŠåªå 床ãäœããªããŸããã ç§ã¯ãããåé¿ã§ãããã©ããã確èªããŸãããç§ãå®ãããšãã§ããªãçŽæãããã€ããã¯ãããŸããâŠ
ãã®ããŒãžã§ã³ãã³ã³ãã€ã«ããããšããŠããŸãïŒ https ïŒ
ã³ãã³ããå
¥åãããšïŒ node make generic
ã¡ãã»ãŒãžã衚瀺ãããŸãïŒ ###æ¡åŒµãã«ãçªå·ãååŸããŠããŸã
ãããŠãã³ã³ãã€ã«ããã»ã¹ã¯å®è¡ãããŸãã
ãã®ãšã©ãŒã解決ããã«ã¯ã©ãããã°ããã§ããïŒ
ç§ã¯äœãééã£ãããšãããŠããŸããïŒ
ã³ã³ãã€ã«ãçµäºããŠã¿ãŸãããïŒ
@lexcorpãŸã èå³ãããå Žåã¯ãå°ãªããšãç§ã®ããŒãžã§ã³ã¯ã³ã³ãã€ã«ããã®ã«ååã«æŽæ°ãããŠããŸãã ïŒ+1ïŒ
ããã«ã¡ã¯Vivekãã¯ãç§ã¯ãŸã èå³ããããŸããããããšã...
2016幎12æ12æ¥12æ55åGMT-06ïŒ00ã°ã¹ã¿ãZambonin [email protected] ïŒ
@lexcorp https://github.com/lexcorpãŸã èå³ãããå Žåã¯ã
å°ãªããšãç§ã®ããŒãžã§ã³ã¯ã³ã³ãã€ã«ããã®ã«ååæŽæ°ãããŠããŸãã ðâ
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/mozilla/pdf.js/issues/1076#issuecomment-266518165 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AFfB-LbmIVIrJLnxwJlm8aDITDKh5tWLks5rHZi5gaJpZM4BlvMP
ã
ããã°ã¹ã¿ããããããšã...
2016幎12æ12æ¥12æ55åGMT-06ïŒ00ã°ã¹ã¿ãZambonin [email protected] ïŒ
@lexcorp https://github.com/lexcorpãŸã èå³ãããå Žåã¯ã
å°ãªããšãç§ã®ããŒãžã§ã³ã¯ã³ã³ãã€ã«ããã®ã«ååæŽæ°ãããŠããŸãã ðâ
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/mozilla/pdf.js/issues/1076#issuecomment-266518165 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AFfB-LbmIVIrJLnxwJlm8aDITDKh5tWLks5rHZi5gaJpZM4BlvMP
ã
ããžã¿ã«çœ²åã®ãµããŒããpdf.jsã«çµã¿èŸŒãŸããªãçç±ã«åé¡ããããŸããïŒ
ïŒ7702ã®è°è«ã«åŸã£ãŠãã ããã
PDFjsã§ã®çœ²åæ€èšŒã®ãŠãŒã¹ã±ãŒã¹ã«ã€ããŠäººã ããèããŠã¿ãããšæããŸãã ãŠãŒã¹ã±ãŒã¹ãpeculiarventures.comã®ryanã«ã¡ãŒã«ã§éã£ãŠãã ããã
PDFjsã«ãµã€ã³ã€ã³ããããã®ãŠãŒã¹ã±ãŒã¹ã«ã€ããŠããèãããããšæããŸãããã®ã·ããªãªã«é¢å¿ãããå Žåã¯ããŠãŒã¹ã±ãŒã¹ã«ã€ããŠããèãããããšæããŸãã
pdf.jsã®sig-verify-supportãã©ã³ãã¯IEããµããŒãããŠããããFirefoxã¯WebCryptoãååŸã§ããªãåå ãšãªã£ãŠããŸãããããã«å¯ŸåŠããããã®ã¢ã€ãã¢ã¯ãããŸããïŒ
ããã«ã¡ã¯çãã-ããžã¿ã«çœ²åã®æ€èšŒã¯ãã§ã«æ©èœããŠããŸããïŒ
ããã§åã質åïŒããžã¿ã«çœ²åã¯ã httpsïŒ//mozilla.github.io/pdf.js/getting_started/#downloadããããŠã³ããŒãã§ããææ°ã®å®å®ãããã«ãã§æ©èœããã¯ãã§ããïŒ
FWIWïŒçŸåšå©çšå¯èœãªããŒã¿ãªãªãŒã¹ããã¹ãããŸãããã眲åã衚瀺ãããŸããã ç§ãæ°ä»ãã®ã¯ããã©ãŠã¶ã³ã³ãœãŒã«ã®æ¬¡ã®è¡ã ãã§ãã
Warning: Unimplemented widget field type "Sig", falling back to base field type
ããããããžã¿ã«çœ²åã¯ãŸã å®è£ ãããŠããŸããã ããã«åãçµãæ°ããã人ã¯èª°ã§ããã«ãªã¯ãšã¹ããæåºããããšãæè¿ããŸãã ããããšãã
ãã®æ©èœã«åãçµã¿ããã§ãã 誰ããPDF.jsã®å éšã³ã³ããŒãã³ãã«é¢ããã¬ã€ãã©ã€ã³ãæããŠãããŸããïŒ
ããªãã䜿çšã§ãããããããªãäžèšã®ããã€ãã®åæã®ä»äºããããŸãã ã³ãŒãã¹ã¿ã€ã«ãšãã¹ãæé ã«ã€ããŠã¯ãå¿ ãwikiããèªã¿ãã ããã
@wolvz ïŒããã«ã¡ã¯ãviewer.jsã®ã©ã®éšåãã³ã¡ã³ã解é€ãããŸããïŒ ãªããžããªã¯pdf.jsã®å ã®ãœãŒã¹ã®ããã§ã
ãã ããã»ãšãã©ã®ãŠãŒã¶ãŒã¯å®å®ããããŒãžã§ã³ã®ãã¡ã€ã«ã䜿çšããŸãã
Mozilla Firefox 59ESRããªãªãŒã¹ããããšAdobeAcrobatãã©ã°ã€ã³ã¯å»æ¢ãããããããšã³ã¿ãŒãã©ã€ãºãŠãŒã¶ãŒã®pdf.jsã§ã¯ããžã¿ã«çœ²åã®è¡šç€ºãªã©ã®æ©èœãæ¬åœã«å¿ èŠã«ãªããŸãã
PKIjsãšPDFjsã«åºã¥ããŠãããžã¿ã«çœ²åã®æ€èšŒãšäœæãå¯èœãªããžã¿ã«çœ²åãœãªã¥ãŒã·ã§ã³ãå®è£ ããŸããã ããã§ãç±³åœã®ããžã¿ã«çœ²åæ³ã衚瀺ããäŸãèŠãããšãã§ã
ãã¥ãŒã¢ã¯çŸåšãeIDASä¿¡é Œãªã¹ãã®CAãšãMozillaãä¿¡é ŒããS / MIMEçºè¡è ãä¿¡é ŒããŠããŸãã
åé¡ãçºçããå Žåã¯ããµã³ãã«ãã¡ã€ã«ãæ·»ããŠ[email protected]ãŸã§ã¡ãŒã«ã§ã
@rmhrisk githubãªããžããªã«ãµã³ãã«ã³ãŒããæäŸã§ããŸããïŒ
@xrkolovos眲åãšæ€èšŒäœæ¥ãè¡ãããã«å¿ èŠãªäœæ¥ã®å€§éšåã¯ããªãŒãã³ãœãŒã¹ã§ãã ããã¯ã https://github.com/PeculiarVentures/PKI.js ã https://github.com/PeculiarVentures/ASN1.js ã https://github.com/PeculiarVentures/xadesjs/ ã https://github.com / PeculiarVentures / tl-create ãããã³https://github.com/PeculiarVentures/webcrypto-linerã
ãŸããPDFã§èš±å¯ãããŠããããŸããŸãªçš®é¡ã®çœ²åãäœæã§ããããã«ïŒã¬ã³ããªã³ã°ã«ã¯PDFjsã䜿çšããŠããŸããïŒç¬èªã®PDFã©ã€ãã©ãªãäœæããããšã«ãªããŸããã ãã®ã©ã€ãã©ãªã¯æçµçã«å ¬éãããŸãããçŸæç¹ã§ã¯å ¬éããæºåãã§ããŠããŸããã
ãã¥ãŒã¢ãžã®ãœãŒã¹ã¯å ¬éãããŸããããäžèšã®ã©ã€ãã©ãªã䜿çšãããšã誰ããèªåã®ãã¥ãŒã¢ã§æ€èšŒãåçŸã§ããŸãã ãããè¡ãæ¹æ³ã®åºæ¬çãªäŸãããã«ãããŸãïŒ https ïŒ
ãã€pdf.jsãšããŒãžãããŸããïŒ
@AarbelçŸæç¹ã§ã¯ãç°¡åã«ããŒãžã§ããããã«ãªãã¡ã¯ã¿ãªã³ã°ããæéãèŠã€ããææã¯ããããŸããããPDFjsã§èªåèªèº«ãèŠã€ããããšã確èªããããšæããŸãã ããã¯èšã£ãŠããPDFjsããŒã ã¯ä»¥åãå¿ èŠãªäŸåé¢ä¿ã®ããã«ãã®æ©èœãè¡šããµã€ãºã«ã€ããŠæžå¿µãè¡šæããŠããŸããã ãããæžå¿µäºé ã§ããéãããã®äœæ¥ãè¡ãããã«ãšã³ãžãã¢ãªã³ã°æéãè²»ããããšã¯æå³ããããŸããã
ç§èŠã§ã¯ãFirefox 59ïŒESRïŒããªãªãŒã¹ãããåã«å®è£ ããªããšãChromeãŸãã¯Edgeãããžã¿ã«çœ²åãèªã¿åãããšãã§ããã°ãäŒæ¥å ã§Firefoxãçµäºããããšãæå³ããŸãã
@FrenchHopeã©ã¡ãã®
ãã®æ©èœã«é¢ããæŽæ°ã¯ãããŸããïŒ
@Snuffleupagus @yurydelendik @timvandermeij ïŒ :)
https://github.com/mozilla/pdf.js/pull/7702#pullrequestreview -4866355ã§èª¬æããããã«ãæåã®ã¹ãããã¯ãã«ã¹ã¿ã PKI / cryptoãPDF.jsãšçµ±åã§ããæœè±¡APIãäœæããããšã§ãã
@rmhriskChromeãŠãŒã¶ãŒã¯æ°ã«ã
å€ãã®äŒæ¥ãä»Windows10ã«ç§»è¡ããŠããŸã...
EdgeãIEãã§ããŸããã
@rmhrisk IEã¯ãAdobe Acrobat
ç·šéïŒEdgeã¯ããžã¿ã«çœ²åã衚瀺ã§ããŸãããAdobe AcrobatReaderã®ããã«çœ²åã®æå¹æ§ãéç¥ããŸããã
ActiveXã¯éæšå¥šã«ãªããæçµçã«ã¯æ©èœããªããªããŸãã
Edgeã¯ã眲åã®ã¹ããŒã¿ã¹ã«é¢ä¿ãªãã泚éã«ç»åã衚瀺ããããžã¿ã«çœ²åãã¹ããŒããŸããã
ããã«ã¡ã¯ããã®æ©èœã®çŸåšã®ã¹ããŒã¿ã¹ã¯äœã§ããïŒ
çŸåšã¯åãçµãã§ããŸããããæè¿èª°ããIRCã§äžèšã®ã³ãŒãã«èå³ã瀺ããŸããã æåã®ã¹ãããã¯ãå®éã«ã¯https://github.com/mozilla/pdf.js/issues/1076#issuecomment-374244765ã§ãã
ããã«ã¡ã¯ãDic 2018ã2019ã®ããã«ããã®APIããªãªãŒã¹ããäºå®ã®æ¥ä»ã¯ãããŸããïŒ
ã¡ãªã¿ã«PDFãã¥ãŒã¢ãããããšããçŽ æŽãããäœå
äžèšã®ç°¡åãªä¿®æ£ãå®è£ ãããã£ãã®ã§ãã...次ã®è¡ãã³ã¡ã³ãã¢ãŠãããŸãã
// Hide signatures because we cannot validate them.
if (data.fieldType === 'Sig') {
_this2.setFlags(AnnotationFlag.HIDDEN);
}
ãã ããããã«ããã³ã³ãœãŒã«ã§ãšã©ãŒãçºçããŸãïŒutil.jsïŒ418ããïŒã ãã®åé¡ã®åå ãç¥ã£ãŠãã人ã¯ããŸããïŒçœ²åã衚瀺ãããŠãããšããäºå®ä»¥å€ïŒïŒ
ãšã©ãŒïŒ
Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': function nonSerializableClosure() {
return nonSerializable; // creating closure on some variable
} could not be cloned.
at eval (http://localhost:8888/src/shared/util.js:418:20)
@brianholle
ç§ã¯è©ŠããŸããããããŠããªããã³ã¡ã³ãã¢ãŠããããªã
if (data.fieldType === 'Sig') {
warn('unimplemented annotation type: Widget signature');
// this.setFlags(AnnotationFlag.HIDDEN);
}
ãã«ããããpdf.worker.jsã§ãããã¯æ©èœããŸãã
å°ãªããšããã®ããã®ãªãã·ã§ã³ãæäŸããã®ã¯è¯ãããšã§ãã ããšãã°ãç§ãã¡ã®å Žåã以åã«çœ²åãæ€èšŒããŠããããã眲åãæå¹ã§ããããšã¯ãã§ã«ããã£ãŠããŸãã
@strazovanããããšãããããŠåæããã default_preferences.jsonã§èšå®ã§ãããã©ã°ãäœæããŸããã èå³ãããã°ããããã®å€æŽãæçš¿ã§ããŸãïŒ
@brianholleããã«ã¡ã¯ãç§ã¯ããªãã®äŸã«åŸããŸãã ãã®ã³ãŒãã§æ³šéãä»ããããŠãããšãchromeã¯æ£åžžã«è¡šç€ºãããŸãããIEãã©ãŠã¶ã®ããžã¿ã«çœ²åãããç»åã¯ããã¹ããèŠãé ããŸãã
@hanxiaodaoããããã³ã°ã³ãŒããã³ã¡ã³ãã¢ãŠããããšããããªãã¯ãããèšã£ãŠããŸãïŒ
if (data.fieldType === 'Sig') {
warn('unimplemented annotation type: Widget signature');
// this.setFlags(AnnotationFlag.HIDDEN);
}
IEã§ã®è¡šç€ºã«åé¡ããããŸããïŒ
@brianholleãè¿äºããããšãããããŸãã ç§ã¯ããªãã®äŸã«åŸããŸãããIE11ã«åé¡ããããŸãããããžã¿ã«çœ²åã®èµ€ãç« ãããã¹ãã®å
容ãèŠãé ããŠããŸãã
ããã¯ã¯ãã ãžã®åœ±é¿ã§ãã
ããã¯IE11ãžã®åœ±é¿ã§ãã
眲åã®æ€èšŒã«äœããã®åªåãæãããå Žåãã¡ã³ããããèŠç©ãããåŸãããšãã§ããŸããïŒ
çŸæç¹ã§ã¯åªå äºé ã§ã¯ãããŸãããã誰ããããã«è²¢ç®ãããå ŽåïŒå®è£ æ¹æ³ã«ã€ããŠã¯äžèšã®ã³ã¡ã³ããåç §ïŒãPDF.jsã«çµ±åããããšãæ€èšããŸãã
ãŸããæ€èšŒã§ããªãããžã¿ã«çœ²åã®è¡šç€ºã«ãé¢å¿ããããŸãã æ·»ä»ã®äŸãã芧ãã ããã
Verpf-ErklÀrg-Bundesdatenschutz-Sig.pdf
ç§ãã³ã¡ã³ããããšãïŒ
ifïŒdata.fieldType === 'Sig'ïŒ{
// this.setFlagsïŒAnnotationFlag.HIDDENïŒ;
}
ãšã©ãŒïŒ
message_handler.js:87 Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': #<DedicatedWorkerGlobalScope> could not be cloned.
at eval (http://localhost:8888/src/shared/message_handler.js:87:21)
ãããŠããªããdiv.annotationLayerããã¬ã³ããªã³ã°ããªãã®ã§ããïŒ
ã¯ã¯ã¯ãç§ã¯ãããç¥ã£ãŠããŸã...ããã¯ïŒ10350ã«é¢é£ããŠããŸãã ãããã£ãŠããã®è¡ã«ã³ã¡ã³ãããå¿
èŠããããŸãã
// this.setFlagsïŒAnnotationFlag.HIDDENïŒ;
ãã®åŸã次ã®è¡ãè¿œå ããŸãã
data.fieldValue = null;
ã·ãŒã«è¡šç€ºã¹ã€ãããå¶åŸ¡ããutil.jsãæå¹ã«ããããã«pdfãŸãã¯pdf_viewerãæ§æããã«ã¯ã©ãããã°ããã§ããïŒ INVISIBLE 0x01ãHIDDEN 0x02ã®ãããªutil.jsãã¡ã€ã«ã«ã¯ãããã€ãã®AnnotationFlagãªãã·ã§ã³ããããŸãã pdf.worker.jsã®AnnotionFlagãHIDDENããPRINTã«å€æŽããŸãã ãã®æ¹æ³ãªãã§ããããæ§æã§ããŸããïŒ
ãšãŠãçŽ æµãªæ©èœã«ãªãã¯ãã§ãã ããŸãããã°ãããã¯ããã«æ©èœã«ãªãã§ãããïŒ
誰ããããã«å¯Ÿããä¿¡é Œã§ããåé¿çãç¥ã£ãŠããŸããïŒ ãã«ãããããã¡ã€ã«ã®ç·šéã¯ãããŒã«ã«ãŸãã¯ãã¹ãç®çã§ã®ã¿æ©èœããå¯èœæ§ããããŸããããã以äžã®ããšã¯ãããŸããã
pdfjsã¯æ»ãã ãããžã§ã¯ãã§ããïŒ ãªã圌ãã¯äœå¹Žãã®éæãå¿ èŠãªæ©èœãå®è£ ããªãã®ã§ããïŒ
PDF.jsã®ã©ããã«ãããžã¿ã«çœ²åãæ€èšŒãããŠããªããšããå°ããªéç¥ã衚瀺ã§ããããã«ããããšæããŸãã Chromeã§ã¯åäœããŸãããä»ã®ãã©ãŠã¶ã§ã¯åäœããŸããã æåã®ã±ãŒã¹ãšã¯ã»ã©é ãã§ããã100ïŒ æ€èšŒãããŠããªãå Žåã§ãããããã®çœ²åã衚瀺ããããšèããŠããŸãã this.setFlagsïŒAnnotationFlag.HIDDENïŒ;ã®éšåã§pdf.worker.jsã³ãŒããå€æŽããããšããŸããã ç«ã£ãŠããã 1ã€ä»¥äžã®çœ²åãããå Žåã«ã³ã³ãããŒã衚瀺ãããdocument.getElementbyIdãæ§é ãè¿œå ããŸããã ãããããã¹ãŠã®ãã©ãŠã¶ïŒchromeãé€ãïŒã¯ãããã¥ã¡ã³ãããèªèããŸããã ããã¥ã¡ã³ããªã©ã«ããããã£ãè¿œå ãããããviewer.jsã§äœ¿çšãããªãã·ã§ã³ã¯ãããŸããïŒ getElementbyIdã«ã¯ããã«å€ãã®æ§é ããããŸãã ã©ããªå©ãã§ãçŽ æŽãããã§ãããã
æè¿ã眲åæ€èšŒããµããŒããããã¥ãŒã¢ãWebã³ã³ããŒãã³ããšiframeã«ã©ããããŸããã 䜿çšæ¹æ³ã®è©³çŽ°ã«ã€ããŠã¯ã https ïŒ
ããã¯çŽ æŽãããrmhrisk !!!
@brianholleãè¿äºããããšãããããŸãã ç§ã¯ããªãã®äŸã«åŸããŸãããIE11ã«åé¡ããããŸãããããžã¿ã«çœ²åã®èµ€ãç« ãããã¹ãã®å 容ãèŠãé ããŠããŸãã
ããã¯ã¯ãã ãžã®åœ±é¿ã§ãã
ããã¯IE11ãžã®åœ±é¿ã§ãã
IEã§ãåã質åããããŸãããããã解決ããŸãããïŒ
ç§ãã¡ã®çµç¹ã¯2000人以äžã§æ§æãããŠããŸãã Firefoxã¯PDFã®çœ²åãæ£ãã衚瀺ã§ããªããããFirefoxã§ã¯ãªãChromeã䜿çšããŠããŸãã
ããã¯Mozillaã®åªå
äºé
ã ãšæããŸãã
@wolvz ïŒããªãã®åŽã§äœãé²æ©ã¯ãããŸããïŒ
+1
+1
æè¿ã眲åæ€èšŒããµããŒããããã¥ãŒã¢ãWebã³ã³ããŒãã³ããšiframeã«ã©ããããŸããã 䜿çšæ¹æ³ã®è©³çŽ°ã«ã€ããŠã¯ã https ïŒ
@rmhrisk
ã©ã€ã¢ã³ããã®ããžã¥ã¢ã©ã€ã¶ãŒã®ããŒãžã§ã³ãã³ãã¥ããã£ã«å
¬éããããšãæ€èšããŸãããïŒ
PKIjsãšPDFjsã«åºã¥ããŠãããžã¿ã«çœ²åã®æ€èšŒãšäœæãå¯èœãªããžã¿ã«çœ²åãœãªã¥ãŒã·ã§ã³ãå®è£ ããŸããã ããã§ãç±³åœã®ããžã¿ã«çœ²åæ³ã衚瀺ããäŸãèŠãããšãã§ã
ãã¥ãŒã¢ã¯çŸåšãeIDASä¿¡é Œãªã¹ãã®CAãšãMozillaãä¿¡é ŒããS / MIMEçºè¡è ãä¿¡é ŒããŠããŸãã
åé¡ãçºçããå Žåã¯ããµã³ãã«ãã¡ã€ã«ãæ·»ããŠ[email protected]ãŸã§ã¡ãŒã«ã§ã
@rmhrisk
ã©ã€ã¢ã³ããã®ããžã¥ã¢ã©ã€ã¶ãŒã®ããŒãžã§ã³ãã³ãã¥ããã£ã«å
¬éããããšãæ€èšããŸãããïŒ
@lexcorp httpsïŒ/verify.inkãäœæããã®ã§ããã¥ãŒã¢ãç°¡åã«åã蟌ãããšãã§ããŸããããã¯Webã³ã³ããŒãã³ãã§ããã
è¿œå ã¯ç°¡åã§ãã
<html>
<body>
<verify-viewer url="https://verify.ink/assets/documents/electronic_records_and_signatures_in_commerce.pdf" show-signature-if-present="true" notify-if-not-signed="true" sign="true" download="true"></verify-viewer><script type="module" src="https://verify.ink/webcomponent/index.js"></script>
</body>
</html>
æè¿ãã«ã¹ã¿ã ã«ãŒãã¹ãã¢ã®ãµããŒããè¿œå ããŸããã
https://verify.ink/guides#root -certificates
ããžã¿ã«çœ²åã«é¢é£ããããŸããŸãªã¹ã¬ãããããé²æããªãäž»ãªçç±ã¯ã眲åã衚瀺ããããã®åææ¡ä»¶ãšããŠçœ²åãæ€èšŒã§ããªãããšã§ãããšããå°è±¡ãåããŸããã
ã眲åã®ç¢ºèªããšã眲åã®è¡šç€ºãã®2ã€ã®ãŠãŒã¹ã±ãŒã¹ãåºå¥ããããšã¯çã«ããªã£ãŠããŸããïŒ
æªç¢ºèªã®çœ²åïŒç¹å®ã®ãããžã§ã¯ãããŒã ã«ãã£ãŠè¿œå ãããèŠåãšãšãã«å¿ èŠãªå ŽåïŒã衚瀺ããã ãã§ååã§ãããŠãŒã¹ã±ãŒã¹ã¯ãããããããšæããŸãã ã³ãŒããå°ãå€æŽããã ãã§ããããã§ã«å¯èœã§ããå Žåããªã³ãŸãã¯ãªãã«åãæ¿ããããšãã§ããå ¬åŒã®æ©èœã§ã¯ãªãã®ã¯ãªãã§ããïŒ
眲åãç¡å¹ãªå Žåã«è¡šç€ºããéã®åé¡ã¯ã眲åãæå¹ã§ãããšããå°è±¡ããŠãŒã¶ãŒã«äžããããšã§ãã
ããžã¿ã«çœ²åã¯ãåæãŠã§ããçãšã¯ç°ãªãã眲åã®ä¿¡é Œæ§ãšããã«é¢é£ããæå³ã®äž¡æ¹ã瀺ãããšãç®çãšããŠããŸãã
眲åç»åãæ€èšŒããã«è¡šç€ºããããšã§ãç»åã®åãªãã³ããŒã§ããå¯èœæ§ãããå Žåã«ããããæ¬ç©ã§ããããšããŠãŒã¶ãŒã«ææ¡ããŸãã
ãããããã¹ãŠã®æå¹ãªããžã¿ã«çœ²åãPDFã§èŠèŠçã«è¡šçŸãããããã§ã¯ãããŸããããïŒ PDFã§ã¯ãç§ãç¥ãéããèŠèŠçãªè¡šçŸãªãã§çœ²åããããšãã§ããŸãã
ã©ã€ãã©ãªã®ãŠãŒã¶ãŒã¯ãèªåã®ã¢ããªã±ãŒã·ã§ã³/ãŠãŒã¹ã±ãŒã¹ã§æå¹/ç¡å¹ãªçœ²åã®è¡šç€ºãèš±å¯ãããã©ããããŸãã¯èŠåãªã©ã®è¿œå ã®æ段ãå¿ èŠãã©ãããå€æããã¹ãã§ã¯ãããŸãããïŒ ç§ãèããŠãããŠãŒã¹ã±ãŒã¹ã®1ã€ã¯ã眲åé åãèæ ®ããªããPDFã§é åãããŒã¯ããããšã§ãã æçµçãªæ€èšŒã«ã¯ä»ã®ããŒã«ãå¿ èŠã§ãããããã§ãæçãªæ§è³ªãæã€ããšãã§ããŸãã ãªãã·ã§ã³æ©èœãšããŠãã£ã¹ãã¬ã€ãæäŸããããšã®ãã¡ãªããã¯èŠåœãããŸããã
ãããããã¹ãŠã®æå¹ãªããžã¿ã«çœ²åãPDFã§èŠèŠçã«è¡šçŸãããããã§ã¯ãããŸããããïŒ PDFã§ã¯ãç§ãç¥ãéããèŠèŠçãªè¡šçŸãªãã§çœ²åããããšãã§ããŸãã
ã©ã¡ãã®ã¹ããŒãã¡ã³ããæ£ããã§ã1ïŒãã¹ãŠã®PDFã«èŠèŠçè¡šçŸãå«ãŸããŠããããã§ã¯ãããŸããïŒã»ãšãã©ã®å Žåã¯å«ãŸããŠããŸãïŒã 2ïŒPDFã¯ãããã¥ã¡ã³ãå šäœã®çœ²åãèš±å¯ããŸãã ãã ãããã®ãã°ã§ã¯ãããã¥ã¡ã³ãå šäœã®çœ²åã§ã¯ãªããããžã¿ã«çœ²åã«é¢é£ä»ããããèŠèŠçãªçœ²åã衚瀺ããããšã«é¢å¿ããããŸãã
èŠèŠçãªè¡šçŸããªãããã¥ã¡ã³ãå šäœã®çœ²åãµããŒããç³è«ããå¥ã®ãã°ãããå¯èœæ§ããããŸãããããžã¿ã«çœ²åã«ååšããPDFjsé¢é£ã®ãã°ã®ããããã§ããã«å¯Ÿããåäžã®èŠæ±ãæãåºããŸããã
ã©ã€ãã©ãªã®ãŠãŒã¶ãŒã¯ãèªåã®ã¢ããªã±ãŒã·ã§ã³/ãŠãŒã¹ã±ãŒã¹ã§æå¹/ç¡å¹ãªçœ²åã®è¡šç€ºãèš±å¯ãããã©ããããŸãã¯èŠåãªã©ã®è¿œå ã®æ段ãå¿ èŠãã©ãããå€æããã¹ãã§ã¯ãããŸãããïŒ
ç§ã¯å人çã«ãã¢ããªã±ãŒã·ã§ã³éçºè ã¯èªåã®ã¢ããªã±ãŒã·ã§ã³ã§ããããããšãäœã§ãéžæã§ããã¯ãã ãšä¿¡ããŠããŸãã
ãã ããPDF.jsã®ãããªã©ã€ãã©ãªãäœãéžæããå¿ èŠãããããšããåé¡ããããŸãã ç§ã®æèŠã§ã¯ãå®å šã§ã¯ãªãã誀解ããããããã©ã€ãã©ãªã®æçµçãªãšã³ããŠãŒã¶ãŒã«æªãã»ãã¥ãªãã£çµæããããããªãã·ã§ã³ãå ¬éããããšã¯ãã©ã€ãã©ãªãããã¥ãŒãµãŒãç°¡åã«ãã¹ãããšã§ã¯ãããŸããã
ãã®æ©èœãå®äºããå ŽåãCOVID-19ã«ãããã®æ€ç«äžã«éåžžã«åœ¹ç«ã€ãšæ³åããŠãã ããããã©ã³ã¶ã¯ã·ã§ã³ãå¥çŽãªã©ã®æ°ãæ³åããŠãã ããã
èªå® ããå®è¡ã§ãããããããŸãããããã®æ©èœãäœå¹Žãåæ»ããŠããã®ãç®æããŸãããçç±ã¯ããããŸããããä»ã®ããŒã«ãšçµã¿åããããšãå ±åäœæ¥ãããŒã ãªãã£ã¹ãªã©ã«å€§ãã«åœ¹ç«ã€ãšæããŸããç
å šããã£ãŠåãæèŠã§ãã ããžã¿ã«çœ²åã¯ãä»åŸæ°å¹Žéã§ãŸããŸã倧ããªäŸ¡å€ãæã€ããã«ãªãã§ãããã ç§ã®ãŠãŒã¹ã±ãŒã¹ã¯ãå»çæ©åšã®éçºã«äœ¿çšãããããŒã«ã§ãã ããžã¿ã«çœ²åããªããã°ãããŒã ãªãã£ã¹ã§ã®æ¥åžžæ¥åã¯éåžžã«å°é£ã«ãªããŸãã ãã®ãããã©ã€ãã©ãªã䜿çšãããããžã§ã¯ãã«ä»»ããŠããªã¹ã¯ãšé¡§å®¢äŸ¡å€ã®ãã¬ãŒããªããèŠã€ããããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«é©ããè¿œå ã®å¯Ÿçãè¬ãããããŸãã
ç§ã¯ãŸããããžã¿ã«çœ²åã確ãã«å€§ããªæ¬ ããŠããæ©èœã§ããããšã«å®å šã«åæããŸãã
ãã ããPDF.jsã®ãããªã©ã€ãã©ãªãäœãéžæããå¿ èŠãããããšããåé¡ããããŸãã ç§ã®æèŠã§ã¯ãå®å šã§ã¯ãªãã誀解ããããããã©ã€ãã©ãªã®æçµçãªãšã³ããŠãŒã¶ãŒã«æªãã»ãã¥ãªãã£çµæããããããªãã·ã§ã³ãå ¬éããããšã¯ãã©ã€ãã©ãªãããã¥ãŒãµãŒãç°¡åã«ãã¹ãããšã§ã¯ãããŸããã
ã©ã€ãã©ãªã¯ãã»ãã¥ãªãã£ãæèããå¿
èŠãããéçºè
ã«ãã£ãŠå®è£
ãããŸãã
ç§ã®åŽã§ã¯ãæ©èœãããã°ããã¡ãã眲åã衚瀺ããŸããã眲åãç¡å¹ãªå Žåã«èŠåã衚瀺ã§ããããã«ã眲åãµãŒããŒåŽããã§ãã¯ããŠæ€èšŒããŸãã
@rmhrisk
ã³ãã¥ããã£ã«ãªãŒãã³ãœãŒã¹ãæäŸããäºå®ã¯ãããŸããïŒ 1 /ããã¥ã¡ã³ããã€ã³ã¿ãŒãããäžã§å©çšã§ããããã«ãã2 /ãµãŒãããŒãã£ã«ããã¥ã¡ã³ããžã®ã¢ã¯ã»ã¹ãèš±å¯ãã3 /ãµãŒãããŒãã£ã«ãŠãŒã¶ãŒãã©ãŠã¶ã«JavaScriptãæ¿å
¥ããããšãèš±å¯ããã±ãŒã¹ã¯1ã€ããªãããã§ãã
ããã¯pdfjsãžã®çŽ æŽãããè¿œå ã«ãªãã§ãããã
@rmhrisk
ã³ãã¥ããã£ã«ãªãŒãã³ãœãŒã¹ãæäŸããäºå®ã¯ãããŸããïŒ 1 /ããã¥ã¡ã³ããã€ã³ã¿ãŒãããäžã§å©çšã§ããããã«ãã2 /ãµãŒãããŒãã£ã«ããã¥ã¡ã³ããžã®ã¢ã¯ã»ã¹ãèš±å¯ãã3 /ãµãŒãããŒãã£ã«ãŠãŒã¶ãŒãã©ãŠã¶ã«JavaScriptãæ¿å ¥ããããšãèš±å¯ããã±ãŒã¹ã¯1ã€ããªãããã§ãã
ããã¯pdfjsãžã®çŽ æŽãããè¿œå ã«ãªãã§ãããã
ãã¥ãŒã¢ã®äœæã«äœ¿çšãããã¹ãŠã®ã©ã€ãã©ãªããªãŒãã³ãœãŒã¹åããŸããã©ã€ãã©ãªã¯ããããããããã®å€ãã¯éåžžã«è€éã§ãã ããšãã°ããã¥ãŒã¢ã®èšŒææžæ€èšŒãåŠçããPKIjsããŒã¹ãèŠãŠ
ç§ãã¡ã¯èŠèŽè ããªãŒãã³ãœãŒã¹åããããšã¯ãããŸããããã®äœåãäœãã«ã¯ããªãã®æéãšæè³ãå¿ èŠã§ããããã®æéã«ã¯äŸ¡å€ããããŸãã ãã ãããããå¯èœã«ããããã«äœæãããªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã®äœ¿çšã«ã€ããŠä»ã®äººããµããŒãã§ããããšãããããæããŸãã
ReïŒ1; ãã¥ãŒã¢ã¯ãããã¥ã¡ã³ããã€ã³ã¿ãŒãããäžã«ããå¿ èŠã¯ãããŸããã
ReïŒ2; ãã¥ãŒã¢ã§ã¯ããµãŒãããŒãã£ã«ããã¥ã¡ã³ããžã®ã¢ã¯ã»ã¹ãèš±å¯ããå¿ èŠã¯ãããŸããã
ReïŒ3; Webã³ã³ããŒãã³ãããã¹ãããŠãã³ã³ããŒãã³ãã®æŽæ°ã確èªããã³å¶åŸ¡ã§ããããã«ããããšãã§ããŸãã
ç§ã¯ãŸããããžã¿ã«çœ²åã確ãã«å€§ããªæ¬ ããŠããæ©èœã§ããããšã«å®å šã«åæããŸãã
ãã ããPDF.jsã®ãããªã©ã€ãã©ãªãäœãéžæããå¿ èŠãããããšããåé¡ããããŸãã ç§ã®æèŠã§ã¯ãå®å šã§ã¯ãªãã誀解ããããããã©ã€ãã©ãªã®æçµçãªãšã³ããŠãŒã¶ãŒã«æªãã»ãã¥ãªãã£çµæããããããªãã·ã§ã³ãå ¬éããããšã¯ãã©ã€ãã©ãªãããã¥ãŒãµãŒãç°¡åã«ãã¹ãããšã§ã¯ãããŸããã
ã©ã€ãã©ãªã¯ãã»ãã¥ãªãã£ãèªèããŠããå¿ èŠãããéçºè ã«ãã£ãŠå®è£ ãããŸãã
ç§ã®åŽã§ã¯ãæ©èœãããã°ããã¡ãã眲åã衚瀺ããŸããã眲åãç¡å¹ãªå Žåã«èŠåã衚瀺ã§ããããã«ã眲åãµãŒããŒåŽããã§ãã¯ããŠæ€èšŒããŸãã
ãããã¹ãããšããããã¯2ã€ã®ç°ãªããã®ã§ãã 眲åãç¡å¹ãŸãã¯ä¿¡é Œã§ããªããšãã«çœ²åç»åã衚瀺ããããšã¯ãçµæãå®å šã«ç解ããã«èª°ããäžãå¯èœæ§ã®ããçš®é¡ã®æ±ºå®ã®è¯ãäŸã§ãã
ãã®æ©èœãå®äºããå ŽåãCOVID-19ã«ãããã®æ€ç«äžã«éåžžã«åœ¹ç«ã€ãšæ³åããŠãã ããããã©ã³ã¶ã¯ã·ã§ã³ãå¥çŽãªã©ã®æ°ãæ³åããŠãã ããã
èªå® ããå®è¡ã§ãããããããŸãããããã®æ©èœãäœå¹Žãåæ»ããŠããã®ãç®æããŸãããçç±ã¯ããããŸããããä»ã®ããŒã«ãšçµã¿åããããšãå ±åäœæ¥ãããŒã ãªãã£ã¹ãªã©ã«å€§ãã«åœ¹ç«ã€ãšæããŸããç
ãããããã¥ãŒã¢ãå¯èœã«ãããã¹ãŠã®ã©ã€ãã©ãªãäœæããŠãªãŒãã³ãœãŒã¹åããçç±ã§ããããšã«å®å šã«åæããŸãã ãŸãããã¥ãŒã¢ãç¡æã§äœ¿çšã§ããããã«ããŠããã®ããã®ããã§ãã
ç§ãã¡ãè¡ã£ãäœæ¥ã®ãããã§ã誰ããç§ãã¡ãè¡ã£ããã¥ãŒã¢ã®äœæ¥ãã¯ããã«å°ãªãåŽåã§ç¢ºå®ã«åäœæããé¢é£ããPRãPDFjsã«éä¿¡ã§ããã®ã§ããããã®PRãã³ãŒãã¬ãã¥ãŒããããšãã§ããŸãã
眲åã®æå¹æ§ãé¢ä¿ããªãã³ã³ããã¹ãã§ãAngular CLIã¢ããªã«PDFã衚瀺ããå¿
èŠããããŸããéèŠãªã®ã¯ãæ£ç¢ºã«è¡šç€ºããããšã ãã§ãã
ç§ã®ãã¹ãã±ãŒã¹ã¯ãAdobeããã®ããžã¿ã«çœ²åä»ãã®ãµã³ãã«PDFã§ããã
ç§ã¯ãã§ã«å€ãã®çããè©Šããã®ã§ã以äžã«ç§ã®ç 究ã®çµæãèŠçŽããŸãã
ç§ãèŠãäžã§æãäžè¬çãªçãã¯ãpdf.worker.jsã®æ¬¡ã®è¡ïŒ48353è¡ãã48355è¡ïŒã«ã³ã¡ã³ãããããšã§ãã
if (data.fieldType === 'Sig') {
//this.setFlags(AnnotationFlag.HIDDEN);
}
ããããããã¯ããŸããããŸããã§ããã
pdfjs-distã®annotation.jsã®æ¬¡ã®è¡ã«çŽæ¥ã³ã¡ã³ãããããšãæ©èœããŸããã§ããïŒ285è¡ç®ãã287è¡ç®ïŒã
case 0:
this.color = null;
break;
äžããããã³ãŒãè¡ãé
眮ããæ¹æ³ãããããªãã£ããšããŠãããããæ©èœããŸããã§ããã
(<any>window).pdfWorkerSrc = '<path_to_file>/pdf.worker.js';
å°ãªããšãããŒãžå ã®æ³šéãååŸããããšããŸãããããã¹ãŠã®ããŒãžã空ã®é åãè¿ããŸããã
page.getAnnotations().then(function(annotations) {
console.log('annotations loaded');
console.log(annotations);
for (let i = 0; i < annotations.length; i++) {
console.log(annotations[i].subtype);
}
}, function (reason) {
console.log(reason);
});
ç§ã®ã¢ããªã§ã¯ãPDFããã®ãŸãŸè¡šç€ºããããšãéèŠã§ãã å°ãªããšãã眲åã®å€æ¥ããåè§åœ¢ãååŸããŠã代ããã«ãã¬ãŒã¹ãã«ããŒã衚瀺ã§ããããã«ããããšæããŸãã
誰ãå©ããŠããããŸããïŒ
眲åã®æå¹æ§ãé¢ä¿ããªãã³ã³ããã¹ãã§ãAngular CLIã¢ããªã«PDFã衚瀺ããå¿ èŠããããŸããéèŠãªã®ã¯ãæ£ç¢ºã«è¡šç€ºããããšã ãã§ãã
ç§ã®ãã¹ãã±ãŒã¹ã¯ãAdobeããã®ããžã¿ã«çœ²åä»ãã®ãµã³ãã«PDFã§ããã
ç§ã¯ãã§ã«å€ãã®çããè©Šããã®ã§ã以äžã«ç§ã®ç 究ã®çµæãèŠçŽããŸãã
ããã«ã¡ã¯ãç§ã¯ããªããæåã®è©Šã¿ã§ã»ãšãã©ãããæã£ãŠãããšæããŸã...ããªãã¯ãããè©ŠããŸãããhttps://github.com/mozilla/pdf.js/issues/1076#issuecomment -446959325ïŒ
ç§ã¯ãããè©ŠããŸããïŒäœãå€ãããŸããã§ããã
ä»ã®ã¢ã€ãã¢ã¯ãããŸããïŒ
ãã®åé¡ã¯ããªãåããéãããŠããŸãããããã«åãçµãããã®çŸåšã®èšç»ã¯äœã§ããããããŠç§ãã¡ã¯ã©ã®ããã«å©ããããšãã§ããŸããïŒ
眲åã衚瀺ã§ããªãå Žåã¯ãå°ãªããšããæ¬æ¥ããã¹ãå Žæã«ãã¬ãŒã¹ãã«ããŒã®é·æ¹åœ¢ã衚瀺ããããšæããŸãã
ïŒxãy座æšãããã³çœ²åã®å¹
ãšé·ããç¥ã£ãŠããã ãã§ãïŒ
ãã¡ããã眲åã衚瀺ããããšã¯äŸç¶ãšããŠæè¯ã®ã·ããªãªã§ãïŒããäžåºŠãç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã§çœ²åã確èªããå¿ èŠã¯ãããŸããïŒã
æªç¢ºèªã®çœ²åã衚瀺ããããã®ã¬ã³ããªã³ã°ãªãã·ã§ã³ãè¿œå ãããªãã·ã§ã³ã¯ãããŸããïŒ
ãã®ããã«ããŠãpdf.jsã®ãŠãŒã¶ãŒã¯ããããã衚瀺ãããªã¹ã¯ãåããããã©ããã決å®ã§ããŸãã
ç¡å¹åãããæå·çœ²åã衚瀺ããããšã¯ã誀ã£ãŠæ€èšŒããããã®ã衚瀺ããããšãšåããããæªãããšã§ãã
https://www.pdf-insecurity.org/
ããã¯ãšã³ããµãŒãã¹ãªã©ã«ãã£ãŠçœ²åã以åã«æ£ããæ€èšŒãããŠããå Žåã¯ã©ããªããŸããïŒ
ããã¯ã眲åã¯OKã§ããããã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã«è¡šç€ºã§ããªãã£ãããšãæå³ããŸãã
眲åã衚瀺ãããã©ãããæå®ããã¬ã³ããªã³ã°ãªãã·ã§ã³ã䜿çšãããšãpdf.jsã®ãŠãŒã¶ãŒã¯äœããã®æ¹æ³ã§çœ²åãæ€èšŒããèªåã§çœ²åã衚瀺ãããã©ããã決å®ã§ããŸãã
ãŸããããã¯ããããpdfã¬ã³ããªã³ã°ã©ã€ãã©ãªã®äžéšã§ã¯ãªãã¯ããªã®ã§ã眲åæ€èšŒãæäŸããpdf.jséçºè
ã®éçºè
ã®è² æ
ãåãé€ãã§ãããã
眲åããŸã£ãã衚瀺ããªããšãpdf.jsã®ãŠãŒã¹ã±ãŒã¹ãå¶éãããŸãã
ããã¯ãšã³ããµãŒãã¹ãªã©ã«ãã£ãŠçœ²åã以åã«æ£ããæ€èšŒãããŠããå Žåã¯ã©ããªããŸããïŒ
ããã¯ã眲åã¯OKã§ããããã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã«è¡šç€ºã§ããªãã£ãããšãæå³ããŸãã眲åã衚瀺ãããã©ãããæå®ããã¬ã³ããªã³ã°ãªãã·ã§ã³ã䜿çšãããšãpdf.jsã®ãŠãŒã¶ãŒã¯äœããã®æ¹æ³ã§çœ²åãæ€èšŒããèªåã§çœ²åã衚瀺ãããã©ããã決å®ã§ããŸãã
ãŸããããã¯ããããpdfã¬ã³ããªã³ã°ã©ã€ãã©ãªã®äžéšã§ã¯ãªãã¯ããªã®ã§ã眲åæ€èšŒãæäŸããpdf.jséçºè ã®éçºè ã®è² æ ãåãé€ãã§ãããã
眲åããŸã£ãã衚瀺ããªããšãpdf.jsã®ãŠãŒã¹ã±ãŒã¹ãå¶éãããŸãã
ãµãŒããŒãšã¯ã©ã€ã¢ã³ãã®éã§æ€èšŒãè¡ãããšã¯åé¡ãããŸããã 眲åãæå¹ã§æ€èšŒæžã¿ãšããŠè¡šç€ºããããã«ãã©ã°ãå ¬éãããšããããã¬ã³ã«ãªããŸãã
ãµãŒããŒãšã¯ã©ã€ã¢ã³ãã®éã§æ€èšŒãè¡ãããšã¯åé¡ãããŸããã 眲åãæå¹ã§æ€èšŒæžã¿ãšããŠè¡šç€ºããããã«ãã©ã°ãå ¬éãããšããããã¬ã³ã«ãªããŸãã
æ€èšŒæžã¿ã®çœ²åãæ±ã£ãŠããŸãããpdf.jsã䜿çšããŠã¯ã©ã€ã¢ã³ããã©ãŠã¶ã«ïŒãããã³ã°ããã«ïŒè¡šç€ºããããšã¯ã§ããŸãã
ã§ã¯ãæ€èšŒæžã¿ã®çœ²åã®èŠèŠçè¡šçŸãã¬ã³ããªã³ã°ããããã«ãã¯ã©ã€ã¢ã³ããã©ãŠã¶ã§PDFãã¬ã³ããªã³ã°ããä»ã®ã©ã®ãªãã·ã§ã³ãææ¡ããŸããïŒ
ãããã€åã«PDFjsã«ããããé©çšããŠãå¿ èŠãªåäœããããããšãã§ããŸããïŒ
ããã¯ç§ãããããã³ã°ãã«ãã£ãŠæå³ããããšã§ãããããã¯ãŸãã«ç§ãã¡ãçŸåšãããªããã°ãªããªãããšã§ã:-(
ãªãç§ãã¡ããŸã åé¡èªäœã«ã€ããŠè³ªåããŠããã®ãããããŸããããããã¯ãã¯ç§ã«ãšã£ãŠãããŸãããããç§ã¯ãŸã å¿ èŠãšããŠããŸãã
ç§ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ã眲åã®æå¹æ§ã¯åé¡ã§ã¯ãããŸããã ãã ãããããã衚瀺ããããå°ãªããšãããã£ã³ãã¹ã®ç©ºçœéšåã ãã§ãªãããããã«äœãããããããšããŠãŒã¶ãŒã«ç¥ãããå¿
èŠããããŸãã
APIã«æªç¢ºèªã®çœ²åã«é¢ãã巚倧ãªèµ€ãèŠå段èœãä»ããŠãããã©ãããæ€èšŒã§ããªããšæ³çã«åŒ·å¶ãããŠãããã©ããããŸãã¯APIãèªåã®è²¬ä»»ã§ãããšèŠåããŠãããã©ããã¯é¢ä¿ãããŸããã
...眲åã衚瀺ããå¿
èŠããããŸãã
å°ãªããšããããã¥ã¡ã³ãäžã®çœ²åã®äœçœ®ãšãµã€ãºã確èªããŠããããããŠãŒã¶ãŒãããã«çœ²åãããã¯ãã§ãããšæžãããç°è²ã®ããã¯ã¹ããã®å Žæã«è¡šç€ºã§ããããã«ããããšæããŸãããããã®äžã«ã
çŸåšããŠãŒã¶ãŒã¯ããã¥ã¡ã³ãããã®å Žæã§çœ²åãããŠããããšãç¥ãããšãã§ããŸããã
ããã¯ããã«æªãçŒãæ»ãæ¹æ³ã§ã¯ãããŸãããïŒ
ããã¥ã¡ã³ãã®ãã¹ãŠã®ããžã¿ã«çœ²åãéæãªç°è²ã®ãã³ãã¬ãŒãããã¯ã¹ãšããŠè¡šç€ºã§ããããŒã«å€ãããã°ãããã§ååã§ããããã®æ©èœã«ãã£ãŠå«ç/ã»ãã¥ãªãã£ã®åé¡ãçºçããããšã¯ãããŸããã
ïŒãã®ã¹ã¬ããã ãã§ãããã®åé¡ã¯2012幎以æ¥ã100ãè¶ ããã³ã¡ã³ãã§ä¿çãããŠããããã§ãããã®æ©èœãåŸ ã£ãŠããã®ã¯ãç§ã ãã§ã¯ãªããšæããŸãïŒ
ç°è²ã®ããã¯ã¹ã¯ã¬ã³ããªã³ã°ãšã©ãŒã®ããã«èŠããæäŸããããµããŒããããã©ã€ã³ãéè² è·ã«ããå¯èœæ§ãéåžžã«é«ãã§ã:-)
ä»ã®ãšããåé¡ãªãåäœããŸãããæããã«éåžžã«éãããã¯ããããŸãã
éãã§ãããïŒ ããããããã¯æ©èœããåã蟌ãŸãã眲åãããŸãã¬ã³ããªã³ã°ããŸãã
ç°è²ã®ããã¯ã¹ã¯ã¬ã³ããªã³ã°ãšã©ãŒã®ããã«èŠããæäŸããããµããŒããããã©ã€ã³ãéè² è·ã«ããå¯èœæ§ãéåžžã«é«ãã§ã:-)
ã¯ããã¯ããã¯ããç§ã¯ã* pdfã«æ€èšŒã§ããªãã£ãããžã¿ã«çœ²åãå«ãŸããŠããããã衚瀺ãããªãã£ããã³ãã¬ãŒã/ç»å/ã¡ãã»ãŒãžãæå³ããŸããã ã¡ãã»ãŒãžã§èª¬æãããŠããå Žåã«ãŠãŒã¶ãŒãç解ã§ãããã®ã
- ãã©ã³ã¹ãã€ã«ããŒãžã§ã³ã§åé¡ã®è¡ã«ããããé©çšããŸãã
ç§ã¯çŸåšãnode_modulesã«pdfjs-distãã€ã³ã¹ããŒã«ãããAngular CLIã䜿çšããŠããŸãããæ°ååã«æžãããœãªã¥ãŒã·ã§ã³ã¯ç§ã®åŽã§ã¯æ©èœããããããæ©èœããŸããã§ããã
ããã«ã¡ã¯ãç§ã¯ããªããæåã®è©Šã¿ã§ã»ãšãã©ãããæã£ãŠãããšæããŸã...ããªãã¯ãã®ïŒ1076ïŒã³ã¡ã³ãïŒãè©ŠããŸãããïŒ
ç§ã¯äœããèŠéããŸãããããããšãç§ã®ã±ãŒã¹ã¯ãã®ä¿®æ£ã«ã¯ããŸãã«ãå ·äœçã§ããïŒ
ãã®ã¹ã¬ããã®èª¬æã«åŸããŸããã
https://github.com/mozilla/pdf.js/issues/4743#issuecomment -163953288
åºæ¬çã«ãã®éšåãå€æŽããŸããïŒ
// Hide unsupported Widget signatures.
if (data.fieldType === 'Sig') {
warn('unimplemented annotation type: Widget signature');
this.setFlags(AnnotationFlag.HIDDEN);
}
ããã«ïŒ
// Hide unsupported Widget signatures.
if (data.fieldType === 'Sig') {
warn('unimplemented annotation type: Widget signature');
}
'if'å šäœãåé€ã§ããããšã¯ç¥ã£ãŠããŸãããå¯èœãªéãæå°ã®ããããå¿ èŠã§ããã
ãããã ããã¯ç¢ºãã«ç§ã®åŽã§ã¯æ©èœããªãã£ãä¿®æ£ã§ãã
ã¢ããªã®äžéšã衚瀺ããŠããPDFã«æ»ã£ãããããäžåºŠããçŽããŸãã
ãŸã ç¬èªã®ããã±ãŒãžãäœæããŠããŸããããnode_modules / pdfjs-distã§ãã¡ã€ã«ãçŽæ¥å€æŽããŠããååè©ŠããŠãäœãå€æŽãããŸããã§ããã
pdf.worker.js
ãšpdf.worker.min.js
äž¡æ¹ã®ãã¡ã€ã«ãå€æŽããŸããã
ããã¯ç§ãã¡ã®ã¢ãããŒãã§å¿
èŠã§ããã
pdf.worker.js
ãšpdf.worker.min.js
äž¡æ¹ã®ãã¡ã€ã«ãå€æŽããŸããã
ããã¯ç§ãã¡ã®ã¢ãããŒãã§å¿ èŠã§ããã
ããªãã¯ç§ãèŠèœãšããŠãããããããªãåªããç¹ãæèµ·ããŸãïŒ
ä»æ¥ã¯ããããã°ããè©ŠããŠãæ©èœãããã©ããã確èªããŸãã
ããã«ã¡ã¯ç§ã¯ããªãã®ã¢ãããŒãã奜ãã§ãããããæ®å¿µãªããããã¯ç§ã®ããã«åããŸããã§ãã
ç§ã¯æ¬¡ã®ããã«è¡ãå€æŽããŸããïŒ
ãã®ã¹ã¬ããã®èª¬æã«åŸããŸããã
ïŒ4743ïŒã³ã¡ã³ãïŒåºæ¬çã«ãã®éšåãå€æŽããŸããïŒ
// Hide unsupported Widget signatures. if (data.fieldType === 'Sig') { warn('unimplemented annotation type: Widget signature'); this.setFlags(AnnotationFlag.HIDDEN); }
ããã«ïŒ
// Hide unsupported Widget signatures. if (data.fieldType === 'Sig') { warn('unimplemented annotation type: Widget signature'); }
'if'å šäœãåé€ã§ããããšã¯ç¥ã£ãŠããŸãããå¯èœãªéãæå°ã®ããããå¿ èŠã§ããã
次ã«ã gulp generic
ã§ãã«ããããã«ãããããªãœãŒã¹ã䜿çšããŸããã
pdf.worker.js
ãšpdf.worker.min.js
äž¡æ¹ã®ãã¡ã€ã«ãå€æŽããŸããã
ããã¯ç§ãã¡ã®ã¢ãããŒãã§å¿ èŠã§ããã
pdf.worker.js
ãäœæãããŸãããã pdf.worker.min.js
ãšãã£ããã£ãŠããŸãããã©ã®ããã«äœæãããã©ãã«ä¿åãããŠããŸããïŒ
äœã足ããªãã®ã§ããïŒ
ãããããé¡ãããŸã
@ ll-privaç§ãã¡ã¯èªåãã¡ã§pdf.jsãäœæããŸããã§ããã
ã³ã¡ã³ãhttps://github.com/mozilla/pdf.js/issues/1076#issuecomment-658601553ã§è¿°ã¹ãããã«ãå®éã«ãã«ãæžã¿ããŒãžã§ã³ã®pdfjs-dist
ãããŠã³ããŒããããã³ãã«ããŒãžã§ã³ã®pdf.worker.js
ããããé©çšããŸããã pdf.worker.min.js
ã
https://github.com/mozilla/pdf.js/issues/1076#issuecomment -658609803ã§ã®ç§ã®èª¬æã¯ãããããå°ãäžæ確ã§ãããç³ãèš³ãããŸããã
ãã«ãæžã¿ã®ããã±ãŒãžhttps://www.npmjs.com/package/pdfjs-distã«ããããé©çšããŠã説æãããœãªã¥ãŒã·ã§ã³ãå®è£
ããŸãã
次ã«ããããã®ããããé©çšããããŒãžã§ã³ã®pdf.worker.js
ãšpdf.worker.min.js
ã䜿çšããŠããã©ã€ããŒãpdfjs-dist
ããã±ãŒãžãå
éšã®npmãªããžããªã«ããã·ã¥ããŸããã
æåŸã«ãªããŸããããå
¬åŒã®pdfjs-dist
ããã±ãŒãžã®ä»£ããã«ããã®ããããé©çšããããŒãžã§ã³ã補åã³ãŒãã§äœ¿çšããŸããã
ããã«ãããç§ãã¡ã®ã¢ãããŒããå°ãæ確ã«ãªãããšãé¡ã£ãŠããŸãã
@PSpSynedraããããšãããããŸãã ããã¯ç§ã«ãããŸããããŸãã
ç§ã¯æ°é±éã§åããŠãã®ã¿ã¹ã¯ã«æ»ããŸããããããã§ãç§ã®åŽã§ã¯æ©èœããŸããã
ç§ã¯ä»ã®ãšããèªåã®ãã©ã€ããŒãããã±ãŒãžãäœæããŠããŸããïŒåæ§ç¯ããªãéããnode_modulespdfjs-distã®ãã¡ã€ã«ãçŽæ¥å€æŽããããšã¯æ©èœããã¯ãã§ãïŒããŒã«ã«ã§ã¯ãå€æŽãããpdf.jsãå®éã«ã€ã³ããŒãããå¿
èŠããããŸãã¢ã»ãããŸãã¯ããã±ãŒãžïŒã
ãã©ã«ãå ã®ãSigããæ€çŽ¢ãããšã4ã€ã®ç°ãªããã¡ã€ã«çµæãåŸãããŸãã
äžèšã®ããã«ã眲åãã£ãŒã«ããã¯ãªã¢ãããifãã®ã³ã³ãã³ããåé€ãããããé衚瀺ã«ãããã©ã°ãèšå®ããããã«ãããã4ã€ã®ãªã«ã¬ã³ã¹ããã¹ãŠç·šéããŸããã
äœãå€ãããŸããã§ãããgetAnnotationsïŒïŒã¯ç©ºã®é
åãè¿ããŸãããæ¢åã®çœ²åã¯ãŸã 衚瀺ãããŸããã
ãŸããã³ã³ãœãŒã«ã«ãã®ã¡ãã»ãŒãžã衚瀺ãããŸãããããã¯ãšã©ãŒã§ãèŠåã§ããããŸããïŒpdf.worker.jsïŒ2965ïŒ14ïŒïŒ
èŠåïŒå®è£ ãããŠããªããŠã£ãžã§ãããã£ãŒã«ãã¿ã€ããSigããããŒã¹ãã£ãŒã«ãã¿ã€ãã«ãã©ãŒã«ããã¯ããŸãã
ã³ãŒããèŠããšãannotation.jsãããããããŒã¹ãWidgetAnnotationã§ã©ããããŠããããšãæå³ããŸããã€ãŸããã¡ãã»ãŒãžã¯åé¡ã§ã¯ãªããåé€ãããã©ã°ã®ã¿ã§ããããã«èŠããŸãã
ç§ã¯äœãã足ããªãã®ã§ããïŒ ãã«ããã©ã«ããŒã«ããmin.jsãã¡ã€ã«ãšjsãã¡ã€ã«ãç·šéããã®ã§ã䜿çšããå¿
èŠãããã®ã§ããã¹ãŠãæ©èœããã¯ãã§ã...
@ ll- privaãšãŸãããïŒ
@Epsiomããã¯ç§ãä»ãã£ãããšã§ãããçŽ5åã§æ©èœããŸããïŒ https ïŒ
this.setFlags(AnnotationFlag.HIDDEN);
ãã³ã¡ã³ãã¢ãŠãããã ãã§ãªãã data.fieldValue=null
ãè¿œå ããå¿
èŠããããŸãã ç§ãå€æŽããå¯äžã®ãã¡ã€ã«ã¯pdf.worker.js
ãããã¯ããã®å Žåã¯pdfjs-distã©ã€ãã©ãªããã®ãã®ã§ããããããã§ã«çž®å°ãããŠããŸãã
@Epsiomãšããã§çµãããããããªãä»ã®ãã®ã
åãåé¡ãçºçããPDFã¯ãŒã«ãŒãã¡ã€ã«ãç·šéããŠãçµæãåŸãããŸããã§ããã
ç§ã®å Žåã httpsïŒ//github.com/VadimDez/ng2-pdf-viewerã䜿çšããŠAngularã¢ããªã§PDFã衚瀺ããŠã
@konumèŠåã¯ã httpïŒ// localhost ïŒ4200 / assets / vendor / pdf.worker.jsãããã®ãã®ã§ãããåã«è¿°ã¹ãããã«ããã®ãã¡ã€ã«ã®2è¡ããã§ã«ã³ã¡ã³ãã¢ãŠãããŠããŸãã
if (data.fieldType === 'Sig') {
//this.setFlags(AnnotationFlag.HIDDEN);
//data.fieldValue = null;
}
ãŸã ããžã¿ã«çœ²åã¯èŠããŸãã...
@Epsiomç§ã
@Epsiom管çããŠã衚瀺ãã眲åãååŸããŸããã pdf.worker.jsã§ãããã18480è¡ç®ã«è¿œå ããŸã
ã±ãŒã¹ãSigãïŒ
æ°ããSquareAnnotationïŒparametersïŒ;ãè¿ããŸãã
ãã®ç·ã®ããäžã®ã¹ã€ããã§ãã
ïŒ0ã_util.warnïŒïŒ 'æªå®è£
ã®ãŠã£ãžã§ãããã£ãŒã«ãã¿ã€ã "' + fieldType + '"ã' + "ããŒã¹ãã£ãŒã«ãã¿ã€ãã«ãã©ãŒã«ããã¯ããŸãã"ïŒ;
@konumç§ã®ããã«
ERROR Error: Uncaught (in promise): Object: {"message":"SquareAnnotation is not defined","stack":"AnnotationFactory_create<strong i="7">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:47999:7\nget annotations<strong i="8">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:48877:43\nLocalPdfManager_ensure/<<strong i="9">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:49204:21\nLocalPdfManager_ensure<strong i="10">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:49202:14\nPage_getOperatorList<strong i="11">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:48815:43\nwphSetupRenderPage/<<strong i="12">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:49883:13\n"}
AnnotationFactory_create<strong i="13">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:47999:7
get annotations<strong i="14">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:48877:43
LocalPdfManager_ensure/<<strong i="15">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:49204:21
LocalPdfManager_ensure<strong i="16">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:49202:14
Page_getOperatorList<strong i="17">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:48815:43
wphSetupRenderPage/<<strong i="18">@http</strong>://localhost:4200/assets/vendor/pdf.worker.js:49883:13
@Epsiomææ°ããŒãžã§ã³ã®pdf.jsã䜿çšããŠããŸããïŒ pdf.worker.jsã«ã¯ãSquareAnnotationã¯ã©ã¹ãå®çŸ©ãããŠããå¿ èŠããããŸãã
@Epsiomã¯æ確ã«ããããã«ãã³ã¡ã³ãããå¿
èŠãããã®ã¯this.setFlags(AnnotationFlag.HIDDEN);
ã®ã¿ã§ãã data.fieldValue = null;
ãååšããªãå Žåã¯è¿œå ããå¿
èŠããããŸãããã³ã¡ã³ãã¯ä»ããªãã§ãã ããã
ãŸããpdfjs-distããã±ãŒãžã䜿çšããŠããããã以åã®ã³ã¡ã³ãã«åŸã£ãŠããããçŽæ¥å€æŽããŸããã å€æŽããŠããã³ãŒããå®éã«å®è¡ãããŠããããšã確信ããŠããŸããïŒ node_modulesã«ããå Žåããã«ãã«ãã£ãŠã¯ããããã®ã¢ã»ããã®äžéšããã£ãã·ã¥ãããå€æŽãããã³ãŒããå®éã«äœ¿çšããŠããªãå¯èœæ§ããããŸãã
@kjhangianiè¿œå ãããconsole.logãã³ã³ãœãŒã«ã«è¡šç€ºãããããšãã¯ã£ãããšèŠããŠããã®ã§ãæ確ã«å®è¡ãããŸãã
ãã®ã¿ã¹ã¯ã«æ»ã£ããã data.fieldValue = null;
ãè¿œå ããŠããããæ©èœãããã©ããã確èªããŸãã
data.fieldValue = null;
if (data.fieldType === 'Sig')
ãããã¯ã«è¿œå ããäžãäžã«åããŠconsole.log("TEST")
è¿œå ããŠãäœãèµ·ãããŸããã§ããããéåžžã®Warning: Unimplemented widget field type "Sig", falling back to base field type.
åŸã«ãTESTããã³ã³ãœãŒã«ã«æ£ãã衚瀺ãããŸããã
ä»ã®ã¢ã€ãã¢ã¯ãããŸããïŒ
@Epsiom管çããŠã衚瀺ãã眲åãååŸããŸããã pdf.worker.jsã§ãããã18480è¡ç®ã«è¿œå ããŸã
ã±ãŒã¹ãSigãïŒ
æ°ããSquareAnnotationïŒparametersïŒ;ãè¿ããŸãããã®ç·ã®ããäžã®ã¹ã€ããã§ãã
ïŒ0ã_util.warnïŒïŒ 'æªå®è£ ã®ãŠã£ãžã§ãããã£ãŒã«ãã¿ã€ã "' + fieldType + '"ã' + "ããŒã¹ãã£ãŒã«ãã¿ã€ãã«ãã©ãŒã«ããã¯ããŸãã"ïŒ;
ããã¯ç§ã®ããã«åãããããªãã¯ç§ã®æ¥ãæã£ããããããšãã
@yduybyaããªãã®ãããžã§ã¯ãã¯ã©ããããæè¿ã§ããïŒ
äœãç¹å¥ãªããšã¯ãããŸããïŒ
ããªãæè¿ã§ãããpdf.jsã®ããŒãžã§ã³ãæŽæ°ããŠåè©Šè¡ããå¿
èŠããããšæããŸãã
Angular 9ã¢ããªã§pdf.jsãæŽæ°ããç°¡åãªæ¹æ³ã¯ãããŸããïŒ
ããïŒhttp://mozilla.github.io/pdf.js/build/pdf.worker.jsïŒã§æ°ããpdf.worker.jsãèŠã€ããŸãããããã®ãã¡ã€ã«ã眮ãæããã ãã§ã¯æ©èœããŸããã§ããïŒæããã«ïŒã
ãããžã§ã¯ããhttps://github.com/mozilla/pdf.js/issues/8836ããã³https://github.com/ashishyadav0019/pdfJS_angular4_Ts.gitãŸã§ããã®ãŒããŸãããããããã®ãããžã§ã¯ãã¯å€ããã¡ã€ã«ã䜿çšããŠããŸãã
pdf.jsgithubãšpdfJS_angular4_Ts.gitã®ãã¡ã€ã«ã¯çžäºã«é¢é£ä»ããããŠããŸããã
ææ°ã®ãã¡ã€ã«ã䜿çšããŠãAngular 9ãããžã§ã¯ãã«pdf.jsãæ£ããã€ã³ããŒãããæ¹æ³ãç¥ã£ãŠãã人ã¯ããŸããïŒ
@Epsiom For Angular 8ã¢ããªïŒAngular 9ã§åäœããã¯ãã ãšæããŸãïŒ https://github.com/VadimDez/ng2-pdf-viewerã䜿çšããŠã
ng2-pdf-viewer docsããïŒ
ããã©ã«ãã§ã¯ãã¯ãŒã«ãŒã¯cdnjs.cloudflare.comããããŒããããŸãã
ã³ãŒãã§ãã¯ãŒã«ãŒãžã®ãã¹ãæŽæ°ããŠãããšãã°/pdf.worker.jsã«ããŸãã
ïŒä»»æã®ãŠã£ã³ããŠïŒ.pdfWorkerSrc = '/ pdf.worker.js';
ããã¯ãpdf-viewerã³ã³ããŒãã³ããã¬ã³ããªã³ã°ããåã«èšå®ããå¿
èŠããããŸãã
ãã®ãããžã§ã¯ãã䜿çšãããšãpdfjs-distã®äŸåé¢ä¿ããããžã§ã¯ãã«è¿œå ãããŸãã squareAnnotationã®ãã³ãã䜿çšããŠnode_modules / pdfjs-dist / build /pdf.worker.jsãç·šéããŸãã
@konumããã«è§ŠçºãããŠãè€æ°ã®çç±ã§ng2-pdf-viewerã§ã¯ãªãpdf.jsãçŽæ¥äœ¿çšããŠããŸãïŒ //github.com/ashishyadav0019/pdfJS_angular4_Ts.git
pdfjs-distã®äŸåé¢ä¿ããããŸããã䜿çšãããã®ã¯src/assets/vendor/pdf.worker.js
ã§ãã
äœãæ¡ã ïŒ
@Epsiom pdf.jsãã¡ã€ã«ãšpdf.worker.jsãã¡ã€ã«ã®äž¡æ¹ãææ°ã®ã³ãŒãã«æŽæ°ããŠã¿ãŸãããïŒ
@konumãŸãã«ç§ãããããšããŠããããšã§ãããã»ãšãã©ã®ãããžã§ã¯ãã¯ng2-pdf-viewerããå¿ èŠãšããªãããã§ãpdf.jsã®ææ°ããŒãžã§ã³ã§äœ¿çšããããã¡ã€ã«ãç°ãªããããAngularã§pdf.jsã䜿çšãããããšã¯ãã£ãã«ãããŸãããããããããã»ã¹ã¯äžèŠããŠæããã§ã¯ãããŸããã
ããã«ã¡ã¯ã
this.setFlagsïŒAnnotationFlag.HIDDENïŒ;ã«ã³ã¡ã³ããã v2.6.347ã®pdf.worker.jsã§ã¯ã眲åç»åã衚瀺ãããŸããã
ããã«å€åã¯ãããŸãããïŒ
@lainosantosã¯ããå€æŽããããŸãã ãã©ãŒã ã®ã¬ã³ããªã³ã°ãç¡å¹ã«ãããšã眲åãåã³è¡šç€ºãããŸãã
@stephanrauhããããšãã
PDFViewerApplicationOptions.set('renderInteractiveForms', false);
ãã©ãŒã ãæå¹ã«ããŠçœ²åã衚瀺ããæ¹æ³ã¯ãããŸããïŒ
@lainosantosãããããã ããç¬èªã®ãã©ãŒã ãäœæããããã®åªãããŠã©ãŒã¯ã¹ã«ãŒãèŠã€ããŸããã ãã®äŸã§ã¯ã renderInteractiveForms
ãéé£ãããŠããããšãåæãšããŠããŸãã Angularã䜿çšããŠããŸãããå¥ã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠããå Žåã§ãã¢ã€ãã¢ãæœåºã§ãããšæããŸãïŒ https ïŒ
ä»ã®ãšãããã£ãšç·æ¥ã®åé¡ããããã¿ã¹ã¯ã«æéãè²»ããããšãã§ããŸãããã誰ããAngular 9ã«ææ°ã®pdf.jsããŒãžã§ã³ãã€ã³ããŒãããããšãã§ããã°ã圌ã¯ç§ã®å¿ããã®æè¬ãæ§ããŸãã
@Epsiomããã«ãããŸãïŒhttpsïŒ
@stephanrauh ...ãããšãIE11ãšäºææ§ãå¿
èŠã§ãã«ã¹ã¿ã ã¡ã€ãã®pdfãã¥ãŒã¢ãäœæããã«ã¯ãã£ã³ãã¹ãçŽæ¥äœ¿çšããã ããªã®ã§ãæ®å¿µãªããããã䜿çšããããšã¯ã§ããŸããã
ng2-pdf-viewerã䜿çšã§ããŸããããŸããpdf.jsèªäœã«ã€ããŠè³ªåããŠããŸãããããã¯éåžžã«ããããªã±ãŒã¹ã§ãã
æãåèã«ãªãã³ã¡ã³ã
äžèšã®ãã¹ãŠã®äººã«ãããã«ã³ã¡ã³ããè¿œå ãã代ããã«ãGitHubã®æ°ãã+1ãªã¢ã¯ã·ã§ã³ãã¿ã³ãå©çšããŠãã ããã