2

Clojure の clj-pdf ライブラリを使用して、グラフを含む pdf を作成しています。Incanter ライブラリを使用してチャートを作成し、画像をバイト配列に変換しています。次に、clj-pdf を使用して、各隅に 1 つずつ、4 つのグラフを持つ pdf を作成しようとしています。これを行うと、 IllegalArgumentException Don't know how to create ISeq from: clojure.lang.Keyword clojure.lang.RT.seqFrom (RT.java:505) というエラーが表示されます
テーブルの外に画像を正常に追加できますが、書式設定はひどいもので、1 行に 1 つの画像です。これを修正する方法はありますか?

私が試しているコード行は次のとおりです。

(pdf [{} [:table {} [:cell [:image {} plot1-bytearr]
         [:image {} plot2-bytearr]]]] "test.pdf")


トレースへの編集リンク: http://pastebin.com/b7DEnjXY
実行可能な (うまくいけば) 例へのリンク: http://pastebin.com/fPvjFFbi

4

1 に答える 1

2

A:tableは行単位で指定する必要があります。

(pdf [{} [:table row1 
                 row2
                 row3]] 
     "test.pdf")

行はシーケンスである必要があります。

(pdf [{} [:table ["11" "12" "13"]
                 ["21" "22" "23"]]] "test.pdf")

1 つのセルに 2 つの画像を配置しましたが、

(pdf [{} [:table [[:cell "11" "12" "13"]]
                 ["21" "22" "23"]]] "test.pdf")

"12" と "13" を省略し、最初の行に 11、21、22 が含まれ、2 行目の最初のセルが 23 のテーブルを作成します。:cellこの の使用法はサポートされていないと思います。1 つのセルで複数のセルを使用する場合は、サポートさ:tableれているベクター内に別のベクターを作成します。:cell

あなたの例に基づいて、解決策は

(pdf [{} [:table [[:image plot1-bytearr][:image plot2-bytearr]]]]
     "test.pdf")

sのベクトルを囲む余分な括弧に注意してください:image:cellClj-pdf は、キーワードを のセルを含むシーケンスとして読み取ろうとするため、シーケンスが:table必要であることを示す例外が発生します。

  • これでは 4 つのグラフは表示されません。2つしか提供していないので、これで問題は解決すると思います。
于 2013-07-03T03:42:05.073 に答える