最新版は以下のアドレスからダウンロードしてください。
Copper PDF サーバーのダウンロード
3.2.33 は、TLS 接続の作り直し、同梱の Jetty と Java 実行環境の更新、ライブラリの更新が中心です。Windows・Linux の各書庫と RPM・DEB パッケージに加え、Docker イメージを公開しています。
REST(HTTP)の待受と copper-webapp は Java 17 以降で動きます
同梱の Jetty を 9.4.20 から 12.1.13 へ更新しました。Jetty 12 は Java 17 以降でしか動かないため、サーバー(copperd)の REST(HTTP/HTTPS)の待受と、ウェブインターフェース(copper-webapp)には Java 17 以降が必要です。サーバー自体は従来どおり Java 8 以降で起動できます。Java 8〜16 で起動した場合は、REST の待受を行わずに(警告をログに出して)、CTIP(平文と TLS)だけで動きます。各言語のドライバで CTIP を使っている場合は、Java 8 のままお使いいただけます。copper コマンドと Java ドライバも Java 8 以降で動きます。バンドル版(openjdk-bundle)には Java 21(Eclipse Temurin 21.0.12.1+1)が入っているので、REST を含めてそのまま動きます。Jetty 12.1.13 時点で、当てはまる既知の脆弱性はありません。
TLS 接続(ctips:)を強化しました
TLS 1.3 で接続できるようになり、SNI を送るようになり、サーバー証明書とホスト名を既定で検証します。自己署名の証明書のサーバーへ繋ぐ場合は、認証局を信頼させるか、試験用に copper コマンドの --insecure を使ってください。
互換性に関する注意
3.2.32 まではサーバー証明書を検証していませんでした。自己署名の証明書や名前の合わない証明書のサーバーへ繋いでいた場合、この版から接続に失敗します。設定の旧名 jp.cssj.driver.tls.trust も使えますが、警告を 1 回出します。新しい名前は jp.cssj.driver.tls.insecure です。なお、HTTPS の REST 接続での insecure は、サーバーが証明書を 1 枚だけ提示したときにそれを信頼する、という意味で、ctips: の insecure(検証を完全に無効にする)とは異なります。
Docker イメージを公開しました
ghcr.io/zamasoftnet/copper-pdf:3.2.33 で取得できます(latest も同じイメージです)。フォントは Noto Sans JP と Noto Serif JP だけを同梱しています。起動用のスクリプトと compose ファイルは copper3-docker にあります。ライセンスキーと追加フォントは user ディレクトリから読み取り専用で渡します。ライセンスキーはイメージに含まれません。
docker pull ghcr.io/zamasoftnet/copper-pdf:3.2.33
ライセンスキーを配置すると、serif・sans-serif の和文は同梱の Noto で組まれて PDF へ埋め込まれます。機能限定版ではフォントを埋め込めないため、従来どおりの明朝・ゴシック(埋め込みなし)になります。
不具合の修正
- バンドル版(openjdk-bundle)に JavaVM が入っていない不具合に対応しました。3.2.30 から 3.2.32 のバンドル版には JavaVM が含まれておらず、別に Java を用意しないと動きませんでした。該当する版をお使いの場合は入れ替えてください。
- CTIP で 32KB を超える文字列(data: URI の画像など)を送ると接続が壊れる不具合に対応しました。
- 変換の中断(abort)を、本文を送っている途中で行った場合に、中断ではなく内部エラーとして報告されることがある不具合に対応しました。また、クライアントが本文を送り終える前に中断を知らせていたため、ドライバによっては応答を待ち続けたり、次の変換に失敗したりすることがありました。本文を送り終えたところで知らせます。本文の途中で中断した場合も、本文のストリームは閉じてください。
- サーバー(copperd)を停止するときに、接続の処理が終わるのと重なると、停止が終わらなくなることがある不具合に対応しました。
- ユーザーの設定ファイル(conf/password.txt)が無いときに、認証のたびに内部エラーになる不具合に対応しました。copperd -passwd で最初のユーザーを作ることもできませんでした。
- Linux 版で、環境変数 JAVA_HOME を設定していない場合にバンドル版の Java 実行環境が使われない不具合に対応しました。
- Windows 版の copper.exe を、インストール先以外のディレクトリから実行すると起動しない不具合に対応しました。copperd.exe と copper-webapp.exe も同じように直しました。
- Windows サービスとして登録したとき、インストール先が C:\Program Files の下だとログを書き込めない不具合に対応しました。
- Debian/Ubuntu 用パッケージ(.deb)に Java の依存関係が入っていなかった不具合に対応しました。
- RPM パッケージが /var/lib/copper-pdf を所有していなかったため、状況によりインストールに失敗する不具合に対応しました。
- RPM パッケージを更新すると conf/password.txt が上書きされ、copperd -passwd で作ったユーザーが消えて既定のユーザーに戻る不具合に対応しました。copperd.properties などの設定ファイルも、変更したものは更新後もそのまま残します(新しい版のファイルは .rpmnew として置きます)。
- systemd の無い Debian/Ubuntu で、サーバーが root 権限で動いていた不具合に対応しました。copper ユーザーで動きます。
- Linux 版の copper-webapp を Java 17 未満で起動したときに分かりにくいエラーで止まっていたのを、必要な Java の版を示して止まるようにしました。
同梱ライブラリの更新
Apache Batik 1.14 から 1.19、Xalan と Serializer 2.7.3、Xerces 2.12.2、TwelveMonkeys ImageIO 3.15.2、metadata-extractor 2.21.0、JEuclid 3.1.14、Commons Codec 1.22.1、Commons Logging 1.4.0、XML Graphics Commons 2.11 に更新しました。SVG・MathML・バーコード・画像・XSLT の出力が更新前と一致することを確認しています。使っていない log4j 1.2.11・JUnit 3.8.1・jmock 1.0.1 は削除しました。
同梱の Java ドライバについて
製品に同梱している Java ドライバは 2.2.5 です(TLS の修正と、中断の扱いの修正を含みます)。単体で配布している Java ドライバ(cti.java)の 2.3.0 以降とは別物で、旧来の公開型と META-INF/plugin の探索を保ったままです。新しい API をお使いになる場合は単体配布の 2.3.3 以降をご利用ください。
変更点の全体は、配布物の docs/changes/3.2.33.txt を参照してください。ドキュメントは マニュアル(PDF) も更新しています。
