exam.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. return [
  3. /*
  4. |--------------------------------------------------------------------------
  5. | PDF 题目ID显示配置
  6. |--------------------------------------------------------------------------
  7. |
  8. | 控制生成PDF时是否在题干末尾显示题目ID,格式为 (Q000123)
  9. | 用于快速定位题目进行问题分析
  10. |
  11. */
  12. 'show_question_id_in_pdf' => env('EXAM_PDF_SHOW_QUESTION_ID', false),
  13. /*
  14. |--------------------------------------------------------------------------
  15. | PDF 是否显示题目难度
  16. |--------------------------------------------------------------------------
  17. |
  18. | 控制生成PDF时是否在题号后显示难度,便于校验题目排序逻辑。
  19. |
  20. */
  21. 'show_question_difficulty_in_pdf' => env('EXAM_PDF_SHOW_QUESTION_DIFFICULTY', false),
  22. /*
  23. |--------------------------------------------------------------------------
  24. | 判卷PDF是否显示题目
  25. |--------------------------------------------------------------------------
  26. |
  27. | 控制判卷PDF中是否保留题干与选项。关闭后仅保留题号、正确答案和解题思路,
  28. | 适合学案较长时直接生成答案版。
  29. |
  30. */
  31. 'pdf_grading_show_stem' => env('EXAM_PDF_GRADING_SHOW_STEM', true),
  32. /*
  33. |--------------------------------------------------------------------------
  34. | 判卷PDF追加扫描答题卡页
  35. |--------------------------------------------------------------------------
  36. |
  37. | 控制是否在判卷PDF末尾追加一页用于扫描识别的答题卡。
  38. |
  39. */
  40. 'pdf_grading_append_scan_sheet' => env('EXAM_PDF_GRADING_APPEND_SCAN_SHEET', false),
  41. /*
  42. |--------------------------------------------------------------------------
  43. | 判卷卡识别模板参数(供 Python/OpenCV 使用)
  44. |--------------------------------------------------------------------------
  45. |
  46. | Laravel 侧仅负责输出几何模板参数,不负责识别逻辑。
  47. | 使用 artisan 命令 `exam:generate-judge-card-template` 生成 JSON 文件。
  48. |
  49. */
  50. 'judge_card_template' => [
  51. 'page' => [
  52. 'width' => 2480,
  53. 'height' => 3508,
  54. 'dpi' => 300,
  55. // 与 @page 一致的页边距(单位:px@300DPI)
  56. 'margin_top' => 260, // 2.2cm
  57. 'margin_right' => 236, // 2.0cm
  58. 'margin_bottom' => 272, // 2.3cm
  59. 'margin_left' => 236, // 2.0cm
  60. ],
  61. 'box' => [
  62. 'width' => 66,
  63. 'height' => 66,
  64. ],
  65. 'layout' => [
  66. // 第1题第1个方框左上角(300DPI像素坐标)
  67. 'start_x' => 286,
  68. 'start_y' => 650,
  69. // 相邻题目的纵向步进、同题多框横向步进(300DPI像素)
  70. 'row_height' => 126,
  71. 'col_spacing' => 90,
  72. // 判题卡视觉排版参数(同样基于300DPI像素,供页面渲染与JSON对齐)
  73. 'header_top_offset' => -30,
  74. 'row_left_x' => 8,
  75. 'row_width' => 2464,
  76. 'row_padding_top' => 10,
  77. 'row_padding_bottom' => 10,
  78. 'label_x' => 24,
  79. 'label_width' => 210,
  80. 'label_to_box_gap' => 20,
  81. ],
  82. 'mark_rules' => [
  83. 'correct' => ['/', '\\'],
  84. 'wrong' => ['X'],
  85. 'blank_is_wrong' => true,
  86. ],
  87. ],
  88. ];