shairontoledo / rghost

RGhost is a document creation and conversion API. It uses the Ghostscript framework for the format conversion, utilizes EPS templates and is optimized to work with larger documents. Support(PDF,PS,GIF,TIF,PNG,JPG,etc)
http://rghost.rubyforge.org
MIT License
187 stars 46 forks source link

Cannot render en dash #49

Closed m7stock closed 5 years ago

m7stock commented 10 years ago

I am not able to render an en dash (–). The expected output of the following script is: test ä ö ü ß test – test

require 'rghost'

RGhost::Config::GS[:charset_convert] = lambda {|text| text}
RGhost::Config::GS[:font_encoding] = 'UTF-8'
doc = RGhost::Document.new :paper => [4, 0.5]
doc.text_in :x => 0.1, :y => 0.1, :write => "test ä ö ü ß test \u2013 test"
#doc.raw "error!" 
doc.render :jpeg, :filename => "test.jpg", :resolution => 300

The actual output is: test

When uncommenting the erroneous line, I get this in test.jpg.rgin:

  (type.ps) runlibfile
  (unit.ps) runlibfile
  (IsoLatin.enc) runlibfile
  /default_encoding IsoLatin def  
<< /Duplex false /Tumble false >> setpagedevice
/pagesize [113 14]  def
/margin 3 dict def margin begin /top 1 cm  def /right 1 cm  def /bottom 1 cm  def /left 1 cm  def end
(paper.ps) runlibfile
   [ /Producer (Ruby Ghostscript - RGhost v0.8.7)  /DOCINFO pdfmark   /rows_per_page 80 def  /count_pages 10 def  /row_height 0.4 cm  def  /row_padding 0.1 cm  def    (basic.ps) runlibfile
  (cursor.ps) runlibfile
  (rectangle.ps) runlibfile
  (font.ps) runlibfile
  (textarea.ps) runlibfile
  (horizontal_line.ps) runlibfile
  (vertical_line.ps) runlibfile
  (callbacks.ps) runlibfile
  (show.ps) runlibfile
  (eps.ps) runlibfile
  (jpeg.ps) runlibfile
  (gif.ps) runlibfile
  (begin_document.ps) runlibfile
  (datagrid.ps) runlibfile
  (text.ps) runlibfile
  (frame.ps) runlibfile
  (link.ps) runlibfile
  (rect_link.ps) runlibfile
    limit_left  current_row  moveto  
/_span{
 /Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-encoding findfont 8 scalefont setfont  0 setgray 
} bind def 

/_b{
 /Helvetica-Bold encoding_font
/Helvetica-Bold-encoding exch definefont pop
/Helvetica-Bold-encoding findfont 8 scalefont setfont  0 setgray 
} bind def 

/_bold{
 /Helvetica-Bold encoding_font
/Helvetica-Bold-encoding exch definefont pop
/Helvetica-Bold-encoding findfont 8 scalefont setfont  0 setgray 
} bind def 

/_normal{
 /Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-encoding findfont 8 scalefont setfont  0 setgray 
} bind def 

/_i{
 /Helvetica-Oblique encoding_font
/Helvetica-Oblique-encoding exch definefont pop
/Helvetica-Oblique-encoding findfont 8 scalefont setfont  0 setgray 
} bind def 

/_bi{
 /Helvetica-BoldOblique encoding_font
/Helvetica-BoldOblique-encoding exch definefont pop
/Helvetica-BoldOblique-encoding findfont 8 scalefont setfont  0 setgray 
} bind def 

/_big{
 /Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-encoding findfont 10 scalefont setfont  0 setgray 
} bind def 

/_small{
 /Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-encoding findfont 7 scalefont setfont  0 setgray 
} bind def 

/_h1{
 /Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-encoding findfont 14 scalefont setfont  0 setgray 
} bind def 

/_h2{
 /Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-encoding findfont 13 scalefont setfont  0 setgray 
} bind def 

/_h3{
 /Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-encoding findfont 12 scalefont setfont  0 setgray 
} bind def 

/_h4{
 /Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-encoding findfont 11 scalefont setfont  0 setgray 
} bind def 

/_h5{
 /Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-encoding findfont 10 scalefont setfont  0 setgray 
} bind def 

/_title{
 /Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-encoding findfont 20 scalefont setfont  0 setgray 
} bind def 

/_pre{
 /Courier encoding_font
/Courier-encoding exch definefont pop
/Courier-encoding findfont 8 scalefont setfont  0 setgray 
} bind def 
   (begin_document.ps) runlibfile
  limit_left  current_row  moveto   beging  0.1 cm  0.1 cm  moveto  _default_font (test ä ö ü ß test – test) show   endg  error! 

 after_page_create  callback  after_document_create  showpage  
%%EOF

The /default_encoding IsoLatin does not seem right. How do I set it to UTF-8? Btw., the written version number seems to be outdated. I am using version 0.9.3.

ollym commented 10 years ago

@matthiasstock this is partially fixed by #52 but it doesn't allow – em dash.