网页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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • .Net MVC 框架基础知识「建议收藏」

    .Net MVC 框架基础知识「建议收藏」一、什么是MVC?MVC是一种使用MVC(ModelViewController模型-视图-控制器)设计创建Web应用程序的模式。MVC全名是ModelViewControlle

    2022年6月30日
    16
  • 如何在 Python 中使用断点调试

    如何在 Python 中使用断点调试实际上没人能一次就写出完美的代码,除了我。但是世界上只有一个我。–林纳斯·托瓦兹(Linux之父) 既然不是神,写代码自然免不了要修改。修改代码的过程被称作调试,又叫 debug。 刚接触编程的人,往往对调试代码没有很深的认识,觉得把功能做出来就完事了。一旦程序运行出现问题,便无从下手。而实际开发中,调试代码通常要花费比新编写代码更多的时间。所谓“行百里者半于九十”,这句…

    2022年5月21日
    44
  • volatile关键字及其作用

    volatile关键字及其作用概述:本文主要介绍Java语言中的volatile关键字,内容涵盖volatile的保证内存可见性、禁止指令重排等。

    2022年5月31日
    29
  • SpringMvc工作流程图讲解

    SpringMvc工作流程图讲解SpringMvc工作流程图讲解这是博主根据很多书籍自己总结的一个过程,可能会有错误,敬请指出,共同学习

    2022年5月2日
    39
  • 仪器保养 | 安捷伦DSO-X 2002A示波器自检测/自校准

    仪器保养 | 安捷伦DSO-X 2002A示波器自检测/自校准安捷伦DSO-X2002A示波器自检测、自校准首先上电开机1.按下Utility-服务-Diagnostics-硬件本机自检-前面板自检2.按下Utility-服务-Calibration–按下后盖CAL-开始用户校准-根据提示完成操作感兴趣的话就跟安迪一起来学习吧~仪器保养|安捷伦DSO-X2002A示波器自检测/自校准…

    2022年10月11日
    0
  • 自定义属性 declare-styleable数据类型简介:

    自定义属性 declare-styleable数据类型简介:一、reference:参考指定Theme中资源ID。1.定义: 1 2 3 <declare-styleablename=”My”> <attrname=”label”format=”reference”> </declare-styleable> 2.使用: 1…

    2022年7月14日
    19

发表回复

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

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