Index: lib/redmine/export/pdf.rb =================================================================== --- lib/redmine/export/pdf.rb (リビジョン 7782) +++ lib/redmine/export/pdf.rb (作業コピー) @@ -286,9 +286,19 @@ pdf.footer_date = format_date(Date.today) pdf.AddPage pdf.SetFontStyle('B',11) - pdf.RDMMultiCell(190,5, - "#{issue.project} - #{issue.tracker} # #{issue.id}: #{issue.subject}") + buf = "#{issue.project} - #{issue.tracker} # #{issue.id}" + pdf.RDMMultiCell(190, 5, buf) pdf.Ln + pdf.SetFontStyle('',8) + base_x = pdf.GetX + i = 1 + issue.ancestors.each do |ancestor| + pdf.SetX(base_x + i) + buf = "#{ancestor.tracker} # #{ancestor.id} (#{ancestor.status.to_s}): #{ancestor.subject}" + pdf.RDMMultiCell(190 - i, 5, buf) + i += 1 if i < 35 + end + pdf.Ln pdf.SetFontStyle('B',9) pdf.RDMCell(35,5, l(:field_status) + ":","LT") @@ -351,8 +361,53 @@ pdf.RDMwriteHTMLCell(35+155, 5, 0, 0, Redmine::WikiFormatting.to_html( Setting.text_formatting, issue.description.to_s),"LRB") + + # for CJK + truncate_length = ( l(:general_pdf_encoding).upcase == "UTF-8" ? 80 : 60 ) + + pdf.SetFontStyle('B',9) + pdf.RDMCell(35+155,5, l(:label_subtask_plural) + ":", "LTR") pdf.Ln + issue_list(issue.descendants.sort_by(&:lft)) do |child, level| + buf = truncate("#{child.tracker} # #{child.id}: #{child.subject}", + :length => truncate_length) + level = 10 if level >= 10 + pdf.SetFontStyle('',8) + pdf.RDMCell(35+135,5, (level >=1 ? " " * level : "") + buf, "L") + pdf.SetFontStyle('B',8) + pdf.RDMCell(20,5, child.status.to_s, "R") + pdf.Ln + end + pdf.SetFontStyle('B',9) + pdf.RDMCell(35+155,5, l(:label_related_issues) + ":", "LTR") + pdf.Ln + # for CJK + truncate_length = ( l(:general_pdf_encoding).upcase == "UTF-8" ? 80 : 60 ) + + issue.relations.select { |r| r.other_issue(issue).visible? }.each do |relation| + buf = "" + buf += "#{l(relation.label_for(issue))} " + if relation.delay && relation.delay != 0 + buf += "(#{l('datetime.distance_in_words.x_days', :count => relation.delay)}) " + end + if Setting.cross_project_issue_relations? + buf += "#{relation.other_issue(issue).project} - " + end + buf += "#{relation.other_issue(issue).tracker}" + + " # #{relation.other_issue(issue).id}: #{relation.other_issue(issue).subject}" + buf = truncate(buf, :length => truncate_length) + pdf.SetFontStyle('', 8) + pdf.RDMCell(35+155-50,5, buf, "L") + pdf.SetFontStyle('B',8) + pdf.RDMCell(10,5, relation.other_issue(issue).status.to_s, "") + pdf.RDMCell(20,5, format_date(relation.other_issue(issue).start_date), "") + pdf.RDMCell(20,5, format_date(relation.other_issue(issue).due_date), "R") + pdf.Ln + end + pdf.RDMCell(190,5, "", "T") + pdf.Ln + if issue.changesets.any? && User.current.allowed_to?(:view_changesets, issue.project) pdf.SetFontStyle('B',9)