Copper PDF 2.1.0をリリースしました

Copper PDF 2.1.0をリリースしました。「Copper PDF サーバーのダウンロード」から入手してください。

rpm, debパッケージの修正 /var/lib/copper-pdf/conf から /etc/copper-pdf にシンボリックリンクを張っていたものを、 逆転させました。/etc/copper-pdf が実際の設定ファイルの場所になります。 入力データ形式 SVGと、Java実行環境のImage I/Oがサポートする画像を直接変換できるようになりました。 新しいドライバインターフェース 新しいソケット通信インターフェース(CTIP2) HTTP / HTTPSインターフェース PDF/A-1b(ISO 19005-1)をサポート 長期保存用の文書を生成できるようになりました。 sRGBカラー情報 PDFにsRGB(IEC61966-2-1)カラー情報を埋め込むようにしました。 生成されるPDFがよりブラウザに近い色合いとなります。 PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

Copper PDF 2.0.10をリリースしました

Copper PDF 2.0.10をリリースしました。「Copper PDF サーバーのダウンロード」から入手してください。

以下のバグを修正しました 引用符が開いていない状態で{content: close-quote;}があるとエラーにより停止する。 IMGタグで文書中に埋め込まれた画像のMIME型がimage/*でない場合表示されない。 PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

PukiWikiプラグイン1.3.2をリリースしました。

PukiWikiプラグイン・バージョン1.3.2をリリースしました。文書の表題や作者を設定する機能が加えられています。

SourceForgeのダウンロードページから入手してください。

PukiWikiプラグインのマニュアルはこちらです。

PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

Copper PDF 2.0.9をリリースしました

Copper PDF 2.0.9をリリースしました。「Copper PDF サーバーのダウンロード」から入手してください。

以下のバグを修正しました コアフォントを使用している場所で両あわせをすると、単語の途中に空白ができる。 大きなdata URLの処理などで長文のエラーメッセージが発生すると、ドライバの接続が切れる。 “output.image.resolution”のデフォルト値が72となっており、解像度が正しく反映されない。2.0.9以降では (以前の設定 × “output.resolution” / 72) で換算した値を設定してください。 文書中の処理命令で”output.resolution”を適用できない。 CSSJとの互換性のためのCSSプロパティ’-cssj-regeneratable’を使用できない。 テキスト処理の改善 コアフォントと他の種類のフォントが選択可能なとき、他の種類のフォントが優先されるようにしました。 PDFのタイムスタンプとファイルIDの設定

次の入出力プロパティでPDFのCreationDateとModDateを設定できるようになりました。 “2009-05-22 21:10:14″あるいは”2009-05-22 21:10:14 +0900″のように設定してください。

“output.pdf.meta.creation-date” “output.pdf.meta.mod-date”

次の入出力プロパティでPDFのファイルIDを設定できるようになりました。 32桁固定の16進数で設定してください。

“”output.pdf.file-id” PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

PHPドライバ1.1.4[Content-Lengthが送られない不具合を修正]

PHPドライバで、cssj_ob_start_main関数を使用して変換した文書を、直接クライアントに送信する場合、元のドキュメントのサイズが大きい場合にContent-Lengthヘッダが送られない不具合がありました。

cssj_ob_start_resourceまたはcssj_ob_start_mainを使用して、パススルーでPDFをブラウザに送るアプリケーションで問題が発生する可能性があります。5月21日に続き頻繁な修正となり申し訳ございませんが、ドライバの更新をお願いいたします。

PHPドライバのダウンロードページからダウンロードしてください。

不具合の詳細

Copper PDFはPHPのoutput bufferを利用して変換元の文書をキャプチャします。以下のような手順で処理しています。

ob_start(コールバック関数, チャンクサイズ); …変換元の文書の出力… ob_end_clean(); header(“Content-Length: ファイルの大きさ”);

コールバック関数はバッファの内容をCopper PDFに送った後消去するため、ob_end_clean()が呼び出されるまでの間、本来であれば何もブラウザに送信しません。

しかし、PHPドライバ1.1.3で大きな文書を処理した場合にバッファが足りなくなる問題を回避するために、チャンクサイズを指定したところ、PHPはバッファの内容が指定したチャンクサイズに達すると、コールバック関数によりバッファの内容が削除されても、データが送信されたものとみなして、HTTPヘッダが送られた状態(headers_sent()がTRUEを返す状態)にしてしまいます(あまり好ましい動作ではなく、PHPのドキュメントにも記述がありませんが、そのような仕様になっているようです)。

PHPドライバ1.1.4では、次の通り二重にバッファリングするようにして回避しました。

ob_start(); ob_start(コールバック関数, チャンクサイズ); …変換元の文書の出力… ob_end_clean(); ob_end_clean(); header(“Content-Length: ファイルの大きさ”);

上記の場合、内側のバッファでデータ送信が行われても、外側のバッファに対して行われるので、外側のバッファが終了しない限り、クライアントに影響することはありません。

対策

ドライバ関係の不具合が起こっている状況を踏まえて、開発中のCopper PDFにドライバの負荷テストに使用するための機能を組み込み、ネットワーク越し、ローカル接続の両方で3種類のドライバの負荷テストを実施しました。

Java, Perlドライバと修正済みのPHPドライバで問題が発生しないことを確認しています。

PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

Perlドライバ1.1.2, PHPドライバ1.1.3[環境によりドライバが応答しなくなるバグ修正]

Perlドライバ1.1.1以前、PHPドライバ1.1.2以前に、ネットワーク環境により、ドライバが応答しなくなる可能性のある問題が見つかったため対応いたしました。ローカルマシン接続の場合でも、OSによっては不定期に問題が発生する可能性があります。

またPHPドライバ1.1.2以前で、巨大なファイルを変換すると、処理が停止する問題を修正しました。

Perl, PHPドライバをお使いの方は、早めの更新をお願いいたします。不具合によりご迷惑をおかけいたしますことをお詫びいたします。

各ドライバのダウンロードページからダウンロードしてください。

PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

Copper PDF 2.0.8をリリースしました

ラインセンスキーがインストールされていない状態では機能限定版として動作するようにしました

個人・非商用利用のためのライセンスキーは不要になりました。

Copper PDF 2.0.8をリリースしました。「Copper PDF サーバーのダウンロード」から入手してください。

以下のバグを修正しました CSS ‘widows’プロパティの綴りが’windows’になっていた。 浮動ボックスが存在するブロックで改ページ抑制が効かない。 高さを指定したボックスの前後に強制改ページがあると、次ページでボックスがページの上側にはみ出す。 絶対位置指定された画像の高さを%指定した場合に、コンテキストボックスの高さの割合にならない。 CSS level 3 の text-align-lastをサポートしました cssj-page-content関連の動作が不安定だったため、以下の仕様にしました ‘-cssj-page-content-clear’は、指定した要素が表示されるページに適用する。 ‘-cssj-page-content’が指定されたボックスは、指定した要素が空のインラインボックスと仮定して表示されるページから表示される。 PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

Perl ドライバ1.1.1リリース

Copper PDF Perl用ドライバ 1.1.1をリリースしました。

CGI.pmを使用した際にFILENO, BINMODEメソッドが未定義であるというエラーが発生する問題を修正しました。 CGIが出力するヘッダを除去する機能を追加しました。 サンプルをstrictモードにしました。

修正版はPerlドライバのダウンロードからダウンロードしてください。

PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

Copper PDF 2.0.7をリリースしました

Copper PDF 2.0.7をリリースしました。「Copper PDF サーバーのダウンロード」から入手してください。

HTTPアクセスのタイムアウトを指定できるようになりました “input.http.connection.timeout”で接続タイムアウト(ミリ秒)を設定できます。 “input.http.socket.timeout”でソケットタイムアウト(ミリ秒)を設定できます。 一般的なブラウザとの互換性の改善

自動レイアウトテーブル(デフォルトのテーブル、あるいは{table-layout: auto;}が指定された)のレイアウトが一般的なブラウザのレイアウトにより近くなりました。Copper PDF 2.0.6以前のテーブルレイアウトと若干の違いが発生しますのでご注意ください。

安定性の向上

30万ページ以上のインターネット上のウェブページを処理するテストを実施し、HTML, CSS文法の誤りや極端なレイアウトの指定に対しても、エラーによる停止を徹底して排除しました。

PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大

Copper PDF 2.0.6/CSSJ 1.2.11/Javaドライバ 1.0.7[高負荷時にPDFが破損するバグ修正]

高負荷時にPDFが破損する可能性がある問題を修正したCopper PDF 2.0.6/CSSJ 1.2.11をリリースしました。以下のページからそれぞれダウンロードしてください。

Copper PDFのダウンロード CSSJのダウンロード

今回見つかった問題は、PDFの相互参照表(クロスリファレンステーブル)が破損するもので、特にサイズの小さなPDFを非常な高負荷で出力する状況で不定期的に発生する可能性があるものです。申し訳ございませんが、早めのアップデートをお願いいたします。

また、Copper PDFでは他にHTMLの処理に関する9件のバグを修正しました。詳細は配布物のREADME.txtをご参照ください。

また、Javaドライバ 1.0.7をリリースしました。今回のリリースではサーバー側が強制停止した場合に、ドライバの処理が固まってしまう問題を修正しました。Javaドライバのダウンロードページからダウンロードしてください。

PDF スタイル サイトの設定 横書き 縦書き 縦2段 文字 特小 小 中 大 特大 周囲余白 なし 小 大