ページの作成や編集にはユーザ登録が必要です。
perl 5.9 以降対応版 pdf プラグイン
- 投稿者: ぐうます
- カテゴリ: 修正
- 優先度: 低
- 状態: リリース済
- 日時: 2009年06月25日 19時10分11秒
内容
FSWiki 標準添付の pdf プラグインを改変して、perl 5.9 以降でも動作するようにしました。
改変内容
- 疑似ハッシュ非サポート化への対応
- pdf 生成モジュール PDFJ (lib/PDFJ.pm)は内部で疑似ハッシュ(pseudo hash)を使用しているのですが、疑似ハッシュは perl 5.9 以降で非サポートになったため、perl 5.9 以降では pdf プラグインも動作しなくなりました(BBS-サポート掲示板/788 参照)。
- これに対し、BBS-サポート掲示板/788 で紹介されている clairvy さんのパッチと同じ手法を用いて、PDFJ の該当関数の戻り値に含まれる疑似ハッシュを通常のハッシュに変換する処理を追加しました。
- なお、clairvy さんのパッチの対象は PDFJ 0.9 でしたが、本提案では、FSWiki に同梱の PDFJ 0.7 のみに対応しています。
- 実装としては、FSWiki の配布物に同梱されているとはいえ、外部モジュールである PDFJ に変更を加えるのはイヤ〜ンだったので、実行時のオーバーライドで実現しています。
- オーバーライドは、perl バージョンが 5.9 以降のときのみ、次の 3 つの関数に対して実施されます。
- PDFJ::Text::_fold()
- PDFJ::Text::_specialchunk()
- PDFJ::Text::_appendchunks()
- PDFParser.pm の perl 5.10 対応
- PDFParser.pm の l_table() に、perl 5.10 では動かない部分が 1 箇所ありましたので変更しています。
- この変更を施しても、5.8.9 以前の perl でも正しく動きます。
- おまけ
- 上記の通り PDFParser.pm を変更するので、ついでなので BugTrack-wiki/320:見出し行に文字装飾記法を含むPDF生成で提案されている A_M さんのパッチの機能も勝手ながら含めさせていただきました。
改変・追加ファイル
- [改変] plugin/pdf/PDFMaker.pm
- [改変] plugin/pdf/PDFParser.pm
- [追加] plugin/pdf/NoPhash.pm
インストール方法
- 添付ファイル pdf.20090625.zip(1268) をダウンロードし、FSWiki の動作しているサーバに上書き展開して下さい。
- 管理メニューのプラグイン設定ページにて、pdf プラグインパッケージが有効になっていることを確認して下さい。
適用可能な FSWiki バージョン
- FreeStyle Wiki 3.6.3dev1 以降 (理由:今回の改変とは関係無く、改変元ファイルである FSWiki 3.6.3.1 の PDFMaker.pm が Util::make_content_disposition() を使用しているため。)
動作確認実施時の環境
- FreeStyle Wiki 3.6.3.1 with perl 5.8.9 on FreeBSD 7.1-RELEASE-p5
- FreeStyle Wiki 3.6.3.1 with ActivePerl-5.10.0.1005-MSWin32-x86-290470.msi on Windows XP Home Edition ビルド 2600.xpsp_sp3_gdr.090206-1234 (Service Pack 3)
更新履歴
- 2009-06-25 版:pdf.20090625.zip(1268)
- 初版
ライセンス
オリジナルの pdf プラグインの改変なので、GPL。
コメント
- Perl5.26以降対応の為、PDFJ-0.91RC1に変更してコミットしました。あわせて、pdfプラグインの一部を修正して当件の対応とさせていただきます。 - KG (2018年01月15日 19時23分10秒)
- リリース済みに変更しました。 - KG (2019年02月14日 21時55分49秒)
最終更新時間:2019年02月14日 21時55分49秒