首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Clojure在OpenPDF中加载字体

使用Clojure在OpenPDF中加载字体
EN

Stack Overflow用户
提问于 2022-11-10 08:09:12
回答 2查看 58关注 0票数 1

我正在用Clojure测试OpenPDF。我设法制作了一个简单的文档,但存在字体问题。

下面是一些失败的代码:

代码语言:javascript
复制
(ns invoice.download.pdf
  (:require
   [clojure.java.io :as io])
  (:import [com.lowagie.text Font FontFactory Paragraph]
           [com.lowagie.text.pdf BaseFont]))

(defn- add-invoice [document]
  (let [font  (-> (io/resource "fonts/Helvetica.ttf")
                  (.toString)
                  (BaseFont/createFont BaseFont/IDENTITY_H BaseFont/NOT_EMBEDDED)
                  (Font. 12))]
    (.add document (Paragraph. "Invoice" font))))

某些东西在设置字体大小时会崩溃,但不会引发任何异常。似乎没有创建字体,即使代码的这一部分执行良好,除了设置字体大小。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-11 10:59:21

您可以使用包含open的clj-pdf,我认为使用自定义-ttf-字体应该有效:

代码语言:javascript
复制
(:use clj-pdf.core)
(pdf
  [{:font {:encoding :unicode
           :ttf-name "fonts/proxima_nova_extrabold.ttf"}}
   [:phrase "Testing 123"]
   [:phrase "some text"]
   [:phrase "some more text"]
   [:paragraph "yet more text"]]
  "doc.pdf")
票数 1
EN

Stack Overflow用户

发布于 2022-11-11 12:01:56

是的,使用clj-pdf非常有效。按元素设置字体就像一种魅力:

代码语言:javascript
复制
(pdf [{}
      [:paragraph {:family :helvetica
                   :style :bold
                   :size 20}
       "Invoice"]]
     os)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74385871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档