diff --git a/config/app_config.yml.SAMPLE b/config/app_config.yml.SAMPLE
index b8e9ee510..d63bce33f 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 5b158b8b3..b636b4233 100644
--- a/lib/order_pdf.rb
+++ b/lib/order_pdf.rb
@@ -50,10 +50,25 @@ def fontsize(n)
# 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