Down As PDF——将wordpress日志作为pdf文档下载的插件

The story

话说那天在一个网站看到了将博文作为pdf文档下载的功能,觉得是个不错的东东。查看了下源代码,发现此博并不是用插件实现的。于是到网上搜索了下,发现此类插件有好多。一口气从网上下载了9个,一个一个测试,最后,没有一个合我口味。有的甚至根本不支持中文。没戏。
只好自己动手,丰衣足食了。哈哈,还是毛主席说得好啊。 :mrgreen:
这次做的这个插件名字叫:down as PDF。
功能:为你的每篇日志添加一个“下载PDF文档”的链接,点击即可下载文章的PDF文档。
欢迎大家测试和反馈BUG。

请使用二进制模式 进行 FTP 传输!

说明

如要控制只允许注册用户下载,则把generate.php 第110-113行修改一下即可。
如要在日志编辑页面控制此日志是否允许下载为pdf,编辑down-as-pdf.php修改

1
private static $allow_down_default = 1;

1
private static $allow_down_default = 0;

即可。
不要说为什么不在后台设置一个选项来控制这些,是的,在后台加个选项用起来是方便多了,可是,这需要时间。目前我有很多事情要做,维护这个插件是用额外的时间来做的。

INTRO

插件详情:

*Name: down as PDF
*Description:此插件的功能是为你的每篇日志添加一个“下载PDF文档”的链接,点击即可下载文章的PDF文档。你可以将wp-content/plugins/down-as-pdf/images/目录下面的logo.png文件替换成你自己网站的logo。This plugin generates PDF documents for visitors when you click the “Download as PDF” button below the post. Very useful if you plan to share your posts in PDF format.You can replace the logo file logo.pngunder wp-content/plugins/down-as-pdf/images/ with your own.
* Version: 2.1
* Last Updated: 2011-7-5
* Requires WordPress Version: 2.8.2 or higher
* Compatible up to: 3.2

插件下载:本站下载

生成PDF测试: 未注册用户请到 http://ihacklog.com/?p=4579 测试 。
TODO:

  1. 添加自定义字体功能(ttf)
  2. 同一IP在某时间段内不能重复下载
  3. 字体颜色 可配置
  4. 后台增加自定义LOGO功能

change log:

2012/01/04
2.3.1
默认取消了这个功能(2.3.0选择YES那个),如果需要实现,编辑down-as-pdf.php修改

1
private static $allow_down_default = 1;

1
private static $allow_down_default = 0;

即可。因为考虑到大多数人并不是想每一篇日志都编辑一次保存这么个选项。

2.3.0
默认不允许下载,需要在日志编辑页面要右侧选择YES方可下载。还有,可以在日志中加入

1
[pdf_here]

来控制下载按钮的显示位置。

2011/12/31
2.2.3
禁用磁盘缓存,因为启用此选项将会使处理一篇日志的时间长达60s以上。
增加“添加自定义字体”小工具( upload font file to wp-content/plugins/down-as-pdf/cache/ and then ,via addf.php?font=the-font-filename.ttf )
增加对密码保护日志和未发布日志的检测

2.2.2
增加table格式美化
blockquote块美化、修正代码
TCPDF更新到5.9.142
默认启用磁盘缓存,并添加“清除缓存”按钮
添加中、日、韩语言支持,添加正体中文支持
新增字体选项(可选择字体)
添加错误处理机制
改变:默认在首页、分类页面、存档页面不显示下载按钮

感谢“蓝冰”测试反馈bug

2011/07/05
增加cache 目录
增加cache目录可写检测
增加在文章、页面 或者 文章和页面显示 显示的选项

感谢 scomper 柠檬 反馈bug。

Note

后台选项解释及注意事项:

嵌入字体子集:
如果启用这项的话,可以减小生成的PDF文档的大小但是这会使得生成PDF的速度变得很慢而且会消耗很多的内存,相反,如果禁用此项,
当浏览者点击下载时,生成PDF文档的速度会更快一些,但是生成的PDF文档也更大(基本上要大1 MB 多)。
自定义LOGO: 用自己的LOGO文件替换wp-content/plugins/down-as-pdf/images/目录下面的logo.png即可。
请确保wp-content/plugins/down-as-pdf/cache/目录具有读写权限。

生成的PDF文档:

后台选项:

Plugin Download

2.2.0  多语言版(中文+英文)下载:

1.0版英文版下载:

喜欢这篇文章吗?

请订阅本站 RSS feed填写您的邮件地址,订阅我们的精彩内容:

相关日志

回复 (78)

  1. 3qsami  / 回复

    这个插件非常不错!
    我有一个问题需要博主指点一下,我很早就在自己的博客用户信息修改了邮箱,可是下载的pdf文档里却显示我之前的邮箱,不知道应该如何更改?
    我知道了,应该在“常规”里修改,而不是在“用户”里。

  2. 3qsami  / 回复

    @博百优
    估计转换成doc格式会打乱排版,费力不讨好。

  3. Richer Yang  / 回复

    使用正體中文應該不會造成很大的困擾吧!
    我想要提出一個建議,不知道可不可以不要預設每一篇文章或每天篇分頁都顯示下載的圖示。
    因為我只打算讓部分的文章提供 pdf 下載,目前是手動修改外掛程式,不過這樣每次更新都要一次很辛苦,所以好奇你打算實現嗎?

    • 荒野无灯  / 回复

      @Richer Yang
      嗯,这个建议不错~~

    • 荒野无灯  / 回复

      @Richer Yang
      你说的这个已经实现。2.3.0 默认设置是不提供下载。要在日志编辑页面右侧选择YES方可下载。还有,可以在日志中加入

      1
      [pdf_here]

      来控制下载按钮的显示位置。
      不过,我在2.3.1中默认取消了这个功能(选择YES那个),如果需要实现,编辑down-as-pdf.php修改

      1
      private static $allow_down_default = 1;

      1
      private static $allow_down_default = 0;

      即可。

  4. Will  / 回复

    反映个bug,固定连接无法显示,只显示wordpress默认格式,再提个建议,由于主题的多样性,所以建议能自定义“download as pdf”的位置,就像无匿一样

    • 荒野无灯  / 回复

      @Will
      关于固定链接,这个我说下,不是bug,我特意用的短链接,因为这样即使你博客以后换链接结构了,还是可以访问到的,还有就是默认格式比较简短。位置这个问题,会加入@TODO里面,目前集中精力在功能上面了~~有时间会加上的。

  5. Your Name  / 回复

    Fatal Error! Please put OR change define(‘WP_DEBUG’, TRUE); in your wp-config.php and then visit this page again to see what happened.
    Error Message generated by Hacklog Down As PDF plugin
    修改后全是notice提示

    • 荒野无灯  / 回复

      @Your Name
      这个是提示你调试的,如果你不会调试,定义那个也没用。出现这个错误,说明这个错误不是由这个插件引发的,是其它原因导致的。

      • Your Name  / 回复

        @荒野无灯
        请大师指条明路

        • 荒野无灯  / 回复

          @Your Name
          如博客中引用的图片无法获取到、主机不支持相应函数等。定义debug后即可看到详细错误是在哪里发生的。

        • 荒野无灯  / 回复

          @Your Name
          刚更新到2.2.5 增加对管理员显示出错信息的功能,你可以升级后再试试?

          • Your Name 

            @荒野无灯
            更新了,请大师看一下
            Backtrace from fatal error ‘Allowed memory size of 33554432 bytes exhausted (tried to allocate 4980736 bytes)’ at /wp-content/plugins/down-as-pdf/tcpdf/fonts/droidsansfallback.php 14:

            /wp-includes/plugin.php 405 calling call_user_func_array()
            /home/anhaoinf/public_html/Will/project/wp-includes/load.php 554 calling do_action()
            calling shutdown_action_hook()

        • 荒野无灯  / 回复

          @Your Name
          你的这个错误是由于使用的内存超过32MB导致的

  6. 网赚末班车  / 回复

    貌似下载不了,提示“输入提取码”,可以解决下吗、?谢谢

  7. Pin  / 回复

    请教
    http://ihacklog.com/wordpress/wp-content/plugins/down-as-pdf/generate.php?id=3771
    无法用这样的形式获取PDF 文件
    蜘蛛抓取不了 :arrow:

    • 荒野无灯  / 回复

      这个也让蜘蛛抓?那服务器的负载可会很大哦。我默认检测来路的,不是本站就不显示PDF。

      • Pin  / 回复

        TCPDF ERROR: Some data has already been output, can’t send PDF file
        出现了这个错误 :???:

      • Pin  / 回复

        负载不大 嘿嘿. 我的lnmp 抓的话负载在0.2左右呵呵

      • Pin  / 回复

        删除了断代码,可以被下载了 却出现了上面那个错误 唉…

      • Pin  / 回复

        能够被蜘蛛抓取拿才有权重 :lol:

  8. mitgai  / 回复

    请问生成的pdf文件里的CC授权怎么修改?我用的是 CC BY-NC-SA 3.0

  9. Your Name  / 回复

    下载连接失效

  10. alist  / 回复

    1、一个国外主机空间,上传安装后,下载PDF出现404,设置了cache目录为777也没解决;
    2、在其它几个主机安装没问题安装完立即可以使用,但下载的文档里会出现部分行出现空白,情况如下:
    1。 blockquote标签内的内容无法显示;
    2。内容安装了动态显示的广告插件(广告内容为js代码),好像广告内容所在的位置就是丢失内容的位置;

    • alist  / 回复

      我尝试把字体改为12后基本上不会出现内容丢失,但还是有一个空间上生成不了文档。

  11. loongsky  / 回复

    很不错的插件哦,技术资料类的有这个插件应该很爽

  12. ylsnuha  / 回复

    生成的pdf都是乱码什么的~

  13. wmtimes  / 回复

    这应该是很不错的一个插件。

  14. loosky  / 回复

    很不错的插件。

  15. vinciy  / 回复

    荒野无灯,怎么我点击下载之后,会出现500错误呢?如何修复啊?请指教

    • 荒野无灯  / 回复

      应该是你的服务器不支持相关组件导致的,你可以查看下PHP error 找到原因。

  16. yang  / 回复

    如果文章里面有图片的话 输出不了啊。
    只在浏览器显示第一个外部地址。
    是不是图片不能使用外部的呢?

  17. 无冷  / 回复

    这个东西太牛了,每次来都有很牛叉的东西啊

  18. 先看看  / 回复

    这个,可以看看

  19. 柠檬  / 回复

    可以下载,但是如果启动嵌入字体子集这一选项出来的PDF只有图片没有子,禁止这一项就可以,但是文件 忒大,另外生成的PDF文件存在哪里了呵呵,这么大占用博客空间的话可了不得啊

    • 荒野无灯  / 回复

      嗯,如果不启用嵌入子集的话,嵌入的就是全集了,因此文件平均每个要大2M左右。不过我刚才打开你博客查看PDF速度还挺快的。PS:你现在貌似后台设置的是”在浏览器输出PDF”哦,不是下载。。。

  20. phoetry  / 回复

    这插件很实用, 期待完善之~

  21. 不着调软件  / 回复

    需要这个的哥们估计不是很多! :grin:

  22. scomper  / 回复

    V2的安装包多了一Down-As-PDF-v2.zip层压缩,直接安装不行的;
    另外安装后cache目录默认没有出来,需要手动加并设置权限;
    哦,最后就是Down-As-PDF 在post和page、以及摘要页都显示,无法控制,最好提供手动放置代码。

    • 荒野无灯  / 回复

      嗯,你的建议非常好,谢谢!
      安装包是用zend studio 导出的,因此空的cache 目录默认没有导出。。。。囧

  23. 柠檬  / 回复

    设置权限为777还是不行,看来我与这个插件无缘啊呵呵

  24. 柠檬  / 回复

    Linux,貌似也木有cache这个文件夹,我自己建了一个,还是不行

  25. 柠檬  / 回复

    不能用 出来这些东西

    Warning: imagepng() [function.imagepng]: Unable to open ‘/home/ningmeng/domains/ningmeng.u7.30wan.com/public_html/wp-content/plugins/down-as-pdf/tcpdf/../cache/mska_0b2463e0755b0926ab3c13ca2f964372′ for writing: No such file or directory in /home/ningmeng/domains/ningmeng.u7.30wan.com/public_html/wp-content/plugins/down-as-pdf/tcpdf/tcpdf.php on line 8053

    Warning: imagepng() [function.imagepng]: Unable to open ‘/home/ningmeng/domains/ningmeng.u7.30wan.com/public_html/wp-content/plugins/down-as-pdf/tcpdf/../cache/mskp_0b2463e0755b0926ab3c13ca2f964372′ for writing: No such file or directory in /home/ningmeng/domains/ningmeng.u7.30wan.com/public_html/wp-content/plugins/down-as-pdf/tcpdf/tcpdf.php on line 8058

    Warning: fopen(/home/ningmeng/domains/ningmeng.u7.30wan.com/public_html/wp-content/plugins/down-as-pdf/tcpdf/../cache/mska_0b2463e0755b0926ab3c13ca2f964372) [function.fopen]: failed to open stream: No such file or directory in /home/ningmeng/domains/ningmeng.u7.30wan.com/public_html/wp-content/plugins/down-as-pdf/tcpdf/tcpdf.php on line 7875
    TCPDF ERROR: Can’t open image file: /home/ningmeng/domains/ningmeng.u7.30wan.com/public_html/wp-content/plugins/down-as-pdf/tcpdf/../cache/mska_0b2463e0755b0926ab3c13ca2f964372

  26. 柠檬  / 回复

    生成的文件保存在自己博客的空间吗?

  27. 柠檬  / 回复

    哈哈,博主的每一个插件我都喜欢支持,期待能实现评论后下载

  28. Neeke  / 回复

    这个插件很不错!

  29. 熊猫稀饭  / 回复

    哇!这个插件很适合我用咧! :roll:

  30. 林木木  / 回复

    欢呼!!!

  31. dotswing  / 回复

    不得不说
    是个好插件

  32. mattyang  / 回复

    荒野无灯你好,

    很喜欢的的这个插件,可以方便的下载博客的文章,但是遗憾的是,我确不能进入后台设置,系统提示:您没有足够的权限访问这个页面。

    如果能帮我解决这个问题,讲不胜感激!

  33. 风鸣岬  / 回复

    为什么在设置页说没有权利访问该页面呢?

  34. 好球  / 回复

    问什么我安装了说我不够权利访问该页面的?

  35. ③秋之流☆  / 回复

    貌似不错..以后有可能用得到..先收藏了..

  36. 荒野无灯  / 回复

  37. ducs  / 回复

    我的装上后每次都是TCPDF ERROR: Some data has already been output, can’t send PDF file
    请问这是什么原因啊?我的是windows7上的wordpress2.92
    是否还需要装其它控件才能够使用?

    • 荒野无灯  / 回复

      可能是你本地开启的错误报告模式很严格,此插件目前在本博客可以正常运行。你本地出现那个错误,应该是下面这个对吧?

      1
      2
      Notice: Undefined property: stdClass::$last_name in D:\htdocs\wordpress\wordpress\wp-content\plugins\down-as-pdf\generate.php  on line 30
      TCPDF ERROR: Some data has already been output, can't send PDF file

      修改插件 generate.php ,在

      1
        require_once("../../../wp-config.php");

      这一句前面添加

      1
      error_reporting(0);

      即可 。

      • ducs  / 回复

        你好,我照你说的那样做了,但是没有效果,还是下载pdf后就报TCPDF ERROR: Some data has already been output, can’t send PDF file,
        没有前面那句,就这一句。

        • ducs  / 回复

          我用官方的测试文档修改require_once里的路径后运行是没有问题的

  38. 博百优  / 回复

    这插件很强大啊,要是出个word文档的就好了

  39. e  / 回复

    godaddy主机用不了 Internal Server Error

  40. Dianso  / 回复

    一个页面都好几MB,太大了

发表评论 修改评论取消编辑

允许使用的标签 - 您可以在评论中使用如下的 HTML 标签以及属性。

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

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

引用通告 (0)

› 尚无引用通告。

开灯