【仅供内部供应商使用,不提供对外解答和培训】
Table of Contents |
---|
无
帆软报表产品中除了导出文件类型分类之外,对于pdf的导出场景还进行了额外的细分。常见的有三种,分别是普通导出,打印预览,自动打印。当用户需要做一些其他的pdf细分导出或者对现有的某中细分类型导出进行调整时,可以使用PDFExporterCreator接口处理。
该接口常用于对pdf某一种特定导出类型进行调整的需求中。对于所有pdf导出均涉及到的细分处理,则不建议使用这个接口。
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
package com.fr.io.exporter;
import com.fr.stable.fun.mark.Immutable;
/**
* Created by juhaoyu on 2016/12/5.
*/
public interface PDFExporterCreator extends Immutable {
String MARK_STRING = "PDFExporterCreator";
int CURRENT_LEVEL = 1;
@Deprecated
PDFExporterProcessor createPDFExporter(boolean isPrint);
/**
* PDF 导出
* @param exportType 导出类型:普通导出,打印预览,自动打印
*/
PDFExporterProcessor createPDFExporter(PDFExportType exportType);
}
|
产品线 | 版本 | 支持情况 | 备注 |
---|---|---|---|
FR | 8.0 | 支持 | |
FR | 9.0 | 支持 | |
FR | 10.0 | 支持 | |
BI | 3.6 | 支持 | 不支持仪表板 |
BI | 4.0 | 支持 | 不支持仪表板 |
BI | 5.1 | 支持 | 不支持仪表板 |
BI | 5.1.2 | 支持 | 不支持仪表板 |
BI | 5.1.3 | 支持 | 不支持仪表板 |
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<extra-core>
<PDFExporterCreator class="your class name"/>
</extra-core> |
所有的PDF导出都会通过PDFExporterFactory创建导出类实例。在PDFExporterFactory被加载时,会读取插件中申明的PDFExporterCreator。当PDFExporterFactory#getPDFExporter方法执行时,会通过加载的PDFExporterCreator实例进行创建具体的导出实例。
该接口是Immutable的,也就是他是独占的,如果多个插件都有使用到,那么只会生效其中的一个。
该接口会受到前置接口的影响,开发时需要注意确认目标环境的插件是否存在冲突的可能。
PDFExporterProcessor是AppExporter的进一步抽象,没有增加任何操作。开发者在实际开发时,不要直接实现这个接口,应该根据自己要处理的细分类型选择继承PDFExporter、PDFExporterForPrint、PDFEmbExporter三个中的一个。
PDFExportType | AppExporter | 生效场景 |
---|---|---|
EXPORT | PDFExporter | createPDFExporter( PDFExportType type ) 1、点击设计器本身文件的导出pdf 2、定时调度设置pdf附件 createPDFExporter(boolean isPrint ) 1、预览模板的导出pdf 2、模板不预览导出pdf 3、预览模板邮件发送pdf附件 |
PDFExporterForPrint | 打印预览时生效。10.0中没有用 | |
EMBED_PRINT | PDFEmbExporter | createPDFExporter( PDFExportType type ) 10.0的报表打印 |
demo地址:demo-excel-export-cell-value
com.fr.report.fun.ExcelExportAppProvider
com.fr.report.fun.CommentExcelProcessor
免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。