尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

macOS虚拟打印机实用指南:用RWTS-PDFwriter把任意文档一键转成PDF

macOS虚拟打印机实用指南:用RWTS-PDFwriter把任意文档一键转成PDF macOS虚拟打印机实用指南用RWTS-PDFwriter把任意文档一键转成PDF【免费下载链接】RWTS-PDFwriterAn OSX print to pdf-file printer driver项目地址: https://gitcode.com/gh_mirrors/rw/RWTS-PDFwriter把网页存成 PDF靠截图文字没法搜索。靠系统自带的存储为 PDF每打一次都要手选保存位置、手敲文件名。一天要归档几十份合同、报表、聊天记录时这套流程能把人逼疯。RWTS-PDFwriter 就是来解决这个问题的它把打印变成存 PDF一次配置从此免手选。它是一款面向 macOS 11.0 的开源虚拟打印机驱动基于成熟的 CUPS-PDF 技术效果类似 Windows 上知名的 CutePDF。它解决的不是打印问题而是归档问题把打印对话框想象成邮局柜台普通打印机是把内容印到纸上寄出去而 RWTS-PDFwriter 是一台自动分拣机——你照常点击打印它把文档转成 PDF 文件自动归档到预设目录还给文件取好名字、处理好重名冲突。全程不需要你碰一下键盘。和同类方案相比它的差异很直接对比维度RWTS-PDFwritermacOS 内置打印为PDF商业虚拟打印机输出位置自动存入预设文件夹每次手动选位置多数依赖授权文件命名按文档标题自动命名冲突加后缀手动输入一般多用户支持每用户独立目录隔离共享同一流程有限自动化能力支持 lpr 命令行批处理弱部分成本开源免费GPL v2免费订阅制一句话总结内置方案是每次都要你伺候它RWTS-PDFwriter 是装好之后它伺候你。五分钟从零到可用安装、配置、打印三步走第一步装驱动二选一最省事的方式是直接安装官方提供的 pkg 安装包。如果你想自己编译仓库里提供了完整的构建脚本git clone https://gitcode.com/gh_mirrors/rw/RWTS-PDFwriter cd RWTS-PDFwriter ./build/buildscript.sh # 需安装 Xcode 命令行工具产物为 RWTS-PDFwriter.pkg脚本会依次完成编译、生成 PPD 驱动文件、打包安装器。如果不做苹果公证直接省略-n参数即可脚本执行完安装包会出现在仓库根目录。第二步告诉它PDF 放哪里安装完成后系统会自动弹出 PDFWriter Utility 工具界面极简——就两个按钮点击Create PDF Destination Folder选一个你喜欢的目录。它会在这个目录和/var/spool/pdfwriter/你的用户名之间建立符号链接之后所有打印输出都会自动落进你选的文件夹。注意选完位置后要退出 Utility安装流程才算真正完成。第三步像平时一样点打印在任何应用里按⌘ P把打印机换成PDFwriter点击打印。文档已经静静躺在你的目标文件夹里了。值得深挖的两个技术细节多用户隔离每人一个独立收件箱想象一栋公寓楼每个住户都有自己的信箱邮递员按门牌投递谁也不会拿错信。RWTS-PDFwriter 的后端就是这样设计的输出目录按用户名隔离/var/spool/pdfwriter/[用户名]/。具体实现里后端通过getpwnam解析打印任务的发起者如果查不到比如系统服务触发的匿名打印就回退到nobody账户归档到anonymous users目录。权限上也做了分级实名用户的目录是 700、文件是 600仅自己可读写匿名用户的目录是 777、文件是 666全系统可访问同时每个文件的所有权都会chown给对应用户。这套机制同时解决了权限隔离和文件归属两个问题。原子文件创建并发打印也不会互相覆盖多人同时打印、文件名又恰好相同怎么办很多程序的做法是先检查文件是否存在再创建——这两步之间存在时间差正是经典的 check-then-act 竞态两个任务同时通过检查然后互相覆盖。RWTS-PDFwriter 的做法更聪明直接调用open()并带上O_CREAT | O_EXCL标志。这个组合的含义是只有文件不存在时才创建创建动作本身就是原子的谁先抢到算谁的。没抢到的那个会自动尝试文件名-1.pdf、文件名-2.pdf……直到成功。文件名则取自打印任务的标题/自动替换为:超过 200 字符截断最后统一补上.pdf后缀。所以你经常能看到季度报告-1.pdf这样的命名不是 bug是防冲突设计。三个拿来即用的实战场景场景一网页内容一键归档研究资料、重要文章、电子账单与其截图存档无法搜索文字不如直接打印成 PDF。操作过程在 Safari 或 Chrome 里打开网页按⌘ P打印机选 PDFwriter点打印。最终效果一份带文字层、可全文搜索的 PDF 自动进入你的归档目录文件名就是网页标题无需任何手动操作。场景二命令行批量转换几十个.txt文本要批量转 PDF靠鼠标一个个点打印显然不现实。CUPS 的lpr命令可以直接投递作业for file in *.txt; do cat $file | lpr -P PDFwriter -T ${file%.txt} done注意-T参数它指定作业标题也就是最终的文件名。如果忘了加文件会以Untitled.pdf命名后端代码里(stdin)标题会被替换成 Untitled。同理Doxygen 生成的refman.pdf、cloc 的报表 CSV都可以一条lpr -P PDFwriter直接转档很自然地嵌进你的构建脚本里。场景三把 PDF 直接送进网盘同步目录想让打印的 PDF 自动出现在 Dropbox 或 iCloud 同步文件夹里利用符号链接机制就行。操作过程在 PDFWriter Utility 里创建目标文件夹时直接选网盘同步目录下的子文件夹或者手动执行ln -s ~/Library/Mobile\ Documents/PDF_Output /var/spool/pdfwriter/$USER最终效果打印完成即同步手机、另一台电脑上立刻能看到新文档。注意后端不支持和已有实体文件夹建立符号链接想换位置需要先清理旧的。避坑指南这些问题九成用户都遇到过Q打印机没有出现在打印机与扫描仪列表里检查后端是否注册成功正常安装后/usr/libexec/cups/backend/pdfwriter应是指向/Library/Printers/RWTS/PDFwriter/pdfwriter的符号链接。若缺失可参照安装脚本重启打印服务launchctl unload/load对应的 cupsd 配置再执行lpadmin -p PDFwriter -E -v pdfwriter:/重新注册。Q打印报错 Application print output is not compatible后端在写入前会校验数据是否以%PDF魔数开头。如果某个老应用输出的是 PostScript 或其他格式就会被拒绝。这是正常保护不是故障——该驱动只收 PDF 流。Q用 lpr 打印出来的全是 Untitled.pdf八成是漏了-T参数。习惯性地在每条 lpr 命令里带上标题省去后续改名的麻烦。Q想换存储位置Utility 提示 replacing an existing location is not supported这是有意为之——符号链接不能覆盖已有位置。先删掉旧链接或旧目录再重新创建即可。Q别人的文件权限是 666安全吗匿名打印的 666 权限是设计选择实名用户打印的文件仍是 600 私有权限。如果机器上有敏感文档建议始终用自己的账户打印。下一步按你的角色选一条路项目本身基于 GPL v2 开源背后是 CUPS-PDF 与 Lisanet PDFWriter 一脉相承的技术路线。未来可能的演进方向包括云存储深度集成、PDF/A 等归档格式支持、更丰富的元数据注入以及面向团队的打印统计能力——这些也都是社区贡献的热点。新手现在就去装好驱动用任意文档打一份测试文件感受一下打印即归档的顺畅。进阶用户把lpr批处理写进你的工作流再研究一下符号链接把输出目录指向网盘同步文件夹。开发者打开pdfwriter/main.swift重点看O_CREAT | O_EXCL的原子创建逻辑和多用户权限分级这是两个值得借鉴的经典设计。fork 一份按 GPL v2 的规则去改进它哪怕只是补一个你需要的功能。工具的价值不在于复杂而在于装好就忘掉它。RWTS-PDFwriter 正是这样的工具——配置一次此后每次打印都是自动化。【免费下载链接】RWTS-PDFwriterAn OSX print to pdf-file printer driver项目地址: https://gitcode.com/gh_mirrors/rw/RWTS-PDFwriter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表