diff --git a/core/config.go b/core/config.go index d28eebc..3faaf05 100644 --- a/core/config.go +++ b/core/config.go @@ -104,9 +104,5 @@ func init() { // Register create self pdf config func Register(size string, config *Config) { - if _, ok := defaultConfigs[size]; ok { - panic("config size has exist") - } - defaultConfigs[size] = config } diff --git a/core/report.go b/core/report.go index 49947b0..fe6f660 100644 --- a/core/report.go +++ b/core/report.go @@ -314,7 +314,7 @@ func (report *Report) SetMargin(dx, dy float64) { report.SetXY(x+dx, y+dy) } -// 设置页面的尺寸, unit: mm pt in size: A4 LTR, 目前支持常用的两种方式 +// 设置页面的尺寸, unit: mm pt in size: A3 A4 LTR, 目前支持常用的两种方式 func (report *Report) SetPage(size string, orientation string) { unit := "pt" config, ok := defaultConfigs[size] @@ -323,6 +323,17 @@ func (report *Report) SetPage(size string, orientation string) { } switch size { + case "A3": + switch orientation { + case "P": + report.addAtomicCell("P|" + unit + "|A3|P") + report.pageWidth = config.width + report.pageHeight = config.height + case "L": + report.addAtomicCell("P|" + unit + "|A3|L") + report.pageWidth = config.height + report.pageHeight = config.width + } case "A4": switch orientation { case "P": diff --git a/go.mod b/go.mod index ad4fd77..f81d0c4 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,8 @@ module github.com/zhyocean/gopdf go 1.13 require ( - github.com/dlclark/regexp2 v1.2.0 - github.com/signintech/gopdf v0.9.16 - golang.org/x/image v0.0.0-20200801110659-972c09e46d76 + github.com/dlclark/regexp2 v1.7.0 + github.com/pkg/errors v0.9.1 // indirect + github.com/signintech/gopdf v0.15.0 + golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 ) diff --git a/go.sum b/go.sum index bd2b204..08fa2ea 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,26 @@ github.com/dlclark/regexp2 v1.2.0 h1:8sAhBGEM0dRWogWqWyQeIJnxjWO6oIjl8FKqREDsGfk= github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo= +github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/phpdave11/gofpdi v1.0.8 h1:9HRg0Z0qDfWeMU7ska+YNQ13RHxTxqP5KTg/dBl4o7c= github.com/phpdave11/gofpdi v1.0.8/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/phpdave11/gofpdi v1.0.11/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/phpdave11/gofpdi v1.0.13 h1:o61duiW8M9sMlkVXWlvP92sZJtGKENvW3VExs6dZukQ= +github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/signintech/gopdf v0.9.8 h1:tafWEjYhorfHMl9JT9II43fvf5XhUwrjUKVNwQqqyJQ= github.com/signintech/gopdf v0.9.8/go.mod h1:MrARAC6LaOgbnV6vrC5885VuoWCXazhAqx8L8zmjYy4= github.com/signintech/gopdf v0.9.16 h1:QmOLj9mk1AWE8BXgTyRzWjJFVNjH95iW2o6WwvIPbdM= github.com/signintech/gopdf v0.9.16/go.mod h1:YSAgnGaC2bLUlciG/pbzpnzFg9qfhqdITEA9lKEHiI0= +github.com/signintech/gopdf v0.15.0 h1:oZ3dJYUjGvZ/nOaXRFRZBbHVLH5IvjAliHFZVMiy7ZM= +github.com/signintech/gopdf v0.15.0/go.mod h1:a+E8HlIuBwghPyoo7UaoB5UaL7zklDzmYVIAHoW/Rlw= golang.org/x/image v0.0.0-20200801110659-972c09e46d76 h1:U7GPaoQyQmX+CBRWXKrvRzWTbd+slqeSh8uARsIyhAw= golang.org/x/image v0.0.0-20200801110659-972c09e46d76/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 h1:Lj6HJGCSn5AjxRAH2+r35Mir4icalbqku+CLUtjnvXY= +golang.org/x/image v0.0.0-20220902085622-e7cb96979f69/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=