浏览代码

修改pdf水印

xyxie 3 月之前
父节点
当前提交
3442aa2cab
共有 2 个文件被更改,包括 19 次插入6 次删除
  1. 3 3
      controllers/report_v2.go
  2. 16 3
      services/file.go

+ 3 - 3
controllers/report_v2.go

@@ -1959,7 +1959,7 @@ func fixSmartReport() {
 }
 func InitPdf() {
 	inFile := "铝年报:25年成本回落后,开启长周期故事20241204.pdf"
-	f2, err := services.GeneralWaterMarkPdf(inFile, "颜鹏 - 18170239278")
+	f2, err := services.GeneralWaterMarkPdf(inFile, "上周美国馏分油库存累库95万桶,馏分油表需环比下降(-25.6万桶/日)。本期馏分油产量继续抬升-18170239278")
 	//f2, err := services.GeneralWaterMarkPdf(inFile, "上周美国馏分油库存累库95万桶,馏分油表需环比下降(-25.6万桶/日)。本期馏分油产量继续抬升,在供增需减的环比变动下库存持续累库。馏分油供应的增加我们认为可能和进口的油种有关,今年以来美国进口的中重质原油占比不断走高,尤其是5")
 	if err != nil {
 		fmt.Println("生成失败,ERR:", err)
@@ -1979,10 +1979,10 @@ func InitPdf() {
 	_, _ = io.Copy(newPdf, f2)
 }
 
-func AddWaterMarkToImage() {
+func addWaterMarkToImage() {
 	//python3 static/watermarker.py --file 铝年报:25年成本回落后,开启长周期故事20241204.jpg -m 你好我是超长水印我是中国人我爱我的家乡-1244555432 -o newMarked.jpg
 	fileName := "铝年报:25年成本回落后,开启长周期故事20241204.jpg"
-	markStr := "你好我是超长水印我是中国人我爱我的家乡-1244555432"
+	markStr := "你好我是超长水印我是中国人我爱我的家乡我家住在大海边喜欢的美食是海鲜喜欢的玩具是乐高喜欢"
 	outFileName := "static"
 	font := "static/SimHei.ttf"
 	cmd := exec.Command("python3", "static/watermarker.py", "-f", fileName, "--font-family", font, "-m", markStr, "-o", outFileName)

+ 16 - 3
services/file.go

@@ -191,7 +191,6 @@ func GeneralWaterMarkPdf(pdfPath, waterMarkStr string) (f2 *bytes.Buffer, err er
 	onTop := true
 	update := false
 	desc := "fo:SimHei, points:38, rot:30, col: 0.75 0.75 0.75, scale:1 abs, opacity:0.3"
-	//fontDir := `C:\Users\123\go\src\eta\eta_api\static`
 	fontDir := `static`
 	font.UserFontDir = fontDir
 
@@ -258,13 +257,27 @@ func GeneralWaterMarkPdf(pdfPath, waterMarkStr string) (f2 *bytes.Buffer, err er
 	var sb2 strings.Builder
 	lineSpace := "\n \n \n"
 	rows := 8
+	targetText1 := ""
+	targetLength := len(targetText)
+	for _, v := range targetText {
+		if targetLength-len(targetText1) < 8 {
+			break
+		}
+		targetText1 += fmt.Sprintf("%c", v)
+	}
+	//fmt.Println(targetText1)
 	for i := 0; i < rows; i++ {
-		sb2.WriteString(targetText)
+		if i%2 == 0 {
+			sb2.WriteString(targetText)
+		} else {
+			sb2.WriteString(strings.Repeat(" ", 8))
+			sb2.WriteString(targetText1)
+		}
 		if i < rows-1 {
 			sb2.WriteString(lineSpace)
 		}
 	}
-	fmt.Println(sb2.String())
+	//fmt.Println(sb2.String())
 	wmList := make([]*model.Watermark, 0)
 	wm, tmpErr = api.TextWatermark(sb2.String(), desc, onTop, update, types.POINTS)
 	if tmpErr != nil {