Bug fixes:
- allow title argument to be specified in Report.generate method #127
Breaking Changes:
- Drop Ruby 2.5,2.6,JRuby support
- Drop Prawn 2.2, 2.3 support
- Moved Basic Format implementation to
Thinreports::BasicReport
namespaceThinreports::Report
andThinreports::Layout
are defined as aliases forThinreports::BasicReport::Report
andThinreports::BasicReport::Layout
respectively, but other than those can be a destructive change if you rely on internal implementations
Enhancements:
- Allow any string to be set to the title attribute of the PDF document metadata #125
- Add Ruby 3.1, 3.2 support
Notes:
- thinreports gem has opted in to the "MFA required to publish" setting on Rubygems.org
Bug Fixes:
- Fix argument of Thinreports::Report.generate in Ruby 3.0 #116 [@sada]
Breaking Changes:
- Drop Ruby 2.4 support #108, #109
Enhancements:
- Ruby 3.0 support #108, #109
- Prawn 2.4 support #108, #109
Breaking Changes:
- Dropped Ruby 2.1 support
- Dropped Ruby 2.2 support
- Dropped Ruby 2.3 support
- Formatter of a text-block works even with multiple-line (#95)
Enhancements:
- Ruby 2.7.0 support
- Support Pathname layout option on
Thinreports::Report
#99 [@meganemura]
Bug Fixes:
- Fixed: thousands separation is applied to decimal part #95
Bug Fixes:
- Fixed: corner-radius of Rect is not applied correctly #93
Bug Fixes:
- Fixed: Prawn::Errors::UnknownFont error occured: "is not a known font" #89
Bug Fixes:
- Fixed a bug that an error occurred on page break in other list when there is a list with page-break disabled #87 [@meganemura]
- Thinreports requires Prawn 2.2
- Dropped Ruby 1.9.3 and 2.0.0 support
- Fixed a bug line-height of a text line-wrapped is broken #36 [@tkobayashi0330]
- Remove deprecated top-module
ThinReports
- Remove
config.convert_palleted_transparency_png
option - Remove
config.generator.default
option - Deprecate
:report
and:generator
argument ofThinreports::Report.generate
PNG image with indexed transparency has been supported since Prawn version 2.0. And now, thinreports requires Prawn 2.2+, so the unique support in thinreports is no longer needed.
Please use Thinreports
instead.
- Fixed bug that line-height of text-block is always set to 0 #68
- Fixed a referenced text-block not rendered #68
- Fixed #66 an error occurred when render list #68
- Drop support for layout file saved with Editor v0.7 or lower #62
- New format for layout file and deprecate old format #35
- Fixed fail in rendering a static image #61
- Make possible to set an image-data to image-block item #65
- Remove old way to define callback of list #54
- Remove
config.eudc_fonts=
option #53 - Deprecate
config.convert_palleted_transparency_png
option #49
Generator v0.9 or higher can't load the layout file saved with Editor v0.7 or lower.
This is a BIG internal change.
Thinreports has two format types for layout file now:
- Old format generated by Thinreports Editor 0.8.x or lower
- New format generated by Thinreports Editor 0.9.x or higher
thinreports-generator will supports as below:
Generator | Format type(1) | Format type(2) |
---|---|---|
=< 0.8 | o | x |
0.9, 1.0 | o | o |
>= 1.1 | x | o |
See thinreports/thinreports#4 for further details.
The following code works fine now.
png_image = StringIO.new(png_data)
page.item(:image_block).src(png_image)
require 'open-uri'
open('http://example.com/image.png') do |image_data|
page.item(:image_block).src(image_data)
end
The block of Report::Base#use_layout
never performed:
report.use_layout 'foo.tlf' do |config|
config.events.on(:page_create) { ... }
config.list.events.on(:footer_insert) { ... }
end
List#store
and List#events
has been removed:
report.list.store.foo += 1 # => NoMethodError
report.list.events.on(:footer_insert) { ... } # => NoMethodError
Layout::Base#config
has been removed:
report.default_layout.config { ... } # => NoMethodError
You can use the following method instead:
Report::Base#on_page_create
List#on_page_finalize
List#on_footer_insert
List#on_page_footer_insert
See https://github.com/thinreports/thinreports-generator/tree/master/examples/list_events.
Thinreports.config.eudc_fonts = true # => NoMethodError
You can use config.fallback_fonts
instead.
Thinreports.config.convert_palleted_transparency_png = true # => warn "[DEPRECATION]"
This is option to enable palette-based transparency PNG support. The option will be removed in version 1.0, but thinreports will support the feature by default. Please see PR#32 for detailed the feature.
- Fixed: some Ruby warnings (#40, #41, #43) [Akira Matsuda, Katsuya Hidaka]
- Some code improvements
This feature is DISABLED by default. Please see PR#32 for further details.
This release is a stepping stone to next major version 1.0.0 release.
- Upgrade to Prawn 1.3 and drop support for Ruby 1.8.7 (#11)
- Change name of root module to Thinreports from ThinReports (#15)
- Implement
Item#value=
method (#20) - Implement new list callbacks (#17)
- Implement
page[:item_id]=
as alias forpage.item(:item_id).value=
(#22) - Support font-size style for Text and TextBlock (#23)
- Support for setting the default fallback font (#7)
- Remove
Report#generate_file
method (#13) - Deprecate
Report#events
, and implement new callbacks (#18) - Deprecate
List#events
, recommend to useList#on_page_finalize
callback or create manually (#9)
We have dropped support for MRI 1.8.7 and 1.8 mode JRuby by upgrading to Prawn 1.3. Currently supported versions are MRI 1.9.3 and 2.0.0 or higher, JRuby(1.9 mode) 1.7 or higher.
We have changed name of root module to Thinreports
from ThinReports
.
Old name ThinReports
has been enabling as alias, but it will be removed
in the next major release.
List#events
and List#store
have been deprecated.
report.layout.config.list do |list|
list.events.on :page_footer_insert do |e|
# ...
end
# => warn: "[DEPRECATION] ..."
list.events.on :footer_insert do |e|
# ...
end
# => warn: "[DEPRECATION] ..."
list.events.on :page_finalize do |e|
# ...
end
# => warn: "[DEPRECATION] ..."
end
list.store.price += 0 # => warn: "[DEPRECATION] ..."
Please use new callbacks instead:
report.list do |list|
price = 0
list.on_page_footer_insert do |footer|
footer.item(:price).value = price
end
list.on_footer_insert do |footer|
# ...
end
list.on_page_finalize do
# ...
end
end
See Issue #17, Issue #9 and examples/list_events for further details.
Report#events
has been deprecated:
report.events.on :page_create do |e|
e.page.item(:text1).value('Text1')
end
# => warn: "[DEPRECATION] ..."
report.events.on :generate do |e|
e.pages.each do |page|
page.item(:text2).value('Text2')
end
end
# => warn: "[DEPRECATION] ..."
Please use Report#on_page_create
callback instead.
However Report#on_generate
callback has not been implemented,
but you can do the same things using Report#pages
method.
report.on_page_create do |page|
page.item(:text1).value('Text1')
end
report.pages.each do |page|
page.item(:text2).value('Text2')
end
report.generate filename: 'foo.pdf'
See Issue #18 for further details.
# New setter, same as `page.item(:text_block).value = 'tblock value'`
page[:text_block] = 'tblock value'
# New getter, same as `page.item(:text_block).value`
page[:text_block] # => <Tblock>
page[:text_block].value # => "tblock value"
page.item(:text_block).value # => "tblock value"
page[:image_block] = '/path/to/image.png'
page[:image_block].src # => "/path/to/image.png"
page.item(:image_block).src # => "/path/to/image.png"
See Issue #22 for further details.
page.item(:text_block).value('value')
page.item(:text_block).value = 'value'
page.item(:image_block).src('/path/to/image.tlf')
page.item(:image_block).src = '/path/to/image.tlf'
See Issue #20 for further details.
page.item(:text).style(:font_size, 20)
page.item(:text_block).style(:font_size, 20)
page.item(:text_block).style(:font_size) # => 20
See Issue #23 for further details.
Please see Issue #7 for further details.
- No release for generator
- ページ番号ツール [Katsuya Hidaka]
- New "Word-wrap" property of TextBlock [Katsuya Hidaka]
- B4/B5 の ISO サイズを追加 [Takumi FUJISE / Minoru Maeda / Katsuya Hidaka]
- generate filename: 'foo.pdf' を実装、#generate_file を非推奨へ [Katsuya Hidaka]
- start_new_page layout: 'file.tlf' でもデフォルトレイアウトが設定されるよう改善 [Eito Katagiri / Katsuya Hidaka]
- Report#use_layout で list の設定を行うとエラーが発生する [Katsuya Hidaka]
- Layout::Format#page_margin_right が不正な値を返す [Katsuya Hidaka]
- セキュリティを設定した PDF を印刷すると "このページにはエラーがあります..." メッセージが表示される [Katsuya Hidaka]
- B4 サイズで出力した PDF の用紙サイズが正しくない [Takumi FUJISE / Katsuya Hidaka]
- デフォルトレイアウトを書き換え可能へ変更 [Katsuya Hidaka]
- Fix raise NoMethodError when has no default layout [Katsuya Hidaka]
- テキストブロックのオーバフロープロパティ [Katsuya Hidaka]
- list メソッドのデフォルト id と Report#list の追加 [Katsuya Hidaka]
- gem install 時にRDoc生成時のエラーが表示される場合がある [Katsuya Hidaka]
- エディターにて一覧表ツールのヘッダーを使わない場合の動作について [吉田 和弘 / Katsuya Hidaka]
- Listに :page_finalize イベントを追加
- ダイナミックスタイルの拡充
- イメージブロックの実装
- Tblockで行間、横位置、縦位置、文字間隔の指定を可能に
- Prawn 0.12.0 を採用
- メタ情報のタイトルに反映
- Example Test環境の構築
- 外字の埋め込みサポート
- clean taskの削除
- YARD Docのテンプレート追加
- ロードするprawnのバージョンを固定
- .generate, .generate_fileメソッドのオプション指定をフラット化
- 単行モードテキストブロックがレイアウトで定義した「高さ」の影響を受けないように
- PXD形式の出力フォーマット廃止とデフォルトタイプの導入
- $KCODEによる文字カウント処理の改善
- List#headerの挙動を改善
- Errors::UnknownItemId 時のエラーメッセージを分かりやすく
- テスト漏れに対するテストコード作成とテスト
- フッターが挿入時、リスト領域をオーバフローしない場合でも改ページされる場合がある
- Tblockで基本書式のみ設定されている場合、その書式が反映されない
- Tblockがフォントサイズに対して小さすぎる場合にエラー