R输出图形中的字体设置及pdf图形中的中文支持

Python010

R输出图形中的字体设置及pdf图形中的中文支持,第1张

title: "Rfonts"

author: "wintryheart"

date: "2020/7/6"

output:

html_document:

toc: true

toc_depth: 2

number_sections: true

在windows系统中,字体集(the font family)只是一个字符串名字,必须映射到特定的windows字体。

windowsFonts() 函数,用于列出已有的字体映射,或定义新的映射。 windowsFont() 函数用于创建一个新的映射。

系统自带三个字体集名: "serif" "sans" "mono" ,分别映射 "TT Times New Roman" "TT Arial" "TT Courier New"

这些映射只有在字体风格(font face)是 1 (plain), 2 (bold), 3 (italic), or 4 (bolditalic) 时使用。

showtext 的主要优点是用户可以使用任何受支持的字体文件进行文本渲染,文本符号将被转换为多边形(用于矢量图形)或光栅图像(用于位图和屏幕图形),从而在所有平台上生成与设备无关的输出。如果您想在图形设备中使用非标准字体,此函数将非常有用。

为了使pdf()更好地显示特定的中文字体,需要调用中文字体文件,比如windows系统自带的 simkai.ttf

Cairo初始化一个新的图形设备,使用Cairo图形库进行渲染。当前能制作高质量的PNG、JPEG、TIFF位图文件、具有嵌入式字体的高分辨率PDF文件、SVG图形和PostScript文件。它还提供了X11和Windows交互式图形设备。不像其他设备,它支持所有的图形功能,包括alpha混合,抗锯齿等。

CairoX11()、CairoPNG()、CairoPDF()、CairoPS()和CairoSVG()是Cairo的简易的基本类型包装器,它们使用的参数与所替换的设备(如X11()、png()、pdf()等)相同。

但由于Cairo()更灵活,建议使用Cario()函数。

Cairo.capabilities()查看cairo包支持的所有图形格式。

注:Cairo()输出pdf图形时,必须设置dpi。没有经验,不好设置。在上例中dpi不能大于100。不如直接使用CairPDF()更为方便,不用设置dpi。

注:

office 2007中不能直接打开VB编辑器,请按Alt + F11打开。

import win32com.client # 导入脚本模块 WordApp = win32com.client.Dispatch("Word.Application") # 载入WORD模块

WordApp.Visible = True

# 显示Word应用程序

1、 新建Word文档

doc = WordApp.Documents.Add()

# 新建空文件

doc = WordApp.Documents.Open(r"d:\2011专业考试计划.doc") # 打开指定文档

doc.SaveAs(r"d:\2011专业考试计划.doc")

# 文档保存

doc.Close(-1)

# 保存后关闭,doc.Close()或doc.Close(0)直接关闭不保存

2、 页面设置

doc.PageSetup.PaperSize = 7

# 纸张大小, A3=6, A4=7

doc.PageSetup.PageWidth = 21*28.35 # 直接设置纸张大小, 使用该设置后PaperSize设置取消

doc.PageSetup.PageHeight = 29.7*28.35 # 直接设置纸张大小

doc.PageSetup.Orientation = 1 # 页面方向, 竖直=0, 水平=1 doc.PageSetup.TopMargin = 3*28.35

# 页边距上=3cm,1cm=28.35pt

doc.PageSetup.BottomMargin = 3*28.35 # 页边距下=3cm doc.PageSetup.LeftMargin = 2.5*28.35 # 页边距左=2.5cm doc.PageSetup.RightMargin = 2.5*28.35 # 页边距右=2.5cm

doc.PageSetup.TextColumns.SetCount(2) # 设置页面分栏=2

3、 格式设置

sel = WordApp.Selection

# 获取Selection对象 sel.InsertBreak(8)

# 插入分栏符=8, 分页符=7

sel.Font.Name = "黑体" # 字体 sel.Font.Size = 24 # 字大 sel.Font.Bold = True # 粗体 sel.Font.Italic = True # 斜体 sel.Font.Underline = True

# 下划线

sel.ParagraphFormat.LineSpacing = 2*12 # 设置行距,1行=12磅

sel.ParagraphFormat.Alignment = 1 # 段落对齐,0=左对齐,1=居中,2=右对齐 sel.TypeText("XXXX") # 插入文字 sel.TypeParagraph()

# 插入空行

注:ParagraphFormat属性必须使用TypeParagraph()之后才能二次生效