From 9c6377964c43ed034cf644a22311810629f42934 Mon Sep 17 00:00:00 2001
From: Jean-Philippe Lang <jp_lang@yahoo.fr>
Date: Tue, 7 Dec 2010 18:53:15 +0000
Subject: [PATCH] Fixes gantt PDF pagination problem (#6348).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4474 e93f8b46-1217-0410-a6f0-8f06a7374b81
---
 lib/redmine/helpers/gantt.rb | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/redmine/helpers/gantt.rb b/lib/redmine/helpers/gantt.rb
index c6a54d32c..fa3a1259c 100644
--- a/lib/redmine/helpers/gantt.rb
+++ b/lib/redmine/helpers/gantt.rb
@@ -246,6 +246,7 @@ module Redmine
           options[:image].stroke_width(1)
           options[:image].text(options[:indent], options[:top] + 2, project.name)
         when :pdf
+          pdf_new_page?(options)
           options[:pdf].SetY(options[:top])
           options[:pdf].SetX(15)
           
@@ -381,6 +382,7 @@ module Redmine
           options[:image].stroke_width(1)
           options[:image].text(options[:indent], options[:top] + 2, version.to_s_with_project)
         when :pdf
+          pdf_new_page?(options)
           options[:pdf].SetY(options[:top])
           options[:pdf].SetX(15)
           
@@ -535,6 +537,7 @@ module Redmine
           options[:image].stroke_width(1)
           options[:image].text(options[:indent], options[:top] + 2, issue.subject)
         when :pdf
+          pdf_new_page?(options)
           options[:pdf].SetY(options[:top])
           options[:pdf].SetX(15)
           
@@ -921,7 +924,7 @@ module Redmine
           :g_width => g_width,
           :indent => 0,
           :indent_increment => 5,
-          :top_increment => 3,
+          :top_increment => 5,
           :format => :pdf,
           :pdf => pdf
         }
@@ -943,6 +946,15 @@ module Redmine
           cmp
         end
       end
+      
+      def pdf_new_page?(options)
+        if options[:top] > 180
+          options[:pdf].Line(15, options[:top], PDF::TotalWidth, options[:top])
+          options[:pdf].AddPage("L")
+          options[:top] = 15
+          options[:pdf].Line(15, options[:top] - 0.1, PDF::TotalWidth, options[:top] - 0.1)
+        end
+      end
     end
   end
 end
-- 
GitLab