diff --git a/server/collection/internal/handler/routes.go b/server/collection/internal/handler/routes.go index ac4eade4..ca29fb08 100644 --- a/server/collection/internal/handler/routes.go +++ b/server/collection/internal/handler/routes.go @@ -32,6 +32,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { Path: "/api/collection/test_ai", Handler: TestAiHandler(serverCtx), }, + { + Method: http.MethodPost, + Path: "/api/collection/test_pdf", + Handler: TestPdfHandler(serverCtx), + }, }, ) } diff --git a/server/collection/internal/types/types.go b/server/collection/internal/types/types.go index f3707230..c6268e1d 100644 --- a/server/collection/internal/types/types.go +++ b/server/collection/internal/types/types.go @@ -44,6 +44,11 @@ type TestAiReq struct { Num int `form:"num"` } +type TestPdfReq struct { + Content string `json:"content"` + Type string `json:"type"` +} + type Request struct { } diff --git a/server_api/collection.api b/server_api/collection.api index 866a8d1a..31253735 100644 --- a/server_api/collection.api +++ b/server_api/collection.api @@ -18,9 +18,12 @@ service collection { //获取收藏列表 @handler GetCollectProductListHandler get /api/collection/get_collect_product_list(GetCollectProductListReq) returns (response); - //测试 + //测试算法合图并发 @handler TestAiHandler get /api/collection/test_ai(TestAiReq) returns (response); + //测试pdf + @handler TestPdfHandler + post /api/collection/test_pdf(TestPdfReq) returns (response); } //收藏产品 @@ -56,7 +59,12 @@ type GetCollectProductListRspItem { IsShelf int64 `json:"is_shelf"` IsDeleted int64 `json:"is_deleted"` } -//测试 +//测试算法 type TestAiReq { Num int `form:"num"` +} +//测试pdf +type TestPdfReq { + Content string `form:"content"` + Type string `form:"type"` } \ No newline at end of file diff --git a/utils/pdf/html_to_pdf.go b/utils/pdf/html_to_pdf.go index c81f9e10..2af6de15 100644 --- a/utils/pdf/html_to_pdf.go +++ b/utils/pdf/html_to_pdf.go @@ -2,25 +2,27 @@ package pdf import ( "encoding/base64" + "errors" "github.com/SebastiaanKlippert/go-wkhtmltopdf" "strings" ) /* html转 Pdf -dataType = 1 为网页url dataType = 2为网页内容 outFile为空则不保存(使用该方法需要安装工具 sudo apt-get install wkhtmltopdf) */ -func HtmlToPdfBase64(content string, dataType int, outFile ...string) (string, error) { +func HtmlToPdfBase64(content string, dataType string, outFile ...string) (string, error) { pdfg, err := wkhtmltopdf.NewPDFGenerator() if err != nil { return "", err } switch dataType { - case 1: //网页地址 + case "url": //网页地址 pdfg.AddPage(wkhtmltopdf.NewPage(content)) - case 2: //网页内容 + case "html": //网页内容 pdfg.AddPage(wkhtmltopdf.NewPageReader(strings.NewReader(content))) + default: + return "", errors.New("invalid type") } //模式 pdfg.Orientation.Set(wkhtmltopdf.OrientationPortrait)