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

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

以下のバグを修正しました

・テーブルセルに書字方向(writing-mode)を設定した場合に途中で改ページが発生するとテーブルのレイアウトが崩れるか、最悪の場合Copper PDFがハングアップする。

上記の修正により、書字方向が変更されたテーブルセルでは改ページできなくなりました。

テーブルセルに直接writing-modeを設定することは推奨しません。代わりに、テーブルセル内にwriting-modeを設定したdivタグを入れ子にするなどしてください。

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

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

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

本バージョンではメモリ管理に大きな変更があります。OpenJDK等の環境で、まだメモリが不足していないにも関わらずOutOfMemoryErrorが発生する問題に対応しました。ただし、従来からOutOfMemoryErrorが頻発している状況では、新しいバージョンでも極端な速度低下を起こす必要がありますので、余裕を持ってメモリを割り当ててください。

メモリの割当方法についてはこちらを参照してください。

以下のバグを修正しました

・ルビに画像が含まれると位置がずれる。 ・インデントが設定されていると縦中横(‘-cssj-text-combine: horizontal;’))がずれる。 ・SVGでアフィン変換が正しく適用されない。

変更点

・一部のJava実行環境や、メモリが少ない状況でOutOfMemoryErrorが発生しにくいようにメモリ管理を改善しました。 ・-cssj-page-ref擬似関数で、フラグメント付きURLを指定できるようにしました。複数の文書を結合する場合に、別のURLの文書のページを参照することができます。

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

OpenSSL脆弱性のCopper PDFへの影響について

OpenSSLのHeartbleed脆弱性について、Java SE上で動作するCopper PDFはOpenSSLを使用しないため、影響はありません。

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

Java版ドライバ 2.1.4をリリースしました。

ctip:プロトコルでタイムアウトを設定できるようになりました。指定した時間通信が行われない場合は、自動的にドライバが処理を中断します。以下のようにURLパラメータで、timeoutをミリ秒単位で指定できます。

ctip://hostname/?timeout=10000

ctips, http等他のプロトコルではタイムアウトは無効です。

こちらからcti-java-2.1.4をダウンロードして下さい。

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

Copper PDF のレンダリングエンジンをオープンソース化しました

Copper PDFのソースコードを公開しました。公開したのはHTML/CSSレンダリングエンジンとPDF出力ライブラリで、Copper PDFの中核部分で、なおかつほとんどの部分です。昨今はほとんどのWebブラウザがオープンソースとなりました。そのような状況を考慮しての公開です。

Copper PDFのユーザーは、ソースを見ることにより、様々な問題の分析がしやすくなります。また、HTMLレンダリングエンジンを直接利用したいプログラマは、Javaアプリケーションにリンクしてライブラリとして使うことができます。

ソースコードのライセンスは、商用にも使いやすいApache License 2.0となっており、自由にご利用いただけます。

プロジェクトサイトのアドレスはこちらです。

http://copper.sourceforge.jp/

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

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

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

以下のバグを修正しました

・縦に連結したセルがあるテーブルで、必要以上に改ページされてしまう問題を修正しました。 ・Windows環境で”border-collapse: collapse;”を指定したテーブルを使用した際に、エラーで停止することがある問題を修正しました。

変更点

・付属のcopperコマンドでリモートサーバに接続できるようにしました。

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

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

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

今回は電子書籍、書籍印刷に関するバグ修正と機能強化です。

変更点

・複数の文書を結合する場合に、文書の間でハイパーリンクできるようにしました。

・-cssj-direction-modeプロパティにvertical-rlを設定できるようにしました。これで、もともと縦書の内容を横書きに回転させることができます。

・右綴じにした場合に、改ページ制御のleft, right指定が正常に動作しないことがあるバグを修正しました。

・改ページ制御(page-break-before, page-break-after)にif-left, if-right, if-recto, if-versoが指定できるようにしました。それぞれ、現在ページが右、左、奇数、偶数の場合だけ改ページが発生します。

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

Pythonドライバをリリースしました

Copper PDFのPython向けドライバをリリースしました。ドライバ自体が全てPythonで書かれていますので、Pythonが動作すれば、どのような環境でも使うことができます。

これでCopper PDFはJava, Perl, PHP, .NET(C#/VB.NET), Ruby, PythonとWEB開発で主要な地位を占めている6つの開発環境をサポートしました。

ドキュメントとプログラムは以下で配布しています。

ドキュメント Pythonドライバ APIドキュメント サンプルプログラム・解説 ダウンロード

sourceforge.jpで配布しています

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

PHPドライバ2.1.2をリリースしました

PHPドライバを更新しました。変更点は次の通りです。

debパッケージのPHPバージョンチェックの不具合を修正。 phpDocumentorを4.1.4に更新。 コールバック関数を参照として渡してしまっている部分を値を渡すように修正。 以下の関数には、コールバック関数の関数名をリテラルとして直接渡せるようになります。 set_message_func set_progress_func set_resolver_func

SourceForge.jpからダウンロードしてください

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

Rubyドライバをリリースしました

日本発のプログラミング言語で、ウェブ開発等でも定評のある、Ruby対応のドライバをリリースしました。以前もJRubyでJavaのドライバを使う方法があったのですが、今回は本当にRubyのために開発されたドライバです。

JavaならJSP、PHPならSmarty、PerlならTemplate-Toolkit、C#/VB.NETならASPのように、Copper PDFはそれぞれの開発言語でのウェブ開発との親和性を第一としてきましたが、Rubyも例外ではありません。

例えば、ERBで作ったテンプレートでPDFを出したければこのようになります。

require ‘CTI’ include CTI require ‘erb’ # セッションの開始 get_session(‘ctip://localhost:8099/’, { ‘user’ => ‘user’, ‘password’ => ‘kappa’ } ) do |session| # テンプレートを変換 session.transcode do |out| begin $stdout = out ERB.new(DATA.read).run ensure $stdout = STDOUT end end end __END__ <html> <head> <title>ERB</title> </head> <body> <p>Hello ERB</p> <p>ただいまの時刻は <%= Time.now %></p> </body> </html> […]