R - 变化plot字形,嵌入字体以pdf

近期使用R绘图遇到两个问题

1. 使用不同的字体

2. 保存 plot 至 pdf 当字体嵌入pdf (embed the font)

使用extrafont和Ghostscript能够解决这两个问题。

1. Ghostscript

安装: http://www.ghostscript.com/download/gsdnld.html

2. extrafont (R package)

下面命令都是在R中执行

- 安装

> install.packages("extrafont")
> library(extrafont)
> #这一步定位系统字体。比方C:\Windows\Fonts\*.ttf, 须要几分钟的时间
> font_import()
> loadfonts()

- 使用

> #查看可用的font family
> fonts()
> library(ggplot2)
> #使用字体Times New Roman绘图
> p <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
  xlab("Weight") + ylab("Miles per Gallon") +
  theme(text=element_text(family="Times New Roman"))
> #保存pdf
> ggsave("font_ggplot.pdf", plot=p)

- 将字体嵌入pdf

> #指定ghostscript的路径
> Sys.setenv(R_GSCMD = "C:/Program Files/gs/gs9.05/bin/gswin32c.exe")
> #嵌入字体
> embed_fonts("font_ggplot.pdf", outfile="font_ggplot_embed.pdf")

所得到的font_ggplot_embed.pdf就是所须要的pdf啦!

能够使用Adobe Reader -> File -> Properties -> Fonts 来查看字体是否已嵌入

(以上内容部分来自http://cran.r-project.org/web/packages/extrafont/README.html)

Bonus:直接使用Ghostscript命令行嵌入字体到pdf

(在cmd中执行,别忘了将ghostscript增加环境变量)

gswin32c -sFONTPATH=C:\Windows\Fonts -sDEVICE=pdfwrite -dEmbedAllFonts=true -o output.pdf input.pdf

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-25 19:01:57

R - 变化plot字形,嵌入字体以pdf的相关文章

CSS3 Web嵌入字体

CSS3嵌入Web字体一直以来Web设计师在设计网页时都想为Web页面添加一些优雅的字体,但浏览器仅限于使用用户在其系统上安装的字体呈现文本,这样一来让大部分网站受限于字体数量的不足.多年来一直都是使用图片替换文本的方式来解决页面上使用优雅字体,但这种对于频繁更换文本的网站来说是一件不切实际的事,以致于我们坚持使用这些少量的Web字体.随着技术的不断发展,出现在Web页面中 使用Flash和JavaScript技术来弥补这一不足.虽然这些方法已经是不错的应急措施, 允许包含自己的字体,但是它们拥

渐变色彩 省略标记 嵌入字体 文本阴影

1.渐变色彩 CSS3 Gradient 分为线性渐变(linear)和径向渐变(radial).由于不同的渲染引擎实现渐变的语法不同,这里我们只针对线性渐变的 W3C 标准语法来分析其用法,其余大家可以查阅相关资料.W3C 语法已经得到了 IE10+.Firefox19.0+.Chrome26.0+ 和 Opera12.1+等浏览器的支持. 这一小节我们来说一下线性渐变: 参数: 第一个参数:指定渐变方向,可以用“角度”的关键词或“英文”来表示: (单击图片可放大) 第一个参数省略时,默认为“

[转]嵌入字体到程序 Winform C#

http://www.cnblogs.com/top5/archive/2011/06/20/2084942.html 程序安装字体或直接调用非注册字体[c#] 1.安装字体 //程序直接将字体文件安装的系统中. 函数声明: [DllImport("kernel32.dll", SetLastError = true)] static extern int WriteProfileString(string lpszSection, string lpszKeyName, string

嵌入字体@font-face

嵌入字体@font-face @font-face能够加载服务器端的字体文件,让浏览器端可以显示用户电脑里没有安装的字体. 语法: @font-face { font-family : 字体名称; src : 字体文件在服务器上的相对或绝对路径; } 这样设置之后,就可以像使用普通字体一样在(font-*)中设置字体样式. 比如: p { font-size :12px; font-family : "My Font"; /*必须项,设置@font-face中font-family同样

[ActionScript 3.0] 使用Embed在类中嵌入字体

1 package 2 { 3 import flash.display.Sprite; 4 import flash.text.Font; 5 import flash.text.TextField; 6 import flash.text.TextFormat; 7 8 /** 9 * @author Frost.Yen 10 * @E-mail [email protected] 11 * @create 2015-6-26 下午3:23:38 12 * 13 */ 14 [SWF(wid

css3 嵌入字体@font-face

语法: @font-face { font-family : 字体名称; src : 字体文件在服务器上的相对或绝对路径; }通过给服务器嵌入字体,我们就可以在网页上使用我们想要使用的字体了. <style> @font-face { font-family: myFirstFont; src: url('Sansation_Light.ttf'), url('Sansation_Light.eot'); /* IE9+ */ } div { font-family:myFirstFont;

R、Python、Open Refine采集pdf数据,清理数据和格式化数据

原文链接:http://tecdat.cn/?p=8076 获取,清理和格式化数据 在本文中,我们将介绍一些技巧和窍门,这些技巧和窍门用于在线查找所需数据,将其存储到计算机上以及如何识别和清除“脏”数据.我们还将回顾一些常见的数据格式,以及如何从一种转换为另一种. 我们今天将使用的数据  gdp_percap.csv 世界银行关于1990年至2016年国家和国家集团人均国内生产总值(GDP)的数据,以当前国际美元计价,并根据不同地区的购买力进行了校正. ucb_stanford_2014.csv

在Flex4中嵌入字体

如果要使用的字体不是系统字体,可以把字体嵌入到Flash中,然后引用该字体.不过字体文件一般都比较大,慎重使用该功能. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"        

利用CSS的@font-face属性 在网页中嵌入字体

字体使用是网页设计中不可或缺的一部分.网页是文字的载体,我们希望在网页中使用某一特定字体,但是该字体并非主流操作系统的内置字体,这样用户在浏览页面的时候就有可能看不到真实的设计. 美工设计师最常做的办法是把想要的文字做成图片,这样做有几个明显缺陷: 一.不可能大范围的使用该字体: 二.图片内容相对使用文字不易修改: 三.不利于网站SEO. 网络上有一些使用sIFR技术.或javascript/flash hack的方法,但实现起来或繁琐,或有缺陷.下面要讲的是如何只通过CSS的@font-fac