pdf - clj-pdf : Error adding image in a table

标签 pdf clojure

我正在使用 Clojure 的 clj-pdf 库来创建包含图表的 pdf。我正在使用 Incanter 库制作图表并将图像转换为字节数组。然后我尝试使用 clj-pdf 制作一个包含 4 个图表的 pdf,每个角一个。当我这样做时,我收到错误 IllegalArgumentException 不知道如何创建 ISeq from: 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

最佳答案

: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 的这种用法不受支持。如果您想在一个单元格中使用多个单元格,我将在受支持的 :cell 向量内创建另一个 :table 向量。

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

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

请注意 :image 向量周围的额外括号。 Clj-pdf 尝试将您的 :cell 关键字读取为包含 :table 单元格的序列,因此出现异常,告诉您它需要一个序列。

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

关于pdf - clj-pdf : Error adding image in a table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433878/

相关文章:

clojure - 如何在clojure中创建可执行文件?

clojure - Clojure 的 STM 模型可以在多个 JVM 上工作吗?

clojure - 如何升级 Heroku Leiningen 版本?

unit-testing - 如何将测试映射到数字列表

android - 如何检查pdf文件是从其他文件类型转换而来的

php - 如何从数据库中获取数据并将其显示在自定义 pdf 文件中

c# - 将表单域从一个 PDF 复制到另一个

javascript - JQuery/Javascript 或其他方式静默仅打印一次

android - 如何在 android 中读取受密码保护/从 pdf 中删除密码?

ssh - Clojure - 如何远程连接到正在运行的 REPL 进程