File tree Expand file tree Collapse file tree
lib/thinreports/basic_report
test/basic_report/units/report Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ Breaking Changes:
1010Enhancements:
1111
1212* Add Ruby 3.1, 3.2 support
13+ * Allow any string to be set to the title attribute of the PDF document metadata
1314
1415Notes:
1516
Original file line number Diff line number Diff line change @@ -11,11 +11,12 @@ class PDF
1111
1212 # @param [Thinreports::BasicReport::Report::Base] report
1313 # @param [Hash] security (nil)
14- def initialize ( report , security : nil )
14+ # @param [String] title (nil)
15+ def initialize ( report , security : nil , title : nil )
1516 report . finalize
1617
1718 @report = report . internal
18- title = default_layout ? default_layout . format . report_title : nil
19+ title || = default_layout ? default_layout . format . report_title : nil
1920
2021 @document = Document . new ( title : title , security : security )
2122 @drawers = { }
Original file line number Diff line number Diff line change @@ -149,13 +149,15 @@ def layout(id = nil)
149149
150150 # @param [String] filename
151151 # @param [Hash] security (see http://prawnpdf.org/api-docs/2.0/Prawn/Document/Security.html#encrypt_document-instance_method)
152+ # @param [String] title Value of the title attribute of the PDF document metadata.
153+ # if nil, the title of the default layout file is set.
152154 # @return [String]
153155 # @example Generate PDF data
154156 # report.generate # => "%PDF-1.4...."
155157 # @example Create a PDF file
156158 # report.generate(filename: 'foo.pdf')
157- def generate ( filename : nil , security : nil )
158- Thinreports ::BasicReport ::Generator ::PDF . new ( self , security : security ) . generate ( filename )
159+ def generate ( filename : nil , security : nil , title : nil )
160+ Thinreports ::BasicReport ::Generator ::PDF . new ( self , security : security , title : title ) . generate ( filename )
159161 end
160162
161163 # @see Thinreports::BasicReport::Core::Shape::Manager::Target#list
Original file line number Diff line number Diff line change @@ -125,7 +125,7 @@ def test_generate
125125 generator . expects ( :generate ) . with ( 'result.pdf' )
126126
127127 Thinreports ::BasicReport ::Generator ::PDF . expects ( :new )
128- . with ( report , security : { owner_password : 'pass' } )
128+ . with ( report , security : { owner_password : 'pass' } , title : nil )
129129 . returns ( generator )
130130
131131 report . generate (
@@ -134,6 +134,13 @@ def test_generate
134134 )
135135 end
136136
137+ def test_generate_when_title_argument_is_specified
138+ report = Report ::Base . new layout : @layout_file . path
139+ pdf = report . generate ( title : 'Custom title' )
140+
141+ assert_equal 'Custom title' , PDF ::Reader . new ( StringIO . new ( pdf ) ) . info [ :Title ]
142+ end
143+
137144 def test_page_should_return_the_current_page
138145 @report . use_layout ( @layout_file . path )
139146 @report . start_new_page
You can’t perform that action at this time.
0 commit comments