# 车辆档案打印功能开发规范 ## 1. 核心技术栈 * **模板引擎**: Velocity (`.html.vm`) * **PDF生成**: Gotenberg (HTML转PDF) * **水印处理**: PDFBox (`PdfWatermarkUtil`) * **存储**: OSS (图片URL处理) ## 2. 通用样式与布局规范 (Template) 所有打印模板位于 `src/main/resources/templates/vehicle/` 目录下。 ### 2.1 页面布局 * **纸张设置**: A4 纵向 (Vertical)。 * **容器宽度**: `.page-content` 宽度建议设置为 **99%** 或留出微小边距,防止浏览器预览或打印时**右侧边框**被截断。 * **表格样式**: * 必须使用标准 HTML `
| `) 内部。
* **布局方式**: 使用 Flex 布局 (`display: flex; flex-wrap: wrap;`)。
* **动态宽度逻辑** (Velocity):
* **单张图片**: 宽度设为 **98%** (占满整行),居中显示。
* **多张图片**: 宽度设为 **48%** (一行两张),保留 1% 间距。
* **样式代码参考**:
```html
#if($images.size() == 1)
#set($widthStyle = "width: 98%;")
#else
#set($widthStyle = "width: 48%;")
#end
#foreach($img in $images)
```
### 2.3 水印设置
* **位置调整**: 为防止 A4 纵向打印时最后一行水印被截断,Y 轴偏移量需增加。
* **代码位置**: `PdfWatermarkUtil.java`
* **参数**: `y + 100` (原为 `y + 50`)。
---
## 3. 后端接口开发规范 (Java)
### 3.1 接口定义
* **Controller**: `VehicleFileController`
* **Service**: `IVehicleFilePrintService`
* **请求方式**: `POST` (支持批量打印)
* **参数**: `List |