Skip to content

使用Blog as PDF将博客制作成一个PDF文档

2010 五月 5
by 荒野无灯

Blog as PDF这个插件就是生成纯文本的博客PDF文档,功能相对比较简单吧。

还有,如果是生成整站的PDF ,可能会执行超时或者超过最大允许使用的内存。
用的是TCPDF库,默认是不支持中文的,因此要对它进行修改了。

《使用TCPDF输出完美的中文PDF文档》一文中取得方法:

我们要用在TCPDF中的中文字体有下面几个要求:
* 支持Unicode,因为TCPDF支持的是Unicode;
* 体积越小越好;
* 最好是也支持繁体中文;

综合考虑,”Droid Sans Fallback”字体符合要求:

* 首先它是免费字体;
* 其次它也是Unicode编码,支持简体繁体中文以及日文韩文等等;
* 然后它的体积很小,不超过5M。

然而TCPDF不支持TTF字体文件,因此我们先将它转换成TCPDF支持的格式,然后再使用。在TCPDF目录下有个fonts子目录,这个子目录下又有个utils,这里面带有一个字体转换工具ttf2ufm.exe。下面是转换的步骤:

我们把下载到的DroidSansFallback.ttf 复制到 TCPDF\fonts\utils 下面,然后打开Windows的命令行,切换到此路径下,输入如下命令:

1
ttf2ufm -a -F DroidSansFallback.ttf

等待一段时间,等到命令行窗口显示

“Finished – font files created”

之后,可以发现此目录下生成了DroidSansFallback.afm,DroidSansFallback.t1a 和 DroidSansFallback.ufm 这三个文件。
在命令行中输入

1
"C:\php\php.exe" -q makefont.php DroidSansFallback.ttf DroidSansFallback.ufm

说明:这里的”C:\php\php.exe”为php.exe文件所在的路径,请根据实际情况输入。回车运行之后,稍等片刻,命令行窗口中会提示

Font definition file generated

至此大功告成。将生成的droidsansfallback.php、droidsansfallback.z以及 droidsansfallback.ctg.z这三个文件复制到 TCPDF\fonts 下。
再修改配置文件:
tcpdf/config/tcpdf_config.php

1
2
3
    define ('PDF_FONT_NAME_MAIN', 'droidsansfallback');
    define ('PDF_FONT_NAME_DATA', 'droidsansfallback');
    define ('PDF_FONT_MONOSPACED', 'droidsansfallback');

好啦,现在输出的PDF文件中文字体再也不会显示为”?” 号了。
字体及修改版的Blog as PDF插件下载:

关于字体的TCPDF文档:http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf_fonts

喜欢这篇文章吗?

请订阅本站 RSS feed填写您的邮件地址,订阅我们的精彩内容:,欢迎点击这里捐赠以支持荒野无灯转播到腾讯微博 转播到腾讯微博

作者:荒野无灯
出处:Hacklog【Hacklog】

声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自Hacklog【荒野无灯weblog】

本文链接: http://ihacklog.com/?p=3768

10 Responses Post a comment
  1. 四月 12, 2012

    有没有连图片也一起转的插件呢?

  2. pirates permalink
    九月 6, 2011

    调了两天,没有成功,都想哭了…. :cry:
    看到你这个以后终于ok了,我真的要感谢你八辈祖宗 :wink:

  3. 七月 6, 2011

    这个插件不错

  4. nba23 permalink
    十月 9, 2010

    站长,我想问下,服务器上对PDF处理具体需要安装哪些组件呢?我的是FREEBSD系统的。

    • 十月 14, 2010

      我用的是基于debian 的ubuntu,

      1
      2
      3
      4
      5
      6
      wget http://www.pdflib.com/binaries/PDFlib/705/PDFlib-Lite-7.0.5.tar.gz
      tar -xvzf PDFlib-Lite-7.0.5.tar.gz
      cd PDFlib-Lite-7.0.5
      ./configure
      make
      make install

      到http://pecl.php.net/package/pdflib下载最新版的pdflib

      1
      2
      3
      4
      5
      tar -xvzf pdflib-2.1.8.tgz
      cd pdflib-2.1.8
      ./configure
      make
      make install

      安装成功后可:

      1
       ls /usr/lib/php5/20090626+lfs

      可看到有一pdf.so的文件.
      在/etc/php5/apache2/conf.d下面创建 pdflib.ini
      内容为:

      1
      extension=pdf.so

      直接在SHELL运行php ,如果报错说找不到libpdf.so.6 ,可作个符号链接:

      1
      sudo ln -s /usr/local/lib/libpdf.so.6.0.5 /usr/lib/libpdf.so.6

      重新加载配置:

      1
      sudo /etc/init.d/apache2 reload

      phpinfo 可看到:

      1
      2
      3
      4
      pdfPDF Support  enabled
      PDFlib GmbH Version     7.0.5
      PECL Version    2.1.8
      Revision    $Revision: 1.5.2.18 $

      也可以用 pecl安装:
      apt-get install php-pear
      pecl install pdflib

      #sudo apt-get install libgnupdf0 libgnupdf-dev

  5. 九月 27, 2010

    可是这个不支持图片啊,能请站长大人告诉我们怎么加入图片吗?

  6. 六月 21, 2010

    能问一下,这个PDF能否增加图片的功能?

  7. 五月 5, 2010

    把博客保存成PDF供日后看

  8. 五月 5, 2010

    不错,也许哪天我的站不办了,就把自己写过的东西烧成PDF。呵。

Leave a Reply

Allowed Tags - You may use these HTML tags and attributes in your comment.

<a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <q cite=""> <strong>

 :wink:  :-|  :-x  :twisted:  :)  8-O  :(  :roll:  :-P  :oops:  :-o  :mrgreen:  :lol:  :idea:  :-D  :evil:  :cry:  8)  :arrow:  :-?  :?:  :!:

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS