The story
话说那天在一个网站看到了将博文作为pdf文档下载的功能,觉得是个不错的东东。查看了下源代码,发现此博并不是用插件实现的。于是到网上搜索了下,发现此类插件有好多。一口气从网上下载了9个,一个一个测试,最后,没有一个合我口味。有的甚至根本不支持中文。没戏。
只好自己动手,丰衣足食了。哈哈,还是毛主席说得好啊。 ![]()
这次做的这个插件名字叫: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:
- 添加自定义字体功能(ttf)
- 同一IP在某时间段内不能重复下载
- 字体颜色 可配置
- 后台增加自定义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目录可写检测
增加在文章、页面 或者 文章和页面显示 显示的选项
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/目录具有读写权限。
Plugin Download
2.2.0 多语言版(中文+英文)下载:
down-as-pdf.2.3.1.zip 下载 (11.7 MB, 293 次)
喜欢这篇文章吗?
请订阅本站 RSS feed 或





10:11 下午, 2012年02月3日3qsami /
这个插件非常不错!
我有一个问题需要博主指点一下,我很早就在自己的博客用户信息修改了邮箱,可是下载的pdf文档里却显示我之前的邮箱,不知道应该如何更改?
我知道了,应该在“常规”里修改,而不是在“用户”里。
9:56 下午, 2012年02月3日3qsami /
@博百优
估计转换成doc格式会打乱排版,费力不讨好。
10:42 下午, 2012年02月3日荒野无灯 /
@3qsami
word这种东西,我个人是极力反对使用的。
11:07 上午, 2012年01月3日Richer Yang /
使用正體中文應該不會造成很大的困擾吧!
我想要提出一個建議,不知道可不可以不要預設每一篇文章或每天篇分頁都顯示下載的圖示。
因為我只打算讓部分的文章提供 pdf 下載,目前是手動修改外掛程式,不過這樣每次更新都要一次很辛苦,所以好奇你打算實現嗎?
11:09 上午, 2012年01月3日荒野无灯 /
@Richer Yang
嗯,这个建议不错~~
3:22 下午, 2012年01月4日荒野无灯 /
@Richer Yang
你说的这个已经实现。2.3.0 默认设置是不提供下载。要在日志编辑页面右侧选择YES方可下载。还有,可以在日志中加入
来控制下载按钮的显示位置。
不过,我在2.3.1中默认取消了这个功能(选择YES那个),如果需要实现,编辑down-as-pdf.php修改
为
即可。
1:44 下午, 2012年01月1日Will /
反映个bug,固定连接无法显示,只显示wordpress默认格式,再提个建议,由于主题的多样性,所以建议能自定义“download as pdf”的位置,就像无匿一样
3:43 下午, 2012年01月1日荒野无灯 /
@Will
关于固定链接,这个我说下,不是bug,我特意用的短链接,因为这样即使你博客以后换链接结构了,还是可以访问到的,还有就是默认格式比较简短。位置这个问题,会加入@TODO里面,目前集中精力在功能上面了~~有时间会加上的。
2:15 下午, 2011年12月31日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提示
2:36 下午, 2011年12月31日荒野无灯 /
@Your Name
这个是提示你调试的,如果你不会调试,定义那个也没用。出现这个错误,说明这个错误不是由这个插件引发的,是其它原因导致的。
2:38 下午, 2011年12月31日Your Name /
@荒野无灯
请大师指条明路
2:41 下午, 2011年12月31日荒野无灯 /
@Your Name
如博客中引用的图片无法获取到、主机不支持相应函数等。定义debug后即可看到详细错误是在哪里发生的。
2:48 下午, 2011年12月31日荒野无灯 /
@Your Name
刚更新到2.2.5 增加对管理员显示出错信息的功能,你可以升级后再试试?
3:08 下午, 2011年12月31日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()
4:44 下午, 2011年12月31日荒野无灯 /
@Your Name
你的这个错误是由于使用的内存超过32MB导致的
9:53 下午, 2011年10月11日网赚末班车 /
貌似下载不了,提示“输入提取码”,可以解决下吗、?谢谢
12:23 下午, 2011年08月26日Pin /
请教
http://ihacklog.com/wordpress/wp-content/plugins/down-as-pdf/generate.php?id=3771
无法用这样的形式获取PDF 文件
蜘蛛抓取不了
11:54 下午, 2011年08月26日荒野无灯 /
这个也让蜘蛛抓?那服务器的负载可会很大哦。我默认检测来路的,不是本站就不显示PDF。
7:09 下午, 2011年09月1日Pin /
TCPDF ERROR: Some data has already been output, can’t send PDF file
出现了这个错误
7:09 下午, 2011年09月1日Pin /
负载不大 嘿嘿. 我的lnmp 抓的话负载在0.2左右呵呵
7:10 下午, 2011年09月1日Pin /
删除了断代码,可以被下载了 却出现了上面那个错误 唉…
7:17 下午, 2011年09月1日Pin /
能够被蜘蛛抓取拿才有权重
11:47 上午, 2011年08月11日mitgai /
请问生成的pdf文件里的CC授权怎么修改?我用的是 CC BY-NC-SA 3.0
7:40 上午, 2011年08月19日荒野无灯 /
目前没有提供此选项,如要修改可自行修改源码。
11:12 下午, 2011年08月8日Your Name /
下载连接失效
7:43 上午, 2011年08月19日荒野无灯 /
已续期。
4:29 下午, 2011年08月1日alist /
1、一个国外主机空间,上传安装后,下载PDF出现404,设置了cache目录为777也没解决;
2、在其它几个主机安装没问题安装完立即可以使用,但下载的文档里会出现部分行出现空白,情况如下:
1。 blockquote标签内的内容无法显示;
2。内容安装了动态显示的广告插件(广告内容为js代码),好像广告内容所在的位置就是丢失内容的位置;
2:29 下午, 2011年08月21日alist /
我尝试把字体改为12后基本上不会出现内容丢失,但还是有一个空间上生成不了文档。
8:54 上午, 2011年07月27日loongsky /
很不错的插件哦,技术资料类的有这个插件应该很爽
4:15 下午, 2011年07月22日ylsnuha /
生成的pdf都是乱码什么的~
6:08 下午, 2011年07月22日荒野无灯 /
乱码没有遇到过,可能是你RP问题。
1:58 下午, 2011年07月10日wmtimes /
这应该是很不错的一个插件。
9:17 上午, 2011年07月10日loosky /
很不错的插件。
4:52 下午, 2011年07月9日vinciy /
荒野无灯,怎么我点击下载之后,会出现500错误呢?如何修复啊?请指教
10:25 下午, 2011年07月9日荒野无灯 /
应该是你的服务器不支持相关组件导致的,你可以查看下PHP error 找到原因。
10:24 上午, 2011年07月7日yang /
如果文章里面有图片的话 输出不了啊。
只在浏览器显示第一个外部地址。
是不是图片不能使用外部的呢?
1:25 下午, 2011年07月10日荒野无灯 /
经测试,图片可以正常输出的。
11:03 下午, 2011年07月6日无冷 /
这个东西太牛了,每次来都有很牛叉的东西啊
10:44 上午, 2011年07月6日先看看 /
这个,可以看看
8:21 上午, 2011年07月6日柠檬 /
可以下载,但是如果启动嵌入字体子集这一选项出来的PDF只有图片没有子,禁止这一项就可以,但是文件 忒大,另外生成的PDF文件存在哪里了呵呵,这么大占用博客空间的话可了不得啊
9:33 上午, 2011年07月6日荒野无灯 /
嗯,如果不启用嵌入子集的话,嵌入的就是全集了,因此文件平均每个要大2M左右。不过我刚才打开你博客查看PDF速度还挺快的。PS:你现在貌似后台设置的是”在浏览器输出PDF”哦,不是下载。。。
10:59 上午, 2011年07月6日柠檬 /
那生成的PDF是存在哪里呢
2:40 下午, 2011年07月6日荒野无灯 /
pdf不保存在服务器的,而且,图片缓存也是设定一天清理一次。
2:06 上午, 2011年07月6日phoetry /
这插件很实用, 期待完善之~
3:08 上午, 2011年07月6日荒野无灯 /
嗯,由于 tcpdf库的原因,目前有一些奇怪的bug.
10:13 下午, 2011年07月5日不着调软件 /
需要这个的哥们估计不是很多!
5:08 下午, 2011年07月5日scomper /
V2的安装包多了一Down-As-PDF-v2.zip层压缩,直接安装不行的;
另外安装后cache目录默认没有出来,需要手动加并设置权限;
哦,最后就是Down-As-PDF 在post和page、以及摘要页都显示,无法控制,最好提供手动放置代码。
5:46 下午, 2011年07月5日荒野无灯 /
嗯,你的建议非常好,谢谢!
安装包是用zend studio 导出的,因此空的cache 目录默认没有导出。。。。囧
4:10 下午, 2011年07月5日柠檬 /
设置权限为777还是不行,看来我与这个插件无缘啊呵呵
9:18 下午, 2011年07月5日荒野无灯 /
已经更新到2.1版,不防再试试?
10:29 上午, 2011年07月5日柠檬 /
Linux,貌似也木有cache这个文件夹,我自己建了一个,还是不行
11:12 上午, 2011年07月5日荒野无灯 /
请确保wp-content/plugins/down-as-pdf/cache/目录具有读写权限。
9:52 上午, 2011年07月5日柠檬 /
不能用 出来这些东西
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
10:25 上午, 2011年07月5日荒野无灯 /
路径问题,你用的是什么系统的服务器?
9:42 上午, 2011年07月5日柠檬 /
生成的文件保存在自己博客的空间吗?
9:34 上午, 2011年07月5日柠檬 /
哈哈,博主的每一个插件我都喜欢支持,期待能实现评论后下载
9:38 上午, 2011年07月5日荒野无灯 /
8:57 上午, 2011年07月4日Neeke /
这个插件很不错!
9:13 下午, 2011年07月3日熊猫稀饭 /
哇!这个插件很适合我用咧!
10:16 下午, 2011年07月3日荒野无灯 /
12:12 上午, 2011年07月3日林木木 /
欢呼!!!
8:39 下午, 2011年03月9日dotswing /
不得不说
是个好插件
8:42 下午, 2011年02月25日mattyang /
荒野无灯你好,
很喜欢的的这个插件,可以方便的下载博客的文章,但是遗憾的是,我确不能进入后台设置,系统提示:您没有足够的权限访问这个页面。
如果能帮我解决这个问题,讲不胜感激!
3:09 上午, 2011年07月6日荒野无灯 /
现已更新,没有此问题了。
7:33 下午, 2010年09月27日风鸣岬 /
为什么在设置页说没有权利访问该页面呢?
7:58 下午, 2010年07月22日好球 /
问什么我安装了说我不够权利访问该页面的?
12:52 上午, 2010年05月27日③秋之流☆ /
貌似不错..以后有可能用得到..先收藏了..
6:49 下午, 2010年05月25日荒野无灯 /
相关函数api:
http://ihacklog.com/gogogo/aHR0cDovL2NvZGV4LndvcmRwcmVzcy5vcmcvRnVuY3Rpb25fUmVmZXJlbmNlL2dldF91c2VyZGF0YQ==
自己做个标记。
4:46 下午, 2010年05月25日ducs /
我的装上后每次都是TCPDF ERROR: Some data has already been output, can’t send PDF file
请问这是什么原因啊?我的是windows7上的wordpress2.92
是否还需要装其它控件才能够使用?
6:45 下午, 2010年05月25日荒野无灯 /
可能是你本地开启的错误报告模式很严格,此插件目前在本博客可以正常运行。你本地出现那个错误,应该是下面这个对吧?
2
TCPDF ERROR: Some data has already been output, can't send PDF file
修改插件 generate.php ,在
这一句前面添加
即可 。
2:20 上午, 2010年05月26日ducs /
你好,我照你说的那样做了,但是没有效果,还是下载pdf后就报TCPDF ERROR: Some data has already been output, can’t send PDF file,
没有前面那句,就这一句。
9:24 上午, 2010年05月26日ducs /
我用官方的测试文档修改require_once里的路径后运行是没有问题的
4:06 下午, 2010年05月14日博百优 /
这插件很强大啊,要是出个word文档的就好了
4:38 下午, 2010年05月10日e /
godaddy主机用不了 Internal Server Error
3:08 上午, 2011年07月6日荒野无灯 /
可能是你的主机不支持相关的库的原因
6:52 下午, 2010年05月6日Dianso /
一个页面都好几MB,太大了
7:46 下午, 2010年05月6日荒野无灯 /
嗯 ,确实。但是不使用内嵌字体的话,在没装adobe reader的机子上就无法看生成的pdf。
1:11 上午, 2011年07月3日荒野无灯 /
现在已经改进,生成文档可以小到200K-300K左右。