1

Ruby PDF::Writer ライブラリを使用して生成された PDF でパワーを表示する簡単な方法はありますか? 基数よりも少し高い指数を出力できることはわかっていますが、これを行うにはもっと簡単な方法があるのではないかと思いました...何らかのマークアップタグなどです。

基本的には、きれいに x**-2 を表示したいです。

前もって感謝します!

4

1 に答える 1

3

必要なことを実行するための簡単なアルゴリズムを作成しました。うまくいけば、それはあなたにもうまくいくでしょう。唯一の要件は、PDF::Writerを使用することです。以下の方法は、PDF::WriterとRuportを使用しています。ただし、Ruportを使用していない場合、変更する必要があるのは「draw_text」メソッドだけです。PDF::Writerの「text」メソッドに置き換えてください。

def draw_text_with_exponent(text, left, font_size)
    exponent_offset = 1
    font_size_reduction = 5

    words = text.split(" ")

    buffer = ""
    words.each() do |word|
        if (word.gsub("**", '') == word)
            buffer += word + " "
        else
            number = word.split("**")
            base = number[0]
            exponent = number[1]

            buffer += base
            draw_text(buffer, :left => left, :font_size => font_size)
            left += pdf_writer.text_line_width(buffer, font_size)

            pdf_writer.y+=exponent_offset
            draw_text(exponent, :left => left, :font_size => font_size - font_size_reduction)
            left += pdf_writer.text_line_width(exponent, font_size)
            buffer = ""
            pdf_writer.y-=exponent_offset
        end
    end

    if (buffer.length > 0)
        draw_text(buffer, :left => left, :font_size => font_size)
    end
end

呼び出しの例を次に示します。

draw_text_with_exponent("The numbers are x**2 and y**3 ok?", 50, 11)

この方法で問題が発生した場合、または私の元の質問に対する回答が見つかった場合は、お知らせください。

-JP

于 2009-02-09T19:00:49.473 に答える