clj-pdf:在表中添加图像时出错

时间:2013-07-02 19:11:19

标签: pdf clojure

我正在使用Clojure的clj-pdf库来创建包含图表的pdf。我使用Incanter库制作图表并将图像转换为字节数组。然后我尝试使用clj-pdf制作一个包含4个图表的pdf,每个角落一个。当我这样做时,我收到错误IllegalArgumentException不知道如何创建ISeq:clojure.lang.Keyword clojure.lang.RT.seqFrom(RT.java:505)
我可以成功地在表格外添加图像,但格式很糟糕,每行一个图像。有人如何解决这个问题?

这是我正在尝试的代码行:

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

修改
跟踪链接:http://pastebin.com/b7DEnjXY
链接到可行的(希望)示例:http://pastebin.com/fPvjFFbi

1 个答案:

答案 0 :(得分:2)

需要在行中指定:table,例如

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

行需要是序列。

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

您已在一个单元格中放置了两张图片,但正在执行

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

将省略“12”和“13”,并在第一行创建一个包含11,21和22的表,在第二行中创建一个23作为第一个单元格。我认为不支持使用:cell。如果你想在一个单元格中使用多个单元格,我会在支持的:table向量内创建另一个:cell向量。

根据您的示例,解决方案是

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

请注意:image s矢量周围的额外括号。 Clj-pdf尝试将您的:cell关键字读作包含:table的单元格的序列,因此异常会告诉您它正在预期序列。

  • 这不会给你4张图表。由于您只提供了两个,我想这可以解决您的问题。