我正在使用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
答案 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
的单元格的序列,因此异常会告诉您它正在预期序列。