1

在我开始使用 PDFKit 在 Rails 中从 HTML 创建 PDF 之前,我成功地嵌入了 Google 字体,如下所示:

= stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Rokkitt:400,700'

但是,PDFKit 没有在我的 PDF 中嵌入字体。它使用我的打印样式表生成 PDF 并格式化,但使用常规字体,而不是我嵌入的字体。

因此,我将每种字体的 EOT、WOFF、TTF 和 SVG 版本放入/app/assets/fonts并在我的屏幕调用的新字体样式表中切换到这种格式并打印样式表:

@font-face {
    font-family: 'rokkittregular';
    src: font-url('rokkitt-regular-webfont.eot');
    src: local('rokkittregular')
         font-url('rokkitt-regular-webfont.eot?#iefix') format('embedded-opentype'),
         font-url('rokkitt-regular-webfont.woff') format('woff'),
         font-url('rokkitt-regular-webfont.ttf') format('truetype'),
         font-url('rokkitt-regular-webfont.svg#rokkittregular') format('svg');
    font-weight: normal;
    font-style: normal;}

同样,这对于我的常规 HTML 页面来说效果很好。同样,PDFKit 没有在我的 PDF 中嵌入字体。

假设这可能与 PDFKit 无法找到字体有关,我创建了一个单独的打印字体样式表以嵌入到我的打印样式表中。在其中,我切换到了这个符号:

@font-face {
    font-family: "rokkittregular";
    src: url("/assets/rokkitt-regular-webfont.eot");
    src: url("/assets/rokkitt-regular-webfont.eot?#iefix") format("embedded-opentype"),
         url("/assets/rokkitt-regular-webfont.woff") format("woff"),
         url("/assets/rokkitt-regular-webfont.ttf") format("truetype"),
         url("/assets/rokkitt-regular-webfont.svg#rokkittregular") format("svg");
    font-weight: normal;
    font-style: normal;}

后来到这个符号:

@font-face {
    font-family: "rokkittregular";
    src: url("#{Rails.root}/assets/rokkitt-regular-webfont.eot");
    src: url("#{Rails.root}/assets/rokkitt-regular-webfont.eot?#iefix") format("embedded-opentype"),
         url("#{Rails.root}/assets/rokkitt-regular-webfont.woff") format("woff"),
         url("#{Rails.root}/assets/rokkitt-regular-webfont.ttf") format("truetype"),
         url("#{Rails.root}/assets/rokkitt-regular-webfont.svg#rokkittregular") format("svg");
    font-weight: normal;
    font-style: normal;}

仍然没有用。

奇怪的是,如果您将浏览器指向http://localhost:5000/assets/rokkitt-regular-webfont.eot,它会将您带到字体文件。

我怎样才能让这些字体在 PDFKit 中工作?

4

1 回答 1

0

解决方案是更改我在打印样式表中调用字体的方式:

h1 {font-family: "rokkittregular";}

不是

h1 {font-family: "Rokkitt", serif;}
于 2013-03-13T05:38:47.127 回答