Skip to main content
Participant
December 28, 2016
Question

Acrobat PDFのQRコードをShift-JISで出したい・・・stringFromstream ほか

  • December 28, 2016
  • 1 reply
  • 1891 views

Unicode→Shift-JIS変換機能の無いQRコードスキャナを使用し、

Acrobat PDFのフォーム機能のQRコード生成でこしらえた日本語漢字文字セットを含むQRコードを生成したいです。

単純にJavaScriptを使用せず、日本語漢字文字セットを含むテキストフィールドを選択し、QRコードを生成してもUnicodeのままなので、

テキストフィールド文字列(String型)を、Stream型に変換し、これを再度String型にするようなJavaScriptを作成したのですが、以下の問題が発生し、実現していません。

プログラムソースは以下の通りです。

 unimoji =  oParam.oDoc.getField(strFieldName).value;     /* line #1 */

//   tempmoji = util.streamFromString(unimoji, "Shift-JIS");    /* #2 */

    tempmoji = util.streamFromString(unimoji);                     /* #3 */

    sjismoji = util.stringFromStream(tempmoji, "Shift-JIS");     /* #4 */

上記line #1,#2,#4の順で動作させたいので、QRコードのあるプロパティ内JavaScriptにコーディングし、これを書き戻すと

Acrobat Standard DC (バージョン2015.006.30244)が「Adobe Acrobat DCは動作を停止しました」というチェックボックスを表示しAcrobat DCが停止します。

で、最終的にShift-JISにエンコードできればよいとおもい、上記の通り#1,#3,#4とし、streamFromStringで"Shift-JIS"変換をせず、

デフォルトのUTF-8のままで型式だけかえ、後段の#4でShift-JIS変換をしたのですが文字化けで読めませんでした。

なにか良い方法ございますでしょうか? 初心者なのでよろしくご指導賜れれば幸いです。

This topic has been closed for replies.

1 reply

Ten A
Community Expert
Community Expert
January 5, 2017

元々AdobeのQRコードライブラリにはモード判定のバグがあります。又、SJISコードを圧縮するために存在する漢字モード自体もUTF-8をダイレクトに扱うという誤った実装が施されています。これはインプットに起因する問題ではありませんのでフォームのエンコーディングを弄ってどうのこうのすると言うのは不可能でしょう。

Participant
January 5, 2017

ご教示ありがとうございます。モード判定自体にバグがあってはユーザー側ではどうしようもないですね。Unicode前提で対応を考えます。