/e-learning-question-exporter

This repository contains the scripts for exporting question bank from the skill level tournament PDF files

Primary LanguagePythonMIT LicenseMIT

E学堂技能等级导出工具

本项目包含解析技能等级赛题库PDF文件的脚本。

English Ver. Document

依赖

请使用下列命令安装依赖:

python -m pip install -r requirements.txt

使用

修改main.py

  • 修改main.py中的TARGET_CONFIG项为config文件夹下的配置文件名(请不要带上.json后缀)
  • 修改main.py中的OUTPUT_TYPE项为导出文件的方法,目前支持OutputExcel2KaoShiBaoOutputWord2KaoShiBao 两种方法,分别对应考试宝软件的两种题目导入模板。

运行

运行main.py即可。

python main.py

导出的文件将会保存在output文件夹下,并以config文件中的title项命名。

配置项

创建配置文件

关于配置文件的创建,请参考config文件夹下的说明

代码配置

PDF解析

PDF文件的解析共有两种类库:

  • pymupdffitz):更全面的解析,支持解析图片,适合没有图片的文件
  • tika:基于Java的解析,仅支持解析文字

二者分别对应ProcessViaTika类及ProcessViaFitz类,您可以在process/base_process.py中找到两类的实现。

默认情况下使用ProcessViaFitz类以支持图片解析。

导出

导出的文件类型有两种:

  • OutputExcel2KaoShiBao:导出为考试宝软件的Excel模板,解析准确但是不支持图片
  • OutputWord2KaoShiBao:导出为考试宝软件的Word模板,由于Word的排版问题,解析可能不准确并需要再上传题库时手动调整,但支持图片的上传

请按需选择,并在main.py中修改OUTPUT_TYPE项以切换。

已知问题

  1. 导出的Word模板在选项仅有图片时在上传题库过程中会出现解析错误,类似于: known_issue_1.png 此时,需要在题库导入页面中手动将图像文件复制到对应选项框中。
  2. 由于考试宝软件对Word模板的解析问题,导出的Word模板在上传题库过程中可能会出现解析错误,常见选项错位等问题,此时需要手动调整。 例如:
  1. 以下关于装置的说法,正确的是( )
  A. 会产生10A的交流电
  B. 会产生100A的交流电
  C. 会产生1000A的交流电

此时,再导入考试宝时,由于其对Word模板的会解析题目中的ABC等字母,导致选项错位,如无人工介入会变成:

  1. 以下关于装置的说法,正确的是( )
  A. 会产生10
  B. 的交流电
  C. 会产生100
  D. 的交流电
  E. 会产生1000
  F. 的交流电

这种情况是由于该软件平台造成的,目前无法自动解决,需要手动调整。

其他

欢迎PR并提出建议,也欢迎提出各类Issue