教你一招,轻松实现打印pdf文件名根据单据名生成

苍穹打印默认取“打印模板名称”作为pdf文件名,如果默认名称无法满足用户需求,则用户可以通过开发插件的方式,来自定义生成pdf文件名。
为满足客户需求,小编将通过案例,讲解如何实现修改pdf文件名的功能。
1 规则介绍
系统默认生成pdf文件的文件名命名规则如下:
规则一:第一份pdf文件文件名默认取打印模板的名称,即“模板名称”.pdf。 规则二:第二份pdf文件的文件名取“模板名称-1”.pdf,后面的依次类推,加上一个递增的数字。
注:如果在pdf页数小于500(当前系统默认值)的情况下,仅仅会生成一份pdf文档,如果生成的pdf页数超过最大值,则会生成新的pdf文件。
2 适用版本
该功能适用版本为金蝶云·苍穹V4.0.0018及以上版本。
3 模板配置
3.1 模板设计
模板设计路径:【配置工具】→【打印配置】→【维护打印模板】,新增打印模板,如下图所示:
模板设计示例
3.2 注册插件
创建插件类PdfNamePlugin,并继承AbstractPrintPlugin打印插件基类(基类全路径kd.bos.print.core.plugin.AbstractPrintPlugin),随后在打印模板中注册该插件。
4 插件开发
首先,修改规则一,默认文件名称取“采购申请单6月归档”。然后,重写beforeExport方法,在第一份pdf文件输出前,修改默认文件名,具体如下: 修改规则二,pdf默认文件名自定义规则,取A、B、C值,再重写beforeExpFile方法,在每份文件输出前,修改文件名,使用A、B、C间隔以区分文件,具体如下:public class PdfNamePlugin extends AbstractPrintPlugin {
@Override
public void beforeExport(BeforeExportEvent evt) {
super.beforeExport(evt);
evt.setFileTplName("采购申请单" + ZonedDateTime.now().getMonthValue() + "月归档");
}
}public class EveryPdfNamePlugin extends AbstractPrintPlugin {
private static final char[] ch = {'A', 'B', 'C'};
private int counter;
@Override
教你一招,轻松实现打印pdf文件名根据单据名生成
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



