Files
liche/common/libraries/Pdf.php
T
2022-03-15 09:43:56 +08:00

83 lines
2.6 KiB
PHP

<?php
/**
* Created by Vim
* User: lcc
* Date: 2021/07/12
* Time: 16:49
*/
defined('BASEPATH') OR exit('No direct script access allowed');
require_once COMMPATH.'/third_party/TCPDF/tcpdf.php';
class Pdf {
//private $pdf2img_url = 'http://pti.haodian.cn/jar/pdf2img/index';
private $pdf2img_url = 'https://liche-api-dev.xiaoyu.com/jar/pdf2img';
public function __construct($isdev=''){
if (false !== strpos($_SERVER['HTTP_HOST'], 'dev') || $isdev) {//dev
$this->pdf2img_url = 'https://liche-api-dev.xiaoyu.com/jar/pdf2img';
}
}
/**
* html转pdf
* @param $html_url string 网页地址
* @param $path string 保存文件路径
* @param $filename string 保存文件名
*/
public function html2pdf($html_url,$path,$filename){
if (!file_exists($path)){
$oldumask = umask(0);
mkdir($path, 0777, true);
umask($oldumask);
}
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$html = file_get_contents($html_url,false,stream_context_create($arrContextOptions));
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,true, 'UTF-8', false);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor("liche");
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->setCellHeightRatio(1.1); //设置行高
$pdf->SetMargins(PDF_MARGIN_LEFT, 5,PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->SetFont('simsun', '', 10); //设置中文显示
$pdf->AddPage();
$pdf->writeHTML($html, true, false, true, false, '');
$save = $path.'/'.$filename;
$pdf->Output($save,'F');
if(file_exists($save)){
return true;
}else{
return false;
}
}
/*
* 图片转pdf
* @param $pdf_url staring pdf文件url地址
* @return $result array() 返回图片数组 ['','']
*/
public function pdf2img($pdf_url){
$ci = & get_instance();
$ci->load->library('mycurl');
$url = $this->pdf2img_url.'?furl='.$pdf_url;
$result = $ci->mycurl->httpGet($url);
$result = json_decode($result,true);
return $result['data'] ? $result['data'] : false;
}
}