如何在R语言中向物理打印机打印文档?是否有类似Python的方案?
R语言打印文档的可行方案
1. Windows系统下的便捷实现(对标Python的os.startfile)
在Windows环境中,无需额外依赖包,可通过调用系统的rundll32.exe实现和os.startfile一致的效果——调用默认程序打开文档并触发打印,支持Word、PDF、文本等系统可识别的格式:
# 打印PDF文档(shell命令写法) shell('rundll32.exe url.dll,FileProtocolHandler "myPDF.pdf" /print') # 更规范的system2写法 system2("rundll32.exe", args = c("url.dll,FileProtocolHandler", "myPDF.pdf", "/print"))
2. 跨平台通用方案(调用系统原生打印命令)
如果需要兼容Windows、Linux、macOS,还是得依赖系统原生打印工具:
- Linux/macOS:直接使用
lpr命令,指定打印机(省略-P则用默认打印机):system2("lpr", args = c("-P", "你的打印机名称", "myPDF.pdf")) - Windows:除了上面的
rundll32方法,也可调用lpr.exe(通常位于System32目录),示例:system2("lpr.exe", args = c("-S", "打印机IP/名称", "-P", "", "myPDF.pdf"))
3. R专属对象打印方案(针对R生成内容)
如果是打印R内部生成的对象(如数据框、图表),可以用printer包,但它不支持直接打印外部文档:
install.packages("printer") library(printer) # 打印数据框 print_df(mtcars) # 打印ggplot图表 library(ggplot2) p <- ggplot(mtcars, aes(mpg, wt)) + geom_point() print_plot(p)
总结:Windows上用rundll32的方式就能实现类似Python的便捷打印,无需依赖lpr.exe;跨平台场景则需调用对应系统的原生打印命令。
内容的提问来源于stack exchange,提问作者OldManSeph
相关产品推荐
相关产品推荐

