Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Redmine pdf export.key

4,288 views

Published on

第2回品川Redmine発表資料になります。 http://shinagawa.redmine.r-labs.org/projects/shinared/wiki/%E7%AC%AC2%E5%9B%9E%E5%8B%89%E5%BC%B7%E4%BC%9A

Published in: Technology, Education
  • Be the first to comment

Redmine pdf export.key

  1. 1. REDMINEPDF NAITOH Jun twitter: @naitoh
  2. 2. Defect #61 Broken character encoding in pdf exportRedmine PDF
  3. 3. Defect #61 Broken character encoding in pdf exportRedmine PDFDefect #6506 PDF export broken with Japanese(Gannt and Issue Tracking)
  4. 4. Redmine PDF libraryRedmine
  5. 5. Redmine PDF libraryRedmine RFPDF (Ruby) NG NG
  6. 6. Redmine PDF libraryRedmine RFPDF (Ruby) NG NG FPDF (PHP)
  7. 7. Redmine PDF libraryRedmine RFPDF (Ruby) NG NG TCPDF fork (PHP) FPDF (PHP)
  8. 8. Redmine PDF libraryRedmine RFPDF (Ruby) NG NG TCPDF fork (PHP) FPDF (PHP) UTF-8 Font
  9. 9. Redmine PDF libraryRedmine edwinmoss RFPDF (Ruby) RFPDF (Ruby) NG NG TCPDF fork (PHP) FPDF (PHP) UTF-8 Font
  10. 10. Redmine PDF libraryRedmine edwinmoss RFPDF OK (Ruby) NG RFPDF (Ruby) NG NG TCPDF fork (PHP) FPDF (PHP) UTF-8 Font
  11. 11. Redmine PDF library prawn (Ruby)Redmine edwinmoss RFPDF OK (Ruby) NG RFPDF (Ruby) NG NG TCPDF fork (PHP) FPDF (PHP) UTF-8 Font
  12. 12. Redmine PDF library Ruby OK OK prawn (Ruby)Redmine edwinmoss RFPDF OK (Ruby) NG RFPDF (Ruby) NG NG TCPDF fork (PHP) FPDF (PHP) UTF-8 Font
  13. 13. Redmine PDF library Ruby OK API OK PDF prawn (Ruby)Redmine edwinmoss RFPDF OK (Ruby) NG RFPDF (Ruby) NG NG TCPDF fork (PHP) FPDF (PHP) UTF-8 Font
  14. 14. Redmine PDF library Ruby OK API OK PDF prawn (Ruby)Redmine edwinmoss API RFPDF OK (Ruby) NG RFPDF (Ruby) NG NG TCPDF fork (PHP) FPDF (PHP) UTF-8 Font
  15. 15. Redmine PDF library Ruby OK API OK PDF prawn (Ruby)Redmine edwinmoss API RFPDF 4 RFPDF … (Ruby) OK NG (Ruby) NG NG TCPDF fork (PHP) FPDF (PHP) UTF-8 Font
  16. 16. RFPDFdef Cell(w, h, txt, border=0, ln=0, align=, fill=0, link=nil)
  17. 17. RFPDF def Cell(w, h, txt, border=0, ln=0, align=, fill=0, link=nil) w:h:
  18. 18. RFPDF def Cell(w, h, txt, border=0, ln=0, align=, fill=0, link=nil) w:h:
  19. 19. RFPDF def Cell(w, h, txt, border=0, ln=0, align=, fill=0, link=nil) w:h:
  20. 20. RFPDF def Cell(w, h, txt, border=0, ln=0, align=, fill=0, link=nil) w: ln=0h: ln=1 ln=2 ln: X,Y (0: , 1: , 2: )
  21. 21. RFPDFdef MultiCell(w, h, txt, border=0, align=J, fill=0, ln=1)
  22. 22. RFPDF def MultiCell(w, h, txt, border=0, align=J, fill=0, ln=1) w:h:
  23. 23. RFPDF def MultiCell(w, h, txt, border=0, align=J, fill=0, ln=1) w:h:
  24. 24. RFPDF def MultiCell(w, h, txt, border=0, align=J, fill=0, ln=1) w: ln=0h: ln=1 ln=2 ln: X,Y (0: , 1: , 2: )
  25. 25. RFPDF def MultiCell(w, h, txt, border=0, align=J, fill=0, ln=1) w: ln=0h: ln=1 ln=2 ln: X,Y (0: , 1: , 2: )
  26. 26. RFPDF def MultiCell(w, h, txt, border=0, align=J, fill=0, ln=1) w: ln=0 Cellh: ln=1 ln=2 ln: X,Y (0: , 1: , 2: )
  27. 27. RFPDF def MultiCell(w, h, txt, border=0, align=J, fill=0, ln=1) w: ln=0 Cellh: byte ln=1 ln=2 ln: X,Y (0: , 1: , 2: )
  28. 28. RFPDF def MultiCell(w, h, txt, border=0, align=J, fill=0, ln=1) w: ln=0 Cellh: byte ln=1 ln=2 ln: X,Y (0: , 1: , 2: )
  29. 29. RFPDF def MultiCell(w, h, txt, border=0, align=J, fill=0, ln=1) w: ln=0 Cellh: byte ln=1 ln=2 ln: X,Y (0: , 1: , 2: )
  30. 30. Redmine RFPDF GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  31. 31. Redmine RFPDF MultiCelljapanese.rb (Shift_JIS) GetStringWidth GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  32. 32. Redminepdf.rb (UTF-8) Cell(iconv) RFPDF MultiCelljapanese.rb (Shift_JIS) GetStringWidth GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  33. 33. Redminepdf.rb (UTF-8) Cell(iconv) UTF-8 RFPDF MultiCelljapanese.rb (Shift_JIS) GetStringWidth GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  34. 34. Redminepdf.rb (UTF-8) Cell(iconv) UTF-8 UTF-8 RFPDF MultiCelljapanese.rb (Shift_JIS) GetStringWidth GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  35. 35. Redminepdf.rb (UTF-8) Cell(iconv) UTF-8 UTF-8 RFPDF MultiCell X 2bytejapanese.rb (Shift_JIS) GetStringWidth GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  36. 36. Redminepdf.rb (UTF-8) Cell(iconv) UTF-8 UTF-8 RFPDF MultiCell X 2bytejapanese.rb (Shift_JIS) GetStringWidth GetStringWidth Shift_JISfpdf.rb(1byte ) MultiCell Cell
  37. 37. Redminepdf.rb (UTF-8) Cell(iconv) UTF-8 UTF-8 RFPDF MultiCell X 2bytejapanese.rb (Shift_JIS) GetStringWidth Shift_JIS GetStringWidth Shift_JISfpdf.rb(1byte ) MultiCell Cell
  38. 38. PDF Redmine RFPDF MultiCelljapanese.rb (Shift_JIS) GetStringWidth GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  39. 39. PDF Redmine RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell(iconv) RFPDF MultiCelljapanese.rb (Shift_JIS) GetStringWidth GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  40. 40. PDF Redmine UTF-8 RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell(iconv) RFPDF MultiCelljapanese.rb (Shift_JIS) GetStringWidth GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  41. 41. PDF Redmine UTF-8 RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell(iconv) Shift_JIS RFPDF MultiCelljapanese.rb (Shift_JIS) GetStringWidth GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  42. 42. PDF Redmine UTF-8 RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell(iconv) Shift_JIS RFPDF MultiCelljapanese.rb (Shift_JIS) GetStringWidth Shift_JIS GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  43. 43. PDF Redmine UTF-8 RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell(iconv) Shift_JIS RFPDF MultiCelljapanese.rb (Shift_JIS) GetStringWidth Shift_JIS GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  44. 44. Redmine UTF-8 RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell(iconv) Shift_JIS RFPDFjapanese.rb (Shift_JIS) MultiCell(fpdf) GetStringWidth Shift_JIS GetStringWidthfpdf.rb(1byte ) MultiCell Cell
  45. 45. Redmine UTF-8 RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell(iconv) Shift_JIS RFPDFjapanese.rb (Shift_JIS) MultiCell(fpdf) GetStringWidth Shift_JIS GetStringWidthtcpdf.rb(String ) )fpdf.rb(1byte MultiCell Font Cell
  46. 46. Redmine general_pdf_encoding != UTF-8 UTF-8 RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell(iconv) Shift_JIS RFPDFjapanese.rb (Shift_JIS) MultiCell(fpdf) GetStringWidth Shift_JIS GetStringWidthtcpdf.rb(String ) )fpdf.rb(1byte MultiCell Font Cell
  47. 47. Redmine general_pdf_encoding != UTF-8 UTF-8 RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell(iconv) RFPDFjapanese.rb (Shift_JIS) MultiCell(fpdf) GetStringWidth GetStringWidthtcpdf.rb(String ) MultiCell Font Cell
  48. 48. Redmine general_pdf_encoding == UTF-8 general_pdf_encoding != UTF-8 UTF-8 RDMMultiCell RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell RDMCell(iconv) RFPDFjapanese.rb (Shift_JIS) MultiCell(fpdf) GetStringWidth GetStringWidthtcpdf.rb(String ) MultiCell Font Cell
  49. 49. Redmine general_pdf_encoding == UTF-8 general_pdf_encoding != UTF-8 UTF-8 RDMMultiCell RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell RDMCell(iconv) UTF-8 RFPDFjapanese.rb (Shift_JIS) MultiCell(fpdf) GetStringWidth GetStringWidthtcpdf.rb(String ) MultiCell Font Cell
  50. 50. Redmine general_pdf_encoding == UTF-8 general_pdf_encoding != UTF-8 UTF-8 RDMMultiCell RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell RDMCell(iconv) UTF-8 RFPDFjapanese.rb (Shift_JIS) MultiCell(fpdf) GetStringWidth UTF-8 GetStringWidthtcpdf.rb(String ) MultiCell Font Cell
  51. 51. Redmine general_pdf_encoding == UTF-8 general_pdf_encoding != UTF-8 UTF-8 RDMMultiCell RDMMultiCell(iconv)pdf.rb (UTF-8) RDMCell RDMCell(iconv) UTF-8 RFPDFjapanese.rb (Shift_JIS) MultiCell(fpdf) GetStringWidth UTF-8 GetStringWidthtcpdf.rb(String ) MultiCell Font Cell
  52. 52. RTL(Right-To-Left)UTF-8 Font Font Kbyte Font (Table Of Contents)

×