mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-24 02:20:13 +01:00
✨ Support adding the watermark on export PDF https://github.com/siyuan-note/siyuan/issues/9961
This commit is contained in:
parent
efac191a82
commit
2ff2f1972e
3 changed files with 46 additions and 31 deletions
|
|
@ -852,35 +852,6 @@ func processPDFWatermark(pdfCtx *pdfcpu.Context, watermark bool) {
|
|||
return
|
||||
}
|
||||
|
||||
desc := Conf.Export.PDFWatermarkDesc
|
||||
descParts := strings.Split(desc, ",")
|
||||
m := map[string]string{}
|
||||
for _, descPart := range descParts {
|
||||
kv := strings.Split(descPart, ":")
|
||||
if 2 != len(kv) {
|
||||
continue
|
||||
}
|
||||
m[kv[0]] = kv[1]
|
||||
}
|
||||
if "" == m["fontname"] {
|
||||
m["fontname"] = "LXGWWenKaiLite-Regular"
|
||||
}
|
||||
descBuilder := bytes.Buffer{}
|
||||
for k, v := range m {
|
||||
descBuilder.WriteString(k)
|
||||
descBuilder.WriteString(":")
|
||||
descBuilder.WriteString(v)
|
||||
descBuilder.WriteString(",")
|
||||
}
|
||||
desc = descBuilder.String()
|
||||
desc = desc[:len(desc)-1]
|
||||
|
||||
fontPath := filepath.Join(util.AppearancePath, "fonts", "LxgwWenKai-Lite-1.311", "LXGWWenKaiLite-Regular.ttf")
|
||||
err := api.InstallFonts([]string{fontPath})
|
||||
if nil != err {
|
||||
logging.LogErrorf("install font [%s] failed: %s", fontPath, err)
|
||||
}
|
||||
|
||||
mode := "text"
|
||||
if gulu.File.IsExist(str) {
|
||||
if ".pdf" == strings.ToLower(filepath.Ext(str)) {
|
||||
|
|
@ -890,9 +861,40 @@ func processPDFWatermark(pdfCtx *pdfcpu.Context, watermark bool) {
|
|||
}
|
||||
}
|
||||
|
||||
desc := Conf.Export.PDFWatermarkDesc
|
||||
if "text" == mode && util.ContainsCJK(str) {
|
||||
// 中日韩文本水印需要安装字体文件
|
||||
descParts := strings.Split(desc, ",")
|
||||
m := map[string]string{}
|
||||
for _, descPart := range descParts {
|
||||
kv := strings.Split(descPart, ":")
|
||||
if 2 != len(kv) {
|
||||
continue
|
||||
}
|
||||
m[kv[0]] = kv[1]
|
||||
}
|
||||
m["fontname"] = "LXGWWenKaiLite-Regular"
|
||||
descBuilder := bytes.Buffer{}
|
||||
for k, v := range m {
|
||||
descBuilder.WriteString(k)
|
||||
descBuilder.WriteString(":")
|
||||
descBuilder.WriteString(v)
|
||||
descBuilder.WriteString(",")
|
||||
}
|
||||
desc = descBuilder.String()
|
||||
desc = desc[:len(desc)-1]
|
||||
|
||||
fontPath := filepath.Join(util.AppearancePath, "fonts", "LxgwWenKai-Lite-1.311", "LXGWWenKaiLite-Regular.ttf")
|
||||
err := api.InstallFonts([]string{fontPath})
|
||||
if nil != err {
|
||||
logging.LogErrorf("install font [%s] failed: %s", fontPath, err)
|
||||
}
|
||||
}
|
||||
|
||||
logging.LogInfof("add PDF watermark [mode=%s, str=%s, desc=%s]", mode, str, desc)
|
||||
|
||||
var wm *pdfcpu.Watermark
|
||||
var err error
|
||||
switch mode {
|
||||
case "text":
|
||||
wm, err = pdfcpu.ParseTextWatermarkDetails(str, desc, false, pdfcpu.POINTS)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue