diff --git a/setup_cups.sh b/setup_cups.sh index ca7eecb..7b1acb9 100755 --- a/setup_cups.sh +++ b/setup_cups.sh @@ -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}"