网页title图标_php 数据库显示在页面并能修改

网页title图标_php 数据库显示在页面并能修改在生成的pdf文件的页眉设置logo有以下解决方案重新定义TCPDF中的K_PATH_IMAGES常量(define(‘K_PATH_IMAGES’,xxxx),需要定义在加载tcpdf.php之前)##示例$logo=”xxxx”;//相对地址$pdf->SetHeaderData(PDF_HEADER_LOGO,PDF_HEADER_LOGO_WIDTH,”标题”,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在生成的pdf文件的页眉设置logo有以下解决方案

重新定义TCPDF中的K_PATH_IMAGES常量(define(‘K_PATH_IMAGES’, xxxx) , 需要定义在加载tcpdf.php 之前)

## 示例

$logo = “xxxx”; //相对地址

$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, “标题”, “标语”, array(0,64,255), array(0,64,128));

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

若不定义常量,可以将logo图片移动到vendor/tecnickcom/examples/images下

## 示例

$logo = “xxxx”; //相对地址

$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, “标题”, “标语”, array(0,64,255), array(0,64,128));

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

重写 public function Header() {} 方法

public function Header() {

$logo = xxxx;//绝对地址

$this->Image($logo, 5, 2, 15, ”, ‘PNG’, ”, ‘T’, false, 300, ”, false, false, 0, false, false, false);

$this->SetFont(‘stsongstdlight’, ”, 10);

$this->MultiCell(0, 15, $this->title, 0, “R”, false, 1, 0, 5);

}

设置头部Logo源码分析

$this->Image(K_PATH_IMAGES.$headerdata[‘logo’], ”, ”, $headerdata[‘logo_width’]);

根据源码分析,发现此处 会在配置的 $headerdata[‘logo’] 数据前面,自动加上 常量 K_PATH_IMAGES,所以才有了解决方案1,方案2

## 源码

public function Header() {

if ($this->header_xobjid === false) {

// start a new XObject Template

$this->header_xobjid = $this->startTemplate($this->w, $this->tMargin);

$headerfont = $this->getHeaderFont();

$headerdata = $this->getHeaderData();

$this->y = $this->header_margin;

if ($this->rtl) {

$this->x = $this->w – $this->original_rMargin;

} else {

$this->x = $this->original_lMargin;

}

if (($headerdata[‘logo’]) AND ($headerdata[‘logo’] != K_BLANK_IMAGE)) {

$imgtype = TCPDF_IMAGES::getImageFileType(K_PATH_IMAGES.$headerdata[‘logo’]);

if (($imgtype == ‘eps’) OR ($imgtype == ‘ai’)) {

$this->ImageEps(K_PATH_IMAGES.$headerdata[‘logo’], ”, ”, $headerdata[‘logo_width’]);

} elseif ($imgtype == ‘svg’) {

$this->ImageSVG(K_PATH_IMAGES.$headerdata[‘logo’], ”, ”, $headerdata[‘logo_width’]);

} else {

$this->Image(K_PATH_IMAGES.$headerdata[‘logo’], ”, ”, $headerdata[‘logo_width’]);

}

$imgy = $this->getImageRBY();

} else {

$imgy = $this->y;

}

$cell_height = $this->getCellHeight($headerfont[2] / $this->k);

// set starting margin for text data cell

if ($this->getRTL()) {

$header_x = $this->original_rMargin + ($headerdata[‘logo_width’] * 1.1);

} else {

$header_x = $this->original_lMargin + ($headerdata[‘logo_width’] * 1.1);

}

$cw = $this->w – $this->original_lMargin – $this->original_rMargin – ($headerdata[‘logo_width’] * 1.1);

$this->SetTextColorArray($this->header_text_color);

// header title

$this->SetFont($headerfont[0], ‘B’, $headerfont[2] + 1);

$this->SetX($header_x);

$this->Cell($cw, $cell_height, $headerdata[‘title’], 0, 1, ”, 0, ”, 0);

// header string

$this->SetFont($headerfont[0], $headerfont[1], $headerfont[2]);

$this->SetX($header_x);

$this->MultiCell($cw, $cell_height, $headerdata[‘string’], 0, ”, 0, 1, ”, ”, true, 0, false, true, 0, ‘T’, false);

// print an ending header line

$this->SetLineStyle(array(‘width’ => 0.85 / $this->k, ‘cap’ => ‘butt’, ‘join’ => ‘miter’, ‘dash’ => 0, ‘color’ => $headerdata[‘line_color’]));

$this->SetY((2.835 / $this->k) + max($imgy, $this->y));

if ($this->rtl) {

$this->SetX($this->original_rMargin);

} else {

$this->SetX($this->original_lMargin);

}

$this->Cell(($this->w – $this->original_lMargin – $this->original_rMargin), 0, ”, ‘T’, 0, ‘C’);

$this->endTemplate();

}

// print header template

$x = 0;

$dx = 0;

if (!$this->header_xobj_autoreset AND $this->booklet AND (($this->page % 2) == 0)) {

// adjust margins for booklet mode

$dx = ($this->original_lMargin – $this->original_rMargin);

}

if ($this->rtl) {

$x = $this->w + $dx;

} else {

$x = 0 + $dx;

}

$this->printTemplate($this->header_xobjid, $x, 0, 0, 0, ”, ”, false);

if ($this->header_xobj_autoreset) {

// reset header xobject template at each page

$this->header_xobjid = false;

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197359.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Floyed算法[通俗易懂]

    Floyed算法[通俗易懂]这一讲简单介绍一下Floyed算法。话不多说,先放一道题帮助理解(其实是懒得描述具体应用场景)。FroggerFreddyFrogissittingonastoneinthemiddleofalake.SuddenlyhenoticesFionaFrogwhoissittingonanotherstone.Heplanstovisit

    2022年6月29日
  • sublime text激活码【注册码】

    sublime text激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
  • SSDP 协议_Smb协议

    SSDP 协议_Smb协议1.组播地址2.SSDP,简单服务发现技术组播地址为了让组播源和组播组成员进行通信,需要提供网络层组播地址,即IP组播地址。同时必须存在一种技术将IP组播地址映射为链路层的组播MAC地址。1.IP组播地址(1)       IPv4组播地址IANA(InternetAssignedNumbersAuthority,互联网编号分配委员会)将D类地址空间分配给IP

    2022年10月11日
  • 断点续传

    断点续传断点续传

    2022年4月25日
  • Qt多线程通信

    Qt多线程通信简述:1>Qt线程间共享数据主要有两种方式:1)使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的。2)使用singal/slot机制,把数据从一个线程传递到另外一个线程。第一种方法在各个编程语言都普遍使用,而第二种方法是QT的特有的,本文主要介绍第二种。2>

    2022年6月19日
  • c语言中位运算符的用法_c语言中位运算符的优先级

    c语言中位运算符的用法_c语言中位运算符的优先级位 运 算一直对位运算头疼,在此总结一下   程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。运位算包括位逻辑运算和移位运算,位逻辑运算能够方便地设置或屏蔽内存中某个字节的一位或几位,也可以对两个数按位相加等;移位运算可以对内存中某个二进制数左移或右移几位等。计算机内部是以补码形式存放数值的。C语言提供了六种位运算位运算符含义…

    2022年10月5日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号