CL-PDF と ZPB-TTF の擴張
* きっかけ 文書生成に CL-PDF を利用させてもらふやうになつて久しいが、ある日某部門から、特定のPDFリーダ (Adobe AcrobatReader) で文字化けせずにテキストをcopy/pasteできるやうにとの要請を受けた。 ghostscriptを使ってpdf壓縮をすると、サイズは小さくはなるのだが、copy/pasteしたときに一部テキストが文字化けする。 とくに IPAMincho を埋込んだ部分は壓縮前であつても文字化けする。[ 例 ] これは Google Chrome や Safari でも同樣。ただし、Microsoft Edge や FireFox などでは、文字化けせずにcopy/pasteが出來る。 * pdf2text 一部browserでは文字化けしないのだから、文字化けする方に技術的不具合があることは容易に想像できるが、これを證明するために自分で pdf2text 處理をprogram してみた。 一部ブラウザは =/Encoding /Identity-H= 指定されてゐるとテキストを拾へないやうだ。 =/CIDSystemInfo= に =/Ordering(UCS)= とあるのだから、 UCS2 か UCS4 のコードだと思って解釋できさうなものだし、事實拾へるブラウザもあるわけだが、自分で書いたコードでは UCS2 として解釋しテキスト抽出に成功させた。 CL-USER(93): (pdf:pdf2text "~/project/cl-pdf/PDFs/Identity-H.pdf") ;; Inside non-filter file #<EQL hash-table with 1 entry @ #x1042bdf32> ("いろはにほへどちりぬるをあさきゆめみしゑひもせすわがよたれぞつねならむわがよたれぞつねならむ.....") * Encoding さうかうするうちに、 =/Encoding /UniJIS-UTF16-H= としてやれば、ブラウザの如何にかかはらず、テキスト抽出が出來る事に氣付いた。 ただし、 =/Identity-H= を =/UniJIS-UTF16-H= に置換へるだけでは cl-p...