[PHP-users 547] FDF関数について

Masaki YATSU php-users@php.gr.jp
Wed, 4 Jul 2001 21:04:22 +0900


やつです。

現在、

  サーバ :
    Red Hat Linux 6.1 or TurboLinux Server 6.1
    Apache 1.3.19 + mod_ssl-2.8.1
    PHP 4.0.5 + jstring1.1.1 + mbregex-1.2.1
    FdfTk 4.05(fdftk4_05_C.tar.Z)

  クライアント :
    Windows 2000
    IE 5.5
    Acrobat 5.0

という環境で、FDF関数を利用しようと、フォームから受け取った
値($value)を処理する以下のようなコードを書きました。

--- ここからコード ---
  $value = jstr_convert_encoding($value, "SJIS", "EUC");

  $outfdf = fdf_create();
  fdf_set_value($outfdf, "value", $value, 0);
  fdf_set_file($outfdf, "http://foo/bar/test.pdf");
  fdf_save($outfdf, "test.fdf");
  fdf_close($outfdf);

  jstr_http_output("pass");

  Header("Content-type: application/vnd.fdf");
  //Header("Content-type: text/html");

  $fp = fopen("test.fdf", "r");
  fpassthru($fp);
  unlink("test.fdf");
--- ここまで ---

上記のコードを使った場合、2点ほどわからない点があります。

** その1.
Header()以降の処理で、クライアント側のWebブラウザではAcrobat
やAcrobat Readerを起動させ、test.pdfを表示させたいのですが、
  「ファイルが壊れています。修復できませんでした。」
というメッセージが出て表示できません。
最後の行にunlink()をコメントアウトし、サーバ側に作成された
test.fdfを直接Webブラウザで見ると、一応test.pdfのフォームに
は$valueが入っています。きちんとAcrobatやAcrobat Readerで表
示させるためには、どうすればよいのでしょうか?

** その2.
test.fdfを直接Webブラウザで表示させようとすると、きちんと
Acrobatが起動し、test.pdfにtest.fdfの内容を差し込んでいるの
ですが、$valueが日本語の場合、文字化けして表示されてしまいま
す。文字化けしないようにするには上記コードをどう修正すれば良
いのでしょうか?


以上2点について、何か情報をお持ちの方がいらっしゃいましたら、
教えてください。

-- 
Masaki YATSU
yatsu@softstate.co.jp