« 2012年12月 | トップページ | 2013年2月 »

2013/01/31

pdf.jsのFirefox通常版への搭載を延期すべき10の理由

HTML5とJavaScriptによる壮大な実験?とも言うべきPDFビューアpdf.jsがもうすぐFirefoxに内蔵された状態でリリースされます。すでにFirefoxのbeta版には搭載されているのですが、Google ChromeがChrome内臓のPDF Viewerをリリースした時も突然PDFの表示が変わったと混乱が起こりましたが、それ以上の混乱がFirefoxのバージョン19がリリースされたときに起こりそうな気がします。

なお、ここでの記述は2013年1月31日現在のものです。また、Firefox 19 beta3にアドオンタイプのpdf.js 0.7.129で検証した結果です。この記事を読まれている時には既に修正されている可能性があります。Internet Explorer P+ Adobe Readerなどの組み合わせで本来はどのように表示されるべきなのかを確認できます。

●①PDFのセキュリティが無視されます。(今のところ100%)
テキストのコピー禁止を設定していても、無視されます。PDFの業界標準のルールを無視しているようであれば、結局は得なことはないように思います。

Bug 792816 - pdf.js doesn't respect document permissions
https://bugzilla.mozilla.org/show_bug.cgi?id=792816

② 文字化けする場合があります。
かなり修正されつつあるのですが、文字化けが起こる場合があります。

http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/publications/JST2007-5.pdf#page=2
Shift JIS-2004に収録されている「絵文字」の部分に漢字が出現しています。
http://www.project2061.org/publications/sfaa/SFAA_Japanese.pdf
1ページ目が完全に文字化けしています。中国語みたいです。

③ 日本語が全く表示されない場合があります。
http://www.sapid.org/html2/PDF-ja/ohkubo-SS04.pdf
英語(英数字)のみ表示されています。
http://www.eiken.or.jp/flow/pdf/ichiji.pdf
日本語だけでなく英数字も何かも表示されません。真っ白です。
http://www.jimin.jp/policy/pamphlet/pdf/kenpou_qa.pdf#page=10
自民党のPDFですが、答えの部分が見えません。
http://www.cyberagentfx.jp/gaikaex/pdf/javauninstall-7.pdf
一部の文字が見えません。
http://www.exa-corp.co.jp/techinfo/review08/03_ando.pdf
日本語が見えず、「Java」だらけです。

●④PDFファイル内のURL部分がリンクにならない場合があります。
クリックしても反応しません。コピーして貼り付けるしかありません。
http://blog.summerwind.jp/download/jssm/slide.pdf#page=2
http://www.tsukaeru.net/lp/fx/TN_A4_FX_guide_ftl_110311.pdf#page=3
http://www.es.emb-japan.go.jp/download/Presentacion_400_JAPANESE.pdf
http://www.jpeds.or.jp/saisin/saisin_1101182.pdf#page=2
http://www.spaceshower.net/PR_12.11.30.pdf

Bug 835674 - pdf.js: Links within some PDFs does not work even if I click them.
https://bugzilla.mozilla.org/show_bug.cgi?id=835674

●⑤フォームがサポートされていません。
フォームとして認識されないため、入力できません。submitもできません。
http://www.uscis.gov/files/form/i-130.pdf
Bug 739085 - Unable to view a PDF form
https://bugzilla.mozilla.org/show_bug.cgi?id=739085

⑥括弧などの文字の後のスペース(文字間隔)が変なケース
http://www.elpr.bun.kyoto-u.ac.jp/essay/tatsuo~miyajima.pdf#page=3
「(」の後ろのスペースがやけに空いている。
http://www.dnp.co.jp/news/__icsFiles/afieldfile/2012/08/09/120809_3.pdf#page=2
「(」の後ろのスペースがやけに空いている問題とともに、一部の文字が次の文字と重なっています。
http://www.cqpub.co.jp/dwm/contents/0110/dwm011000820.pdf#page=2
「(」や<"「"の後ろのスペースがやけに空いている(当該文字の前のスペースは極端に狭い)問題。
http://www.isms.jipdec.or.jp/doc/ISMS-Journal-1.pdf
「/(スラッシュ)」の後ろが詰まりすぎています。
http://www.ffaj.or.jp/outline/data/map.pdf
括弧ではなく、おそらくスペース文字かタブ文字などの処理がおかしいと思われます。文字がずれボックスの外にはみ出ています。
●⑦縦書きの文字がおかしくなっている
http://www.jcp.or.jp/web_download/seisaku/201204_teigen_panf.pdf#page=2
わかりにくいのですが、真ん中の緑の矢印の部分の縦書き文字がおかしくなっています。
http://www.jsad.or.jp/paralympic/london/pdf/directory.pdf#page=2
全体的に文字の配置がおかしいのですが、「アーチェリー」などの縦書き文字が横書きで表示されています。
http://yama2so.com/hoki/jiinkyoukai.pdf
オリジナルの文書が想像できないぐらいにカオス状態になっています。
http://www.asahi-net.or.jp/~td6i-st/fuku-cathedral/new/gat.pdf
横書きの文字はOKですが、縦書きの部分がおかしくなっています。
http://www.jaba.or.jp/taikai/2012/syakaijin/pdf/38_syakaijin.pdf
縦書きの括弧が横書きになっています。
Bug 770409 - pdf containing vertical japanese text does not render correctly
https://bugzilla.mozilla.org/show_bug.cgi?id=770409

●⑧強調されているタイトルが汚く二重になっている
ちょうど影のようになっています。ゴシック系の強調文字がこうなる傾向があるようです。このサンプルは挙げたらきりがないぐらいに多いです。
http://www.nisshinkyo.org/j251.pdf
http://www.objectclub.jp/community/codingstandard/CodingStd.pdf#page=2
http://www.pref.chiba.lg.jp/kenfudou/kensetsukouji/system/denshichoutatsu/documents/jrekakunin201126.pdf
http://www.cals.jacic.or.jp/coreconso/parts/johokoukai05_06_kaihi.pdf
http://www.searchdesk.com/help/archive_19960412.pdf
http://www.kantei.go.jp/jp/singi/asia/betten_2.pdf
http://www.nihs.go.jp/mhlw/jouhou/jp/jp15_genan_sakusei_youryou.pdf
http://navi.hamabus.jp/dia/bustime/pdfdata/510_7813_14.pdf

Bug 834237 - pdf.js: Chapter headlines in some PDFs are ugly because one headline has an overlap with another.
https://bugzilla.mozilla.org/show_bug.cgi?id=834237

⑨●「このPDF文書はサポートされていないため正しく表示できない可能性があります。・・・ほかのビューアで開く」という黄色の警告バーがやたらと表示される。本来自動で引っ込むべきただのHTMLページに戻っても、消えない場合がある。
この場合、警告バーを消す×印をクリックしても消せなかったり、「ほかのビューアで開く」というボタンをクリックしても、反応しない場合があります。本来は、Adobe Readerなどが起動すべきなのですが・・・。また、この不具合が発生すると、ブラウザのアドレス欄に表示されているURLがおかしくなっている場合があります。前に見ていたサイトのURLだったり、前に見たPDFファイルのURLになっていたりします。

Bug 834075 - pdf.js: The PDF url in the address bar becomes wrong in a certain situation.
https://bugzilla.mozilla.org/show_bug.cgi?id=834075

※2013年2月14日午前10時50分ごろ追記 
Firefox 19 beta6では修正されています。

●⑩不必要と思われる横スクロールが出現する例
http://www.ginza-church.com/news/bazar2012.pdf

●⑪なぞの墨塗りのようなものが出現する例
http://www.alpha-web.jp/service/internet/roaming/pdf/wlan-ap04.pdf

※2013年2月14日午前10時50分ごろ追記 
Firefox 19 beta6では修正されています。

●⑫ロードに時間が異様にかかる場合があります。
http://www.koryu.or.jp/nihongo/ez3_graphics.nsf/DBBDC3186266DE0049257791002967FD/$File/1-24.pdf?OpenElement
光ファイバーでも1ページ目がなかなか表示されない。しかも1ページ目の表紙の画像が正しくないです。画像が黒すぎます。
●⑬最初表示されるが消える例。
http://www.grips.ac.jp/cms/wp-content/uploads/2012/05/jlc_pamphlet.pdf

その他、リリースを遅らせるまでの理由ではないですが、
●⑭Acrobat JavaScriptが全くサポートされていない。
セキュリティ的には良いかも知れませんが、Google Chromeの内臓PDF Viewer「Chrome PDF Viewer」のように、部分的でもサポートしてもらいたかったです。

--------2013年2月14日午前10時50分ごろ追記---------
●⑮256bit暗号化PDFファイルがサポートされていません。
128bit暗号化PDFファイル(AESもしくはRC4)はOKですが、256bit暗号化PDFファイルは全く表示できません。ただ、現状、①の問題があるため、印刷禁止もテキストのコピー禁止のセキュリティも無視しているわけですから、256bit暗号化をサポートされないほうが、むしろ、ありがたいかもしれません。

▼Cannot load PDF due to unsupported encryption algorithm
https://github.com/mozilla/pdf.js/issues/2647

-----追記終了------------------------
個人的に一番困っているのが1番のバグです。次に困っているのは、9番のバグです。あと、5番と8番のバグ・未実装もかなり深刻なバグもしくは問題だと思います。

このような問題を抱えているpdf.jsだけに、Firefox 19から通常版で搭載するという予定は変更して欲しいです。こんなところで言っても仕方がないのですが・・・。MacではMac版Adobe ReaderがMac版Firefoxをサポートしていませんし、PreviewというMac標準のPDFビューアでのブラウザ内閲覧も簡単ではないので、Mac版Firefoxで搭載するのは良いにしても、率直に申し上げて、WindowsにはAdobe Readerもあるのに、なぜ故にHTML5とJavaScriptでPDFファイルの閲覧をサポートするという壮大な試みを行うのか理解できないです。

もちろん、Adobe Readerにはさまざまなセキュリティ上の問題が発見されたりして、評判が悪いというのは実際あるとは思いますが、変えたい人は自分でabout:configから変えられる今の導入方法のままで良いと思います。デフォルトでPDF表示方法を強制的に変えるというのはどうなんだろうと思います。

| | コメント (0) | トラックバック (1)

2013/01/21

プランセス、PDFファイルの一部ページにパスワードをかけられる機能をリリース

株式会社プランセスは、PDFファイルの一部ページにパスワードをかけられる機能をリリースしました。今までも、オープンパスワードを設定すれば、PDFファイルの閲覧にパスワード入力が必要ということは比較的簡単にできましたが、オープンパスワードの設定の場合、all or nothingのところがあって、パスワードを知っていれば全頁閲覧できるけれど、知らなければ、全く読めないというふうになっていました。

しかし、この機能を使うと、たとえば1ページ目から5ページ目は無料で読ませておいて、6ページ目以降は有料というふうなことも可能です。また、企業のイントラネットなどで、機密性が高い情報については会社の上層部だけが閲覧可能なようにすることも可能です。

| | コメント (0) | トラックバック (0)

2013/01/18

Chrome PDF ViewerとフォームとAcrobat JavaScript

うまく説明できるか分からないのですが、Google Chrome内蔵のChrome PDF Viewerには、Form関連のAcrobat JavaScriptに不具合があります。this.numFieldsでそのPDF文書内「全体」のフォーム要素の総数を取得できますが、Chrome PDF Viewerの場合、正しく取得できない場合があります。

ロード直後は正しいのですが、ページをスクロールするなどすると、そのブラウザ・ウインドウ内に表示されているフォーム要素の数のみをthis.numFieldsが取得します。そのため、別のページ(正確に言えば現在の拡大縮小率では表示できていない)要素について、this.getField("...")のようにやってもnullが返ってきてエラーになります。

一応、バグ報告は行いました。
●Chrome PDF Viewer has a bug of Acrobat JavaScript in the PDF forms.
http://code.google.com/p/chromium/issues/detail?id=170844

そこにも英語で一応書いているのですが(日本語でも説明が難しい事象なので、うまく説明できているかは不明です。)、
テスト方法としては、Google Chromeで(正確には、Chrome PDF Viewerで)
http://www.broadband-xp.com/test/quick/chrome_bug.pdf
にアクセスして、
まず、すぐに「Display Total Number of Fields」ボタンをクリック。この時は、「6」と表示されるはずです。これは正しいです。しかし、一旦スクロールして最後の4ページ目に行ってから1ページ目に戻って、再びボタンをクリックすると「2」と表示されます。一ページ目には、フィールドがテキストフィールド1個+ボタン1個の計2個だからです。

PDFの右下にカーソルを動かすと、ズームイン・ズームアウトボタン付きのツールが表示されますので、ズームアウトして4ページが一度に表示されるビューにすると、一ページ目のボタンが小さく見えます。このボタンをクリックすると今度は「6」と表示されます。

つまり、ロード時は正しく全フィールドを認識できていますが、ひとたびスクロールするなどの行為を行うと、そのブラウザウインドウ内に実際に表示されているフィールドのみを認識していて、表示されていないフィールドの操作が不可能になるということです。宜しければ、上記Googleのサイトでgmailなどのアカウントでログイン後、星印をクリックして投票していただければ幸いです。

もちろん、テストページにIEやFirefox(Adobe ReaderやFoxit Reader、もしくはPDF Xchange Viewer)していただく、常にフォームフィールドの数は正しく認識されています。Chrome PDF Viewerだけこの不具合があるようです。

| | コメント (0) | トラックバック (0)

2013/01/01

Google ChromeとPDFのレイヤー機能(透かし機能)の制御

Google Chrome(正確に言えば、内蔵のPDFビューアChrome PDF Viewer)は、PDFのレイヤー機能(透かし・ウォーターマーク機能)をAcrobat JavaScriptで制御することが今のところ、できないぽい。リリース当初からこのことに気づいていましたが、出始めだからと思って黙っていたのですが、他の部分での改善点は見られたもののの、このレイヤー機能の制御に関してはずっとリリース当初から変わらないようです。

たとえば、「Confidential」という透かしを入れているとして、何らかのタイミングでon・offを切り替えたいというようなことをAcrobat JavaScriptで行おうと思っても、Chrome PDF Viewerではできないというわけです。

そこで、この年末に、Feature Requestを出すことにしました。

●Issue 167885: [Feature Request] Please enhance Acrobat JavaScript within Chrome PDF Viewer in order to support layers or watermarks.
http://code.google.com/p/chromium/issues/detail?id=167885

結局、getOCGsメソッドがサポートされていないという単純なことなのですが、早く実装して欲しいです。宜しければ、上記レポートページにアクセスしてvoteしてください。

それに関連してChrome PDF Viewerで実装されているAcrobat JavaScriptの一覧というかReferenceのようなものがあれば良いなと常日頃から思っているのですが、なかなか見つかりませんね。ないのですかね。

また、話は変わりますが、Androidの2.2とか2.3など比較的古い端末しか持っていなくて確認しきれていないのですが、Android版のGoogle Chromeでブラウザ内のPDF表示をサポートするべく、Chrome PDF ViewerがAndroid版でも動作するようになる日は来るのでしょうかね。もしかして、もう既にそうなっています?

| | コメント (0) | トラックバック (0)

« 2012年12月 | トップページ | 2013年2月 »