Generowanie pdf (PDF::Writer)

Witam wszsytkich Rubowiczów… Jestem tu nowy, znam kilka języków, ale spodobał mi się ostanio ruby. Faktycznie w porównaniu do innych języków ten w końcu mogę powiedzieć, że jest naprawdę obiektowy… Ale nie o tym chciałem.

Pobrałem i zainstalowałem bibliotekę do generowania pdf. Ustawiłem polskie ogonki (program pisze w windowsie więc kodowanie jest ustawione na ten system). I … generuje mi pdf z polskimi ogonkami. Ale kurcze jednak się stała masakra, bo nakrwyają się na siebie literki z polskimi ogonkami. A dokładniej szerokość literki jest mniejsza niż prawdziwa szerokość wyświetlana w dokumencie pdf. Ogólnie kibel jakiś. Ja sie nie znam na tego typu pierdołach - w sensie nie wiem dokładnie jak tam ten pdf jest zbudowany, ale coś tu jest skopane i może ktoś tutaj ma jakiś pomysł jak to poprawić?

Proszę tez o informacje na temat generowania jakiegokolwiek innego dokumentu np (np. MS-Word) z poziomu Ruby. Może być też jakaś inna biblioteka do generowania PDF.

Ja korzystałem z PDF::Writer
http://ruby-pdf.rubyforge.org/pdf-writer/

Poniżej zemieściłem kod programu, który generuje pdf z polskimi ogonkami, które mają nieprawidłową szerokość wyświetlanych znaków.

require “pdf/writer”

diff= {
0xA5 => “Aogonek”,
0xB9 => “aogonek”,
0xC6 => “Cacute”,
0xE6 => “cacute”,
0xCA => “Eogonek”,
0xEA => “eogonek”,
0xA3 => “Lslash”,
0xB3 => “lslash”,
0xD1 => “Nacute”,
0xF1 => “nacute”,
0xD3 => “Oacute”,
0xF3 => “oacute”,
0x8C => “Sacute”,
0x9C => “sacute”,
0x8F => “Zacute”,
0x9F => “zacute”,
0xAF => “Zdotaccent”,
0xBF => “zdotaccent”
}

pdf = PDF::Writer.new
pdf.select_font(“Times-Roman”, { :encoding => “WinAnsiEncoding”, :differences => diff })
text = “ĄĆĘŁŃÓŚŹŻ\nąćęłńóźż\nBez polskich ogonków jest ok. Niektóre znaki jak: ‘Ó’, ‘ó’, ‘Ł’, ‘ł’ - sa wyswietlane prawidlowo.”
pdf.text text, :font_size => 18, :justification => :left
pdf.save_as(“test.pdf”)

Od razu się podepnę - jak sensownie zainstalować PDF::Writer, najlepiej z gema, żeby był porządnie do require’owania przez dowolny skrypt w Rubym (tudzież irb)?

Cześć!

Spotkałam się z tym problemem ale nie w ruby tylko w perlu i nie pod Windows tylko Linuksem, ale wystarczyło użyć czcionek TrueType (zamiast OpenType w naszym przypadku) i pomogło. Nie wiem czy i Tobie pomoże, ale przynajmniej jakiś punkt zaczepienia :slight_smile:

Pozdrawiam
Magda Zarych