服务器端字体调整大小

时间:2015-01-29 15:50:23

标签: php html server-side

我有这个PHP文件可以“创建”自定义名称通过$_GET传递的课程证书。
目标是将文件输出转换为任何可打印格式,并将所有证书下载到一个(.zip)文件中。

问题是名称的宽度是动态的,名称必须与div宽度匹配。

这是一个示例代码:

<html>
    <head>
    </head>
    <body style="background-image: image; background-image-size: 100% 100%; width: 1200px; height: 1200px;">
       <div class="name_1" style="width: 250px; height: 80px; margin-top: 400px; margin-left: 500px;">
            <p><?php echo $_GET['name_1']; ?></p>
       </div>
       <div class="name_2" style="width: 250px; height: 80px; margin-top: 900px; margin-left: 500px;">
            <p><?php echo $_GET['name_2']; ?></p>
        </div>
    </body>

我已经实现了这个动态文本大小调整以适应jQuery的div宽度。

最大的问题是我需要逐页加载100多页才能让这个动态文本重新调整大小......

那么,有没有办法重新调整所有页面名称的大小并一键下载所有页面名称?

2 个答案:

答案 0 :(得分:1)

使用wkhtmltopdf框架,文档here抓取页面屏幕截图。它将在页面加载时执行脚本,你甚至可以使用参数来延长脚本执行的时间。

--javascript-delay (default to 200ms)

你有一个PHP interface,但你可以这样简单地使用PHP exec

exec("wkhtmltopdf test.html output.pdf")

要创建ZIP库,您可以找到examples here

答案 1 :(得分:0)

FPDF及其派生词有GetStringWidth()方法。如果使用正确的字体,则可以通过此方法获取。在调用此方法之前,必须使用SetFont()选择字体。包含一组标准字体(Arial,Times,Courier,Symbol和ZapfDingbats),如果你的不是其中之一,你必须添加它:http://www.fpdf.org/en/tutorial/tuto7.htm

$string = "This is a text";
$fpdf = new FPDF();
$pdf->SetFont('Arial','B',16);
echo $fpdf->GetStringWidth($string);