feat: 添加虚拟PDF打印机用于测试CUPS连接

- 新增 install_pdf_printer 函数自动安装 cups-pdf
- 自动配置并共享 PDF 虚拟打印机
- 客户端可通过连接 PDF 打印机测试 CUPS 服务是否正常
- PDF 输出目录: /var/spool/cups-pdf/

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-30 22:35:01 +08:00
parent 2b373ff6ee
commit 0f0e2d4960

View File

@@ -563,6 +563,65 @@ install_drivers() {
fi
}
# 安装虚拟PDF打印机用于测试连接
install_pdf_printer() {
info "安装虚拟 PDF 打印机..."
# 安装 cups-pdf 包
apt install -y cups-pdf
# 等待 CUPS 服务就绪
sleep 2
# 检查是否已存在 PDF 打印机
if lpstat -p PDF 2>/dev/null | grep -q "PDF"; then
info "PDF 打印机已存在,跳过创建"
else
# 添加 PDF 虚拟打印机
# 使用 lpadmin 命令创建打印机
lpadmin -p PDF \
-v cups-pdf:/ \
-E \
-m lsb/usr/cups-pdf/CUPS-PDF_opt.ppd \
-D "虚拟PDF打印机 (测试用)" \
-L "本地" \
-o printer-is-shared=true
# 如果上面的 PPD 文件不存在,尝试其他路径
if ! lpstat -p PDF 2>/dev/null | grep -q "PDF"; then
# 尝试使用通用 PPD
lpadmin -p PDF \
-v cups-pdf:/ \
-E \
-m raw \
-D "虚拟PDF打印机 (测试用)" \
-L "本地" \
-o printer-is-shared=true 2>/dev/null || true
fi
# 启用打印机
cupsenable PDF 2>/dev/null || true
cupsaccept PDF 2>/dev/null || true
fi
# 配置 cups-pdf 输出目录
if [ -f /etc/cups/cups-pdf.conf ]; then
# 设置输出目录为 /var/spool/cups-pdf/ANONYMOUS (匿名用户)
sed -i 's|^Out .*|Out /var/spool/cups-pdf/${USER}|' /etc/cups/cups-pdf.conf
# 创建输出目录
mkdir -p /var/spool/cups-pdf/ANONYMOUS
chmod 1777 /var/spool/cups-pdf/ANONYMOUS
fi
# 验证安装
if lpstat -p PDF 2>/dev/null | grep -q "PDF"; then
success "虚拟 PDF 打印机安装成功"
info "PDF 文件输出目录: /var/spool/cups-pdf/"
else
warn "虚拟 PDF 打印机安装可能不完整,请在 CUPS 管理界面手动添加"
fi
}
# 配置CUPS
configure_cups() {
info "配置 CUPS 允许远程访问..."
@@ -786,6 +845,9 @@ main() {
systemctl enable avahi-daemon
success "Avahi 服务已启动并设置开机自启"
# 7. 安装虚拟PDF打印机用于测试
install_pdf_printer
# 更新IP地址如果配置了静态IP
LOCAL_IP=$(get_ip)
@@ -803,10 +865,13 @@ main() {
echo -e " ${BLUE}用户名:${NC} root"
echo -e " ${BLUE}密码:${NC} 你的 SSH 密码"
echo ""
echo -e " ${GREEN}[PDF打印机]${NC} 已安装虚拟 PDF 打印机用于测试"
echo -e " ${GREEN} ${NC} PDF 输出目录: /var/spool/cups-pdf/"
echo ""
echo -e " ${YELLOW}下一步:${NC}"
echo " 1. 用浏览器打开上面的地址"
echo " 2. 点击 Administration → Add Printer"
echo " 3. 选择你的 USB 打印机"
echo " 2. 可使用已安装的 PDF 打印机测试连接"
echo " 3. 点击 Administration → Add Printer 添加真实打印机"
echo " 4. 勾选 Share This Printer"
echo ""
echo -e " ${YELLOW}客户端连接:${NC}"