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
|
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
|
# 配置CUPS
|
||||||
configure_cups() {
|
configure_cups() {
|
||||||
info "配置 CUPS 允许远程访问..."
|
info "配置 CUPS 允许远程访问..."
|
||||||
@@ -786,6 +845,9 @@ main() {
|
|||||||
systemctl enable avahi-daemon
|
systemctl enable avahi-daemon
|
||||||
success "Avahi 服务已启动并设置开机自启"
|
success "Avahi 服务已启动并设置开机自启"
|
||||||
|
|
||||||
|
# 7. 安装虚拟PDF打印机(用于测试)
|
||||||
|
install_pdf_printer
|
||||||
|
|
||||||
# 更新IP地址(如果配置了静态IP)
|
# 更新IP地址(如果配置了静态IP)
|
||||||
LOCAL_IP=$(get_ip)
|
LOCAL_IP=$(get_ip)
|
||||||
|
|
||||||
@@ -803,10 +865,13 @@ main() {
|
|||||||
echo -e " ${BLUE}用户名:${NC} root"
|
echo -e " ${BLUE}用户名:${NC} root"
|
||||||
echo -e " ${BLUE}密码:${NC} 你的 SSH 密码"
|
echo -e " ${BLUE}密码:${NC} 你的 SSH 密码"
|
||||||
echo ""
|
echo ""
|
||||||
|
echo -e " ${GREEN}[PDF打印机]${NC} 已安装虚拟 PDF 打印机用于测试"
|
||||||
|
echo -e " ${GREEN} ${NC} PDF 输出目录: /var/spool/cups-pdf/"
|
||||||
|
echo ""
|
||||||
echo -e " ${YELLOW}下一步:${NC}"
|
echo -e " ${YELLOW}下一步:${NC}"
|
||||||
echo " 1. 用浏览器打开上面的地址"
|
echo " 1. 用浏览器打开上面的地址"
|
||||||
echo " 2. 点击 Administration → Add Printer"
|
echo " 2. 可使用已安装的 PDF 打印机测试连接"
|
||||||
echo " 3. 选择你的 USB 打印机"
|
echo " 3. 点击 Administration → Add Printer 添加真实打印机"
|
||||||
echo " 4. 勾选 Share This Printer"
|
echo " 4. 勾选 Share This Printer"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e " ${YELLOW}客户端连接:${NC}"
|
echo -e " ${YELLOW}客户端连接:${NC}"
|
||||||
|
|||||||
Reference in New Issue
Block a user