PHPWord 打印 快递单/合同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHPWord 打印 快递单/合同相关的知识,希望对你有一定的参考价值。

打印快递单有个特点:

被打印纸的背景是固定的,

技术分享

你只能 在合适的位置输入快递单的内容,操作步骤如下:

1、制作 word 模板

参考文章 “图解如何用打印机套打快递单

2、在 模板 中放置“占位符”

打开上面定制好的模板,在 文本输入框 中输入 占位符 文本,如:

用户名:${UserName}

身份证:${IDNo}

效果图如下:注意:打印的时候,需要把背景图删除!

 技术分享

这些占位符定义规则,是根据 phpWord 库定义的,官方教程:

http://phpword.readthedocs.io/en/latest/templates-processing.html?highlight=replace

利用 PHPWord 库,可用动态地 修改替换占位符的内容,参考代码如下:

use common\\library\\PhpWord\\Settings;
use common\\library\\PhpWord\\TemplateProcessor;

public function test() {
	// 模板文件
	$tplFile = DATA_PATH . ‘/contract/template_1.docx‘;

	// 输出 word 文件名
	$fileName = ‘phpgo的购卡合同.docx‘;

	// 实例化 模板器
	Settings::setOutputEscapingEnabled(true);
	$templateProcessor = new TemplateProcessor($tplFile);

	// 替换 关键字
	$templateProcessor->setValue(‘UserName‘, ‘刘德花22‘);
	$templateProcessor->setValue(‘IDNo‘, ‘362422199607020812‘);
	$templateProcessor->setValue(‘Sex‘, ‘女‘);

	// 自动输出下载 word 文件
	$tempFileName = $templateProcessor->save();
	$docxData = file_read($tempFileName);
	unlink($tempFileName);

	ob_start();
	header("Cache-Control: public");
	header("Content-type: application/octet-stream");
	header("Accept-Ranges: bytes");
	if (strpos($_SERVER["HTTP_USER_AGENT"], ‘MSIE‘)) {
		header(‘Content-Disposition: attachment; filename=‘ . $fileName);
	} else if (strpos($_SERVER["HTTP_USER_AGENT"], ‘Firefox‘)) {
		header(‘Content-Disposition: attachment; filename=‘ . $fileName);
	} else {
		header(‘Content-Disposition: attachment; filename=‘ . $fileName);
	}
	header("Pragma:no-cache");
	header("Expires:0");
	echo $docxData;
	ob_end_flush();
}

 

以上是关于PHPWord 打印 快递单/合同的主要内容,如果未能解决你的问题,请参考以下文章

关于快递鸟的顺丰电子面单打印

快递鸟电子面单打印功能基于java

怎么用wps实现每打印一次发货单号数值自动增加1的效果?

电商平台适用基础快递查询api接口对接demo解决方案

快递单电子面单打印机脱机是啥原因

常用电子面单接口API及对接攻略(快递鸟菜鸟顺丰)