PHP生成PDF格式文件以TCPDF为基础,TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进。支持UTF-8,Unicode,HTML和 XHTML。在基于PHP开发的Web应用中,使用它来输出PDF文件是绝佳的选择。但毕竟这款开源软件是外国人开发的,对中文的支持也不是那么尽如人 意,因此我们需要对它作进一步的强化。首先要到TCPDF官网下载TCPDF最新版。访问http://www.tcpdf.org ,单击导航条上的”Download”链接,即可下载到最新版本的TCPDF压缩包。因为里面包含了许多的TCPDF范例和字体文件,因此下载的文件比较大,大概有10M左右。下载完后解压它,会得到一个名为tcpdf的目录,此目录的结构大概是这样的:

直接来代码啦/**

* 使用文档

* https://wenku.baidu.com/view/ce3f52d950e2524de5187e20.html?sxts=1544025155358

* https://wenku.baidu.com/view/9352b049852458fb770b5688.html

*/

include_once(APPLICATION_PATH.'/application/library/Pdf/Config/tcpdf_config_wjy.php');

include_once(APPLICATION_PATH.'/application/library/Pdf/Lib/include/tcpdf_fonts.php');

include_once(APPLICATION_PATH.'/application/library/Pdf/Lib/tcpdf.php');

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', true);

//设置文件信息

$pdf->SetCreator(PDF_CREATOR);

$pdf->SetAuthor('Nicola Asuni');

$pdf->SetTitle('TCPDF Example 001');

$pdf->SetSubject('TCPDF Tutorial');

$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

//设置页眉页脚

$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));

$pdf->setFooterData(array(0,64,0), array(0,64,128));

// set header and footer fonts

$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));

$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

//设置默认等宽字体

$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//设置页面边幅

$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

//设置纸张头部

$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);

//设置纸张底部

$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//设置自动分页符

$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// set image scale factor

$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

// set some language-dependent strings (optional)

$l['a_meta_charset'] = 'UTF-8';

$l['a_meta_dir'] = 'ltr';

$l['a_meta_language'] = 'cn';

// TRANSLATIONS --------------------------------------

$l['w_page'] = 'page';

$pdf->setLanguageArray($l);

// ---------------------------------------------------------

// set default font subsetting mode

$pdf->setFontSubsetting(true);

// Set font

// dejavusans is a UTF-8 Unicode font, if you only need to

// print standard ASCII chars, you can use core fonts like

// helvetica or times to reduce file size.

// $pdf->SetFont('dejavusans', '', 14, '', true);

// $pdf->SetFont('stsongstdlight', '', 20, '', true);

$pdf->SetFont('droid_sans_fallback', '', 20, '', true);//自定义字体后面具体怎么制作

// Add a page

// This method has several options, check the source code documentation for more information.

$pdf->AddPage();

// set text shadow effect

$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));

// Set some content to print

$html = '

Welcome to  TCPDF !

';

// Print text using writeHTMLCell()

$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);

$txt = "您好!";

$pdf->Write(20, $txt);

$image_file = K_PATH_IMAGES.'logo_voucher.png';

$pdf->Image($image_file, 10, 10, 15, '', 'PNG', '', 'T', false, 300, '', false, false, 0, false, false, false);

// test Cell stretching

$pdf->Cell(0, 0, 'TEST CELL STRETCH: no stretch', 1, 1, 'C', 0, '', 0);

$pdf->Cell(0, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1);

$pdf->Cell(0, 0, 'TEST CELL STRETCH: force scaling', 1, 1, 'C', 0, '', 2);

$pdf->Cell(0, 0, 'TEST CELL STRETCH: spacing', 1, 1, 'C', 0, '', 3);

$pdf->Cell(0, 0, 'TEST CELL STRETCH: force spacing', 1, 1, 'C', 0, '', 4);

$pdf->Ln(15);

$pdf->Cell(45, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1);

$pdf->Cell(45, 0, 'TEST CELL STRETCH: force scaling', 1, 1, 'C', 0, '', 2);

$pdf->Cell(45, 0, 'TEST CELL STRETCH: spacing', 1, 1, 'C', 0, '', 3);

$pdf->Cell(45, 0, 'TEST CELL STRETCH: force spacing', 1, 1, 'C', 0, '', 4);

// Image method signature:

// Image($file, $x='', $y='', $w=0, $h=0, $type='', $link='', $align='', $resize=false, $dpi=300, $palign='', $ismask=false, $imgmask=false, $border=0, $fitbox=false, $hidden=false, $fitonpage=false)

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

// Example of Image from data stream ('PHP rules')

$imgdata = base64_decode('iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABlBMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDrEX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==');

// The '@' character is used to indicate that follows an image data stream and not an image file name

$pdf->Image('@'.$imgdata);

// ---------------------------------------------------------

// Close and output PDF document

// This method has several options, check the source code documentation for more information.

$showType = 'D';//PDF输出的方式。I,在浏览器中打开;D,以文件形式下载;F,保存到服务器中;S,以字符串形式输出;E:以邮件的附件输出。

ob_end_clean();

$pdf->Output('example_001.pdf', $showType);

主要问题:

用HTML排版时有些CSS 样式不支持,导致很尴尬,遇到的有vertical-align、margin、padding没起作用,百度、GOOGLE说就是不支持,具体网址没保存下来,想知道的自行搜吧。如果想用不支持的属性只能一点一点去画啦。

自定义字体:

自带工具还是很方便 的。也有例子,自行看吧。自定义字体效率不是很快。

php导出页面为pdf文件大小,php用TCPDF导出PDF文件相关推荐

  1. Jquery导出页面表格table的内容为Excel,PDF,DOC格式

    Jquery导出页面表格table的内容为Excel,PDF,DOC格式 文档地址:http://www.jqueryfuns.com/resource/2381 1.引入jquery的js–这里就不 ...

  2. php在线读取pdf文件大小_南公子私藏PDF神器曝光

    PDF神器 用 心 分 享 共 同 进 步 hey,我是南公子 一个集智慧和帅气于一身的神秘男子 想做公众号很久了 一直没有着手去弄 因为手里有很多超实用的 网站.软件.APP 想着分享出来 希望可以 ...

  3. 怎么压缩PDF文件大小?分享几个压缩文件的方法

    PDF格式文件它有着较高的兼容性,可以在不同软件和设备中打开,还不会影响到原文件的页面排版,很多人都喜欢使用它.如今大部分人都会在网上查找自己需要的资料并下载,例如电子书.PPT模板等,但它们基本都是 ...

  4. axure8.0导出页面打不开问题_excel怎么转pdf?excel打不开?转换成PDF就行了

    excel转pdf怎么做?年底最后一天了,我都被一堆的Excel文件搞得头疼,在这些时间里,要让我对几个G的文件进行操作,我已经是忙得不可开交,而在最后的最后,我的主管还说他的电脑无法打开我的Exce ...

  5. 压缩pdf怎么压缩又小又清晰,怎么压缩pdf文件大小并保持清晰度?pdf怎么压缩文件到最小?

    搜索一下:~~~~~~轻云pdf编辑压缩官网 打开轻云pdf编辑压缩官网,上传pdf文件,上传完毕后网站会自动压缩. 当视频压缩的进度条到达100%后就表示视频压缩好了,这个时候回出现预览压缩后的效果 ...

  6. php 生成pdf 中文,php采用tcpdf生成pdf支持中文,图片

    发表于 2012-08-30 11:55:05 by 月小升 上次找到fpdf发现文档支持不足.而且含有php5.4不能用了的过期函数,图片进去也显示不了等问题. 特意找到这个tcpdf. 下载的地址 ...

  7. 怎么压缩pdf文件大小并保持清晰度?

    怎么压缩pdf文件大小并保持清晰度?pdf已经是网络上常用的文件格式了,尤其是日常办公当中,pdf使用次数非常多,但是有时候pdf文件的容量会比较大,上传到某些平台会有限制,那么p我们就需要压缩pdf ...

  8. 如何在线压缩PDF文件大小?

    网上下载的PDF文件很大,传输的时候往往传输不成功,可以压缩PDF文件,如何在线压缩PDF文件大小?上班族都知道PDF文件,PDF文件的方法也多了起来,这里介绍简单的PDF在线压缩方法. 1.先打开工 ...

  9. php批量导出pdf文件大小,php完美导出pdf,pdf合并批量导出

    使用到的工具 pdftk      https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/      pdf合并工具 wkhtmltopdf      ...

最新文章

  1. linux 邮件中继转发,linux – 如何使sendmail中继本地邮件?
  2. 营销3.0时代的营销特征
  3. IdentityHashMap
  4. Java的3大框架都学习什么呢?
  5. Ubuntu16.04下安装MySQL
  6. Keras框架:VGG网络代码实现
  7. Mycat+Mysql 插入数据报错 i[Err] 1064 - partition table, insert must provide ColumnList
  8. 论文翻译:《Improved Neural Relation Detection for Knowledge Base Question Answering》
  9. python爬虫bs4_Python爬虫系列-Xpath自如和bs4链家
  10. 罗定职业技术学院计算机考试二级,2018年罗定职业技术学院五年一贯制单独招生术科考试成绩.PDF...
  11. 【原】iOSCoreAnimation动画系列教程(二):CAKeyFrameAnimation【包会】
  12. 12. CSS 字体
  13. 《编译系统透视:图解编译原理》
  14. PS如何使用裁切工具
  15. simulink入门
  16. 笔记本移动热点打开电脑断网、台式机无线wifi打开电脑断网的解决办法
  17. 对抗样本(五)DeepFool
  18. Docker系列 WordPress系列 WordPress上传或更新Markdown的最佳实践
  19. 访问服务器上的图片显示404,vue run build打包之后服务器端访问图片404
  20. Centos7 查看用户和用户组

热门文章

  1. 前端开发规范:JavaScript 规范
  2. 【人体骨骼点】数据集
  3. 从零开始学C语言之第一节
  4. CLB Overview
  5. 让一切都过去吧,高手挑战2过关方法
  6. arduino/Mixly使用ZH03BPM2.5传感器
  7. 读书点亮生活-教育成本
  8. pda输出模式设置,在pda手持设备上,文本框的输入监听焦点受输出模式影响
  9. 生命不可承受之重, 请关爱过劳人员
  10. 【转载】CU、PU、TU划分显示代码