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:
@@ -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}"
|
||||
|
||||
Reference in New Issue
Block a user