diff --git a/config/app_config.yml.SAMPLE b/config/app_config.yml.SAMPLE index b8e9ee51..d63bce33 100644 --- a/config/app_config.yml.SAMPLE +++ b/config/app_config.yml.SAMPLE @@ -83,6 +83,11 @@ default: &defaults # Some documents (like group and article PDFs) can include page breaks # after each sublist. #pdf_add_page_breaks: true + # Alternatively, this can be set for each document. + #pdf_add_page_breaks: + # order_by_groups: true + # order_by_articles: true + # Page footer (html allowed). Default is a Foodsoft footer. Set to `blank` for no footer. #page_footer: FC Test is supported by Hoster. diff --git a/lib/order_pdf.rb b/lib/order_pdf.rb index 5b158b8b..b636b423 100644 --- a/lib/order_pdf.rb +++ b/lib/order_pdf.rb @@ -50,10 +50,25 @@ class OrderPdf < Prawn::Document # add pagebreak or vertical whitespace, depending on configuration def down_or_page(space=10) - if FoodsoftConfig[:pdf_add_page_breaks] + if pdf_add_page_breaks? start_new_page else move_down space end end + + protected + + # return whether pagebreak or vertical whitespace is used for breaks + def pdf_add_page_breaks?(docid=nil) + docid ||= self.class.name.underscore + cfg = FoodsoftConfig[:pdf_add_page_breaks] + if cfg.is_a? Array + cfg.index(docid.to_s).any? + elsif cfg.is_a? Hash + cfg[docid.to_s] + else + cfg + end + end end