Chinaunix首页 | 论坛 | 博客
  • 博客访问: 246078
  • 博文数量: 41
  • 博客积分: 1523
  • 博客等级: 上尉
  • 技术积分: 579
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-05 21:23
文章分类

全部博文(41)

文章存档

2014年(1)

2013年(2)

2012年(1)

2011年(2)

2010年(3)

2009年(1)

2008年(20)

2007年(11)

分类: LINUX

2007-12-29 11:13:48

   生成pdf的方法多了,最近公司要求大家提供的文件要用pdf格式,一个一个装软件太累,于是做了一个pdf生成的工具给大家使用,方便别人也方便自己。
   方法1.命令模式  适用在linux的用户。
        安装软件包 ps2pdf 作用是吧ps文件转换成pdf文件。
        安装软件包2, paps 或 u2ps 是吧文件转换成ps格式的文件。
        或干脆安装一个假的打印机驱动,让打印机驱动为我们转换,这个方法比较好,没有编码的问题。
        就是随便找一个打印机驱动,只要有打印机支持PostScript就好了,一般名字里就能体现出来。
        安装完这些以后就可以用 ps2pdf input.file output.file来转换了。
        paps在有中文的情况下要转换utf编码。
        iconv -f gb2312 -t utf8 input.file |paps |ps2pdf - output.pdf
   方法2.是在做完方法一的基础上,配置samba.模拟一个打印机,把需要转换的文件转换过来。
        samba配置如下:smb.conf
        # 在global 段里面指定编码。
        dos charset = gb2312
        unix charset = gb2312
        display charset = gb2312
        #  授权可以使用的机器。
        hosts allow = 172.16.2. 172.16.1. 127.
        security = share
        load printers = yes
        printing = bsd
      ; printcap name = /dev/null
      ; disable spoolss = yes

        # 打印机和共享目录设置。
[Create_PDF]
        comment = PDF Printers
        path = /dev/shm
        browseable = yes
        guest ok = no
        writable = no
        printable = yes
        print command = /usr/bin/Create_pdf %s
        use client driver = yes
        lpq command =
        lprm command =
[PDF_File]
        comment = All PDF File
        path = /var/pdf_file
        guest ok = yes
        writable = yes
        share modes = yes

这个配置里面用到了一个 Create_pdf 脚本,如下:
#!/bin/sh
# Variables and Function definition
PATH=$PATH:/sbin:/usr/sbin
PRINTNAME="$(date +%Y%m%d_%H%M)"
OUTDIR=/var/pdf_file

# Program Main
dos2unix /dev/shm/$1
ps2pdf $1 $OUTDIR/$PRINTNAME.pdf
rm -f /dev/shm/$1

如果怕打印的文件太多可以在crontab里加上
01 00 * * * for i in /var/pdf_file/*; do rm -f $i ;done

Windows客户端如果要使用就添加一个网络打印机,随便找一个打印机驱动,只要有打印机支持PostScript就好了,一般名字里就能体现出来。然后打开文档,选打印,选新加入的打印机就可以了。

方法3、这个方法网上介绍的很多,原理同方法2,就是下载一个cups-pdf软件来实现的。
    cups-pdf homepage http://www.cups-pdf.de
    安装 PDF backend for CUPS
        cd /usr/lib/cups/backend
        wget ftp://ftp.kde.org/pub/kde/printing/pdfdistiller
        mv pdfdistiller pdf
        chmod +x pdf
        /etc/init.d/cups restart

    用 CUPS 网页管理接口新增 PDF 打印机
        Name: pdfprinter
        Device: PDF Writing
        Device URI: pdf:/path/to/dir/   ##这里是保存pdf文件的目录
        Make: Postscript
        其他使用默认即可
配置 cupsd 和 samba 服务:samba已经有了,这里就列出cupsd的

Order Deny,Allow
Deny From All
Allow From 192.168.1.0/24


AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 192.168.1.0/24

Browsing On
BrowseProtocols cups
BrowseOrder Deny,Allow
Deny From All
BrowseAllow From @LOCAL
Listen 0.0.0.0:631
重新启动cups服务
/etc/init.d/cups restart
以浏览器登入管理:
阅读(1888) | 评论(2) | 转发(0) |
0

上一篇:ssh chroot

下一篇:学习udev

给主人留下些什么吧!~~

chinaunix网友2008-02-22 22:36:09

linux 上是很多软件都支持直接生成pdf了,但这样多少会受到软件的限制,而windows上也有很多软件可以直接生成pdf如office2007,这些也都受到软件的限制,创建pdf打印服务器就可以有效的避免这些问题,只要有一个支持postscript脚本的打印驱动就可以了,ie不支持创建pdf,firefox不支持创建pdf,我们做了pdf打印服务器以后就可以简单的按crtl+p就可以把需要的东西转成pdf了,这样是不是更方便了呢。

chinaunix网友2008-02-16 13:54:23

对于 Linux,如果是位于 X 下的话,可以用 openoffice 直接输出 pdf 格式。 也可以用 gedit 直接 export 成 pdf 格式。现在的 linux 在 X 下已经有好多软件直接能生成 pdf 格式了。 对于 tty 下面,可能要麻烦点。首先应该让 tty 支持中文输入输出,然后就可以先写成 latex(即 .tex 文件,这里还要有 cjk-latex 包),最后用 latex2pdf 生成所需的 pdf 文件。