- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的查询中有三列,如果过度扩展,则第一列。所以我想修改函数 Calcwidths 以使第二列宽度减小。或者修改整个表格,使其根据单元格内容进行调整。
请告诉我具体该怎么做,因为我不太了解 fpdf。谢谢。
<?php
require('fpdf.php');
class PDF_MySQL_Table extends FPDF
{
protected $ProcessingTable=false;
protected $aCols=array();
protected $TableX;
protected $HeaderColor;
protected $RowColors;
protected $ColorIndex;
function Header()
{
// Print the table header if necessary
if($this->ProcessingTable)
$this->TableHeader();
}
function TableHeader()
{
$this->SetFont('Arial','B',12);
$this->SetX($this->TableX);
$fill=!empty($this->HeaderColor);
if($fill)
$this->SetFillColor($this->HeaderColor[0],$this->HeaderColor[1],$thisHeaderColor[2]);
foreach($this->aCols as $col)
$this->Cell($col['w'],6,$col['c'],1,0,'C',$fill);
$this->Ln();
}
function Row($data)
{
$this->SetX($this->TableX);
$ci=$this->ColorIndex;
$fill=!empty($this->RowColors[$ci]);
if($fill)
$this->SetFillColor($this->RowColors[$ci][0],$this->RowColors[$ci][1],$this->RowColors[$ci][2]);
foreach($this->aCols as $col)
$this->Cell($col['w'],5,$data[$col['f']],1,0,$col['a'],$fill);
$this->Ln();
$this->ColorIndex=1-$ci;
}
function CalcWidths($width, $align)
{
// Compute the widths of the columns
$TableWidth=0;
foreach($this->aCols as $i=>$col)
{
$w=$col['w'];
if($w==-1)
$w=$width/count($this->aCols);
elseif(substr($w,-1)=='%')
$w=$w/100*$width;
$this->aCols[$i]['w']=$w;
$TableWidth+=$w;
}
// Compute the abscissa of the table
if($align=='C')
$this->TableX=max(($this->w-$TableWidth)/2,0);
elseif($align=='R')
$this->TableX=max($this->w-$this->rMargin-$TableWidth,0);
else
$this->TableX=$this->lMargin;
}
function AddCol($field=-1, $width=-1, $caption='', $align='L')
{
// Add a column to the table
if($field==-1)
$field=count($this->aCols);
$this->aCols[]=array('f'=>$field,'c'=>$caption,'w'=>$width,'a'=>$align);
}
function Table($con, $query, $prop=array())
{
// Execute query
$res=mysqli_query($con,$query) or die('Error: '.mysqli_error($con)." <br>Query: $query");
// Add all columns if none was specified
if(count($this->aCols)==0)
{
$nb=mysqli_num_fields($res);
for($i=0;$i<$nb;$i++)
$this->AddCol();
}
// Retrieve column names when not specified
foreach($this->aCols as $i=>$col)
{
if($col['c']=='')
{
if(is_string($col['f']))
$this->aCols[$i]['c']=ucfirst($col['f']);
else
$this->aCols[$i]['c']=ucfirst(mysqli_fetch_field_direct($res,$col['f'])->name);
}
}
// Handle properties
if(!isset($prop['width']))
$prop['width']=0;
if($prop['width']==0)
$prop['width']=$this->w-$this->lMargin-$this->rMargin;
if(!isset($prop['align']))
$prop['align']='C';
if(!isset($prop['padding']))
$prop['padding']=$this->cMargin;
$cMargin=$this->cMargin;
$this->cMargin=$prop['padding'];
if(!isset($prop['HeaderColor']))
$prop['HeaderColor']=array();
$this->HeaderColor=$prop['HeaderColor'];
if(!isset($prop['color1']))
$prop['color1']=array();
if(!isset($prop['color2']))
$prop['color2']=array();
$this->RowColors=array($prop['color1'],$prop['color2']);
// Compute column widths
$this->CalcWidths($prop['width'],$prop['align']);
// Print header
$this->TableHeader();
// Print rows
$this->SetFont('Arial','',11);
$this->ColorIndex=0;
$this->ProcessingTable=true;
while($row=mysqli_fetch_array($res))
$this->Row($row);
$this->ProcessingTable=false;
$this->cMargin=$cMargin;
$this->aCols=array();
}
}
?>
<?php
session_start();
class PDF extends PDF_MySQL_Table
{
function Header()
{
// Title
$this->SetFont('Arial','',18);
$this->Cell(0,6,'Server/URL Details',0,1,'C');
$this->Ln(10);
// Ensure table header is printed
parent::Header();
}
}
$pdf = new PDF();
$pdf->AddPage();
$query = "SELECT DISTINCT Server_Name,Server_Status,Server_Type FROM server where ENV_NAME='{$_SESSION['envt_name']}' && ENV_TYPE = '{$_SESSION['envt_type']}'";
$pdf->Table($con,$query);
$pdf->AddPage();
$querytwo = "SELECT DISTINCT URL_Name,URL_Status,URL_Type FROM url where ENV_NAME='{$_SESSION['envt_name']}' && ENV_TYPE = '{$_SESSION['envt_type']}'";
$pdf->Table($con,$querytwo);
$pdf->Output();
?>
最佳答案
试试这个;)我设置第二列宽度为50,你可以改变它。
function CalcWidths($width, $align)
{
// Compute the widths of the columns
$TableWidth=0;
foreach($this->aCols as $i=>$col)
{
$w=$col['w'];
if ($i != 1) {
if($w==-1)
$w=$width/count($this->aCols);
elseif(substr($w,-1)=='%')
$w=$w/100*$width;
} else {
**//Your custom width for second column**
$w = 50;
}
$this->aCols[$i]['w']=$w;
$TableWidth+=$w;
}
// Compute the abscissa of the table
if($align=='C')
$this->TableX=max(($this->w-$TableWidth)/2,0);
elseif($align=='R')
$this->TableX=max($this->w-$this->rMargin-$TableWidth,0);
else
$this->TableX=$this->lMargin;
}
关于php - 我想使用 fpdf 增加特定的列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52161320/
我有一个从帖子表单生成的 pdf (fpdf)。我希望 pdf 在新选项卡和/或窗口中打开,提示用户保存 pdf。我猜我需要将输出保存为字符串 $data=$pdf->Output("OfficeFo
我正在使用 Python 3.8.5、conda 4.10.3 和 FPDF2 2.3.1 当我尝试导入包时,出现以下错误: 输入: from fpdf import FPDF 响应: -------
在我的应用程序中,PDF 在网页中打开,在下面的示例中,当用户单击 Logo.png 时,它被重定向到同一页面中的 FPDF 站点,但我想在新窗口中打开链接,而不是在同一个窗口中打开,因此用户打开了
我使用了 fpdf 库并根据 fpdf 的官方文档使用它。 我想在我的文件中使用标题但不能使用它,下面是我的代码。请纠正我的错误,为什么标题没有出现.. 这是我的代码: SetFont('Arial'
所以我想用 php 修改一个 pdf 模板。 我环顾四周,发现大多数人都使用 FPDI,于是我试了一下。 所以我做的是 include('pdf/fpdf.php'); include('pdf/fp
对于我的项目,我必须生成一个 PDF 文件。Stackoverflow 告诉我使用 FPDF。所以,我按照教程进行操作,但它似乎不起作用。 public function makePdf(Reques
我无法在关于同一主题的几篇文章中找到我的问题的答案,这就是为什么我将在这里提出更具体的问题。 我的问题是关于 wkhtmltopdf 和 fpdf。我需要其中之一来创建 1 页发票(真正的基本设计)和
为了生成 PDF 发票,我使用 fpdf lib 并将重复文本存储在 mySQL 数据库中。 当我将此文本存储在一个简单文件中时,我需要将其保存为 Latin1 编码,因为 fpdf 使用 Latin
好吧,我正在开发漫画(日本漫画)下载器。日本漫画可以在线获取,但你只能阅读,如果你想下载它们,你必须通过右键单击blah blah blah开始保存图像文件... 所以,我正在开发一个替代漫画下载器,
我有一个 PDF 文件,我想用 FDI/FPDF 添加一个新页面 Fatal error: Uncaught Exception: FPDF error: Incorrect output desti
我们如何以相同的高度显示具有不同内容量的 fpdf 多单元格 最佳答案 很好的问题。 我通过遍历行中的每个数据单元格来解决它,这些数据单元格将是多单元格并确定 最大高度所有这些细胞。这发生在您创建行中
我已经四处搜寻,发现这个问题非常普遍,但似乎找不到正确和直接的答案。我正在使用FPDF,并且我想使用MultiCell()生成表,因为我需要它的换行属性。尝试使用Cell(),但无法读取换行符。 $c
我一直在尝试让 php 发送一封附有 PDF 的电子邮件,我到处寻找并发现了这篇文章 Email PDF Attachment with PHP Using FPDF . 我尝试了解决方案,但仍然没有
谁能向我解释一下 FPDF 中的这个函数是如何工作的?使用以下代码,我似乎无法从中获得任何颜色: function Header() { // Logo $th
我正在从 html 表单创建 PDF 页面,所以我的 php 看起来像这样(例如): $pdf->Cell(0,0,$_POST['teacher_name'],0,2,'C'); 我可以定义该变量
我写了下面的代码来创建一个多单元格的表 $this->Cell(25, 25, "SR.No.", 'LTRB', 0, 'L', true); $this->Cell(60, 25, "CH
下面代码中的变量“输出”是几段文本,我正在尝试使用 FPDF 将其全部写入 pdf。但是,它只写入一行。我如何让它包含换行符。例如,文本的多个位置都有“\n”,但它被忽略了。谢谢。 dummytext
我需要创建具有背景颜色的单元格,但我使用的是示例: $pdf->SetFillColor(135,206,235); $pdf->Rect(9, 52, 190, 7, 'F'); 这个例子的问题是,
我正在使用 FPDI 和 FPDF 在现有 PDF 之上叠加新文本。它使用 useTemplate() 方法来实现这一点。 我遇到的问题 - 它只将模板应用于第一页。如果文本很长,它将换行到第二页,使
通过使用 FPDF (multiCell),我无法为一个简单的单词应用不同的标签。 举个例子: Sample 最后,它仅以下划线样式(最新的)以 PDF 形式显示。有没有可能将它们结合起来? 最佳答
我是一名优秀的程序员,十分优秀!