public abstract class AbstractDocMaker extends Object implements DocMaker
AREA_DEFINE_END, AREA_DEFINE_START, AT, BOOL_DATA_TYPE_DEFAULT_INDEX, DATA_TYPE_BOOL, DATA_TYPE_DATE, DATA_TYPE_DEC, DATA_TYPE_IMAGE, DATA_TYPE_INT, DATA_TYPE_SELECT, DATA_TYPE_STR, DATA_TYPE_TABLE, DATA_TYPE_TEXT, DATE_DATA_TYPE_DEFAULT_INDEX, DATE_DATA_TYPE_FORMAT_INDEX, DATE_DATA_TYPE_MAX_INDEX, DATE_DATA_TYPE_MIN_INDEX, DEC_DATA_TYPE_DEFAULT_INDEX, DEC_DATA_TYPE_MAX_INDEX, DEC_DATA_TYPE_MIN_INDEX, DEC_DATA_TYPE_PRECISION_INDEX, DEFAULT_VALUE, DRS_FILE_SUFFIX, FORMAT_RULE_BASIC, FORMAT_RULE_FILE, IMAGE_BMP, IMAGE_CELL_AREA_DEFINE_NUM, IMAGE_CELL_AREA_DEFINE_SEPARATE, IMAGE_DATA_TYPE_HEIGHT_INDEX, IMAGE_DATA_TYPE_WIDTH_INDEX, IMAGE_JPEG, IMAGE_JPG, IMAGE_PNG, INT_DATA_TYPE_DEFAULT_INDEX, INT_DATA_TYPE_MAX_INDEX, INT_DATA_TYPE_MIN_INDEX, KEYWORD_PAGE_NUMBER, RULE_DEFINE_MIN_NUM, RULE_ELEMENT_SEPARATE, RULE_ELEMENT_SEPARATE_REGEX, SELECT_DATA_TYPE_DEFAULT_INDEX, SELECT_DATA_TYPE_ITEM_TEXT_VALUE_SEPARATE, SELECT_DATA_TYPE_ITEMS_INDEX, SELECT_DATA_TYPE_ITEMS_SEPARATE, STR_DATA_TYPE_DEFAULT_INDEX, STR_DATA_TYPE_FILTER_INDEX, STR_DATA_TYPE_LENGTH_INDEX, STR_DATA_TYPE_LIMIT_INDEX, TABLE_CELL_AREA_DEFINE_PAIR_NUM, TABLE_CELL_AREA_DEFINE_SEPARATE, TABLE_CELL_AREA_START_END_SEPARATE, TABLE_CELL_SPECIAL_MERGE_AREA_DEFINE_MARK, TABLE_DATA_TYPE_PAGE_MAX_ROW_INDEX, TABLE_DATA_TYPE_PAGE_MIN_ROW_INDEX, TABLE_DATA_TYPE_TABLE_INDEX_INDEX, TAG_END, TAG_START, TEMPLATE_FILE_PREFIX, TIP_START
构造器和说明 |
---|
AbstractDocMaker() |
限定符和类型 | 方法和说明 |
---|---|
protected BufferedImage |
createScaleBufferedImage(BufferedImage image,
int scaleWidth,
int scaleHeight)
创建期望宽高的缓存图,保持原有图像宽高比
|
protected abstract List<String> |
doMakeDoc(File templateFile,
LinkedHashMap<String,String> texts,
LinkedHashMap<String,ImageData> images,
LinkedHashMap<String,TableData> tables,
String desDirPath,
String desFilePrefix,
String imageDir)
根据文档模板+制作规则,接受外部传入的文档数据制作对应文档,并将文档放到指定目录
|
protected BufferedImage |
loadImage(String imageID,
String imageDir)
读取图像数据
|
List<String> |
makeDoc(File templateFile,
INIData formatRule,
String jsonData,
File desDir,
String desFilePrefix,
String imageDir)
根据文档模板+制作规则,接受外部传入的文档数据制作对应文档,并将文档放到指定目录
|
List<String> |
makeDoc(File drsFile,
String jsonData,
File desDir,
String desFilePrefix,
String imageDir)
该方法不保证并发正确性,建议调用者采用desDir+desFilePrefix进行隔离,即每次调用传入不同路径,保证生成的文档不会被覆盖
接受外部传入的文档数据,填充进drs文档,并根据drs文档组成结构中模板对应的文档类型,制作对应包含数据的文档,并将文档放到指定目录。
|
protected int |
parsePageNum(LinkedHashMap<String,TableData> tables)
解析要输出的文档数量
|
protected boolean |
writeImage(File destFile,
Image srcImage,
String format)
将图像写入指定文件
|
public List<String> makeDoc(File drsFile, String jsonData, File desDir, String desFilePrefix, String imageDir) throws IOException
DocMaker
接受外部传入的文档数据,填充进drs文档,并根据drs文档组成结构中模板对应的文档类型,制作对应包含数据的文档,并将文档放到指定目录。
drs全称:Data Recording System,表示文档数据录入系统,专用于往固定格式的文档录入数据的应用场景。这类场景具备以下特征:
1、对文档格式要求严格 2、对录入文档的数据要求严格 3、文档格式丰富多样
drs文档:代表后缀为.drs的文档,本质是一个用标准JAVA压缩算法制作的压缩包,其组成结构由两部分构成:模板+规则。
其中,模板名称为:template.xxx,.xxx是现有文档的后缀,比如:template.xlsx, 则表示模板采用excel制作,那么该接口返回制作好的填充数据完毕的excel文件。
其中,规则名称为:formatRule.ini,该规则具备承前启后的作用,具体过程: 前端依据该规则动态创建数据录入界面并限制数据录入的逻辑。 后端依据该规则效验传入数据的正确性并制作对应格式的文档。
makeDoc
在接口中 DocMaker
drsFile
- drs文件jsonData
- 文档数据desDir
- 生成目标文档的存放目录,为空则采用文档模板所在目录desFilePrefix
- 生成目标文档的文件名前缀,为空则采用文档模板文件名作为文件名前缀imageDir
- 保存文档图片的目录路径,为空则不录入图片IOException
- 制作过程中,可能会抛出该异常public List<String> makeDoc(File templateFile, INIData formatRule, String jsonData, File desDir, String desFilePrefix, String imageDir) throws IOException
DocMaker
makeDoc
在接口中 DocMaker
templateFile
- 文档模板formatRule
- 制作规则jsonData
- 文档数据desDir
- 生成目标文档的存放目录,为空则采用文档模板所在目录desFilePrefix
- 生成目标文档的文件名前缀,为空则采用文档模板文件名作为文件名前缀imageDir
- 保存文档图片的目录路径,为空则不录入图片IOException
- 制作过程中,可能会抛出该异常protected int parsePageNum(LinkedHashMap<String,TableData> tables)
tables
- 待录入的表格数据protected BufferedImage loadImage(String imageID, String imageDir) throws IOException
imageID
- 图片IDimageDir
- 存放图片的目录IOException
protected BufferedImage createScaleBufferedImage(BufferedImage image, int scaleWidth, int scaleHeight)
image
- 原有缓存图scaleWidth
- 缩放后期望得到的宽scaleHeight
- 缩放后期望得到的高protected boolean writeImage(File destFile, Image srcImage, String format)
destFile
- 目标文件srcImage
- 源图像format
- 文件格式protected abstract List<String> doMakeDoc(File templateFile, LinkedHashMap<String,String> texts, LinkedHashMap<String,ImageData> images, LinkedHashMap<String,TableData> tables, String desDirPath, String desFilePrefix, String imageDir) throws IOException
templateFile
- 文档模板texts
- 文本数据images
- 图像数据tables
- 表格数据desDirPath
- 生成目标文档的存放目录,为空则采用文档模板所在目录desFilePrefix
- 生成目标文档的文件名前缀,为空则采用文档模板文件名作为文件名前缀imageDir
- 保存文档图片的目录路径,为空则不录入图片IOException
- 制作过程中,可能会抛出该异常