电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何实现每条单据打印一个pdf

来源:金蝶云社区作者:金蝶2024-09-2311

如何实现每条单据打印一个pdf

1 问题描述

目前很多国企客户,都有一个二开干部任免审批表,在打印的时候希望每条单据打印成一个PDF以便发给对应的干部


2 解决方法

步骤一:创建一个打印模板

步骤二:添加一个操作代码为donothing的按钮


步骤三:二开一个列表插件,调用打印接口

接口一:

PrtAttach prtAttach = BosPrintServiceHelper.execPrint(PrintWork work) 

适用版本: V5.0.011,V5.0.019以上版本


接口二:

适用版本: V5.0.011,V5.0.019以上版本废弃,建议使用上面的execPrint接口

PrtAttach prtAttach = BosPrintServiceHelper.doPrint(PrintWork work)  



参数说明

PrintWork 参数说明

 

参数名称

类型

必填

说明

pageId

String

页面pageid.如报表等,插件内需要根据pageId获取数据,则必传

printLang

String

打印语言

expType

String

导出类型(pdf,xls)

isVerEconomizePaper

Boolean

是否纵向节纸

isHorEconomizePaper

Boolean

是否横向节纸

taskList

List<PrintTask>

打印任务,一个模版对应一个PrintTask。一个PrintTask. 参考参数PrintTask

extParam

Map

扩展参数.

 

 

PrintTask 参数说明

 

参数名称

类型

必填

说明

tplId

String

模版ID

pkIds

List<Object>

单据,基础资料等数据内码

 

返回结果

PrtAttach 对象

参数值

类型

非空

说明

taskId

String

每次任务对应一个taskId

formId

String

表单编码

appId

String

应用编码

userId

String

操作用户id

orgId

String

表单所属组织id

diskType
String文件存贮类型(0附件服务器,2临时文件)

attachDetails

List<AttachDetail>

打印结果附件信息。详情见AttachDetail

 

 

 

AttachDetail对象

 

参数值

类型

非空

说明

attachId

String

附件id

fileName

String

附件名称

filePath

String

附件路径

fileType

String

附件类型 pdf, xlsx

source

String

附件来源

旧打印
新打印


代码参考:

package plugin.print;

import com.kingdee.bos.qinglightapp.cache.CacheServiceFactory;
import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.IListView;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.print.api.PrintTask;
import kd.bos.print.api.PrintWork;
import kd.bos.print.core.service.PrtAttach;
import kd.bos.print.service.BosPrintServiceHelper;
import kd.bos.servicehelper.AttachmentServiceHelper;
import kd.bos.url.UrlService;
import kd.sdk.plugin.Plugin;

import java.util.ArrayList;
import java.util.EventObject;
import java.util.Iterator;
import java.util.List;

/**
 * 标准单据列表插件
 */
public class Onebillonepdf extends AbstractListPlugin implements Plugin {

    //二开的打印按钮标识
    public static final String PRINTKEY="pio1_baritemap";

    //打印语言
    public static final String PRINTLANG="zh_CN";

    //打印格式,支持pdf、excel
    public static final String PRINTTYPE="pdf";

    //打印模板的编码
    public static final String TPLNUM="pio1_cadretable_prtpl";

    //是否纵向节纸
    public static final Boolean ISVERECONOMIZEPAPER=false;

    //是否横向节纸
    public static final Boolean ISHORECONOMIZEPAPER=false;

    @Override
    public void registerListener(EventObject e) {
        super.registerListener(e);
        //监听工具栏
        this.addItemClickListeners("tbmain");
    }

    @Override
    public void itemClick(ItemClickEvent evt) {
        super.itemClick(evt);
        //获取操作标识
        String key = evt.getItemKey();
        //判断是

如何实现每条单据打印一个pdf

1 问题描述目前很多国企客户,都有一个二开干部任免审批表,在打印的时候希望每条单据打印成一个PDF以便发给对应的干部2 解决方法步骤一...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信