如何在R环境中直接将dataframe或绘图发送至打印机?
在R中直接打印DataFrame或绘图的可行方案
一、直接打印绘图
根据操作系统的不同,可采用以下方式实现:
Windows系统
使用win.print()唤起系统打印对话框,直接绘制图形并发送至打印机:
# 唤起系统打印对话框 win.print() # 绘制目标图形(示例为散点图) plot(mtcars$wt, mtcars$mpg, main = "车重与油耗关系") # 关闭打印设备 dev.off()
若使用ggplot2绘图,流程完全一致:
library(ggplot2) win.print() ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point() + labs(title = "车重与油耗关系") dev.off()
Mac/Linux系统
通过生成临时PostScript文件,调用系统lpr命令完成打印:
# 创建临时PS文件 tmp_ps <- tempfile(fileext = ".ps") # 将图形输出到PS文件 postscript(tmp_ps) plot(mtcars$wt, mtcars$mpg, main = "车重与油耗关系") dev.off() # 调用系统命令打印 system(paste("lpr", tmp_ps)) # 删除临时文件 file.remove(tmp_ps)
二、直接打印DataFrame
打印纯文本格式数据
Windows系统
将DataFrame写入临时文本文件,调用记事本的打印命令:
# 创建临时文本文件 tmp_txt <- tempfile(fileext = ".txt") # 将DataFrame写入文件 write.table(mtcars, tmp_txt, row.names = TRUE, sep = "\t", quote = FALSE) # 调用记事本打印 system(paste("notepad /p", tmp_txt)) # 删除临时文件 file.remove(tmp_txt)
Mac/Linux系统
写入临时文本文件后,用lpr命令直接打印:
tmp_txt <- tempfile(fileext = ".txt") write.table(mtcars, tmp_txt, row.names = TRUE, sep = "\t", quote = FALSE) system(paste("lpr", tmp_txt)) file.remove(tmp_txt)
打印格式化美观表格
使用xtable包生成PDF格式表格,再直接调用系统打印:
library(xtable) # 创建临时PDF文件 tmp_pdf <- tempfile(fileext = ".pdf") # 将DataFrame转为格式化表格并输出到PDF print(xtable(mtcars, caption = "汽车性能数据"), file = tmp_pdf, include.rownames = TRUE) # Windows系统打印PDF system(paste("start /print", tmp_pdf)) # Mac/Linux系统替换为: # system(paste("lpr", tmp_pdf)) # 删除临时文件 file.remove(tmp_pdf)
注意事项
- 确保系统已配置默认打印机,否则可能需手动选择设备
- 临时文件会自动删除,不会残留垃圾文件
- 不同系统的命令存在差异,需根据自身环境调整
内容的提问来源于stack exchange,提问作者Lily
相关产品推荐
相关产品推荐

