Add split-output to cli
This commit is contained in:
@@ -6,7 +6,6 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/go-pdf/fpdf"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
const margin = 20
|
||||
@@ -44,17 +43,58 @@ type CoverSettings struct {
|
||||
}
|
||||
|
||||
func GenerateInvoice(settings CoverSettings) (*fpdf.Fpdf, error) {
|
||||
pdf, err := GenerateFrontCover(settings)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
pdf.AddPage()
|
||||
drawCustomerName(pdf, settings)
|
||||
|
||||
if pdf.Err() {
|
||||
return nil, pdf.Error()
|
||||
}
|
||||
|
||||
return pdf, nil
|
||||
}
|
||||
|
||||
func GenerateFrontCover(settings CoverSettings) (*fpdf.Fpdf, error) {
|
||||
pdf, err := generateBaseInvoice(settings)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
drawInvoiceNumber(pdf, settings)
|
||||
drawMiwebbLink(pdf)
|
||||
|
||||
if pdf.Err() {
|
||||
return nil, pdf.Error()
|
||||
}
|
||||
|
||||
return pdf, nil
|
||||
}
|
||||
|
||||
func GenerateBackCover(settings CoverSettings) (*fpdf.Fpdf, error) {
|
||||
pdf, err := generateBaseInvoice(settings)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return pdf, err
|
||||
}
|
||||
|
||||
func generateBaseInvoice(settings CoverSettings) (*fpdf.Fpdf, error) {
|
||||
pdf := fpdf.New("P", scaleUnit, "A4", "")
|
||||
|
||||
if err := addEmbeddedFont(pdf, "Mark Medium", "", "Mark-Medium"); err != nil {
|
||||
log.Fatal().Err(err).Msg("Error adding font")
|
||||
return nil, fmt.Errorf("error adding font: %w", err)
|
||||
}
|
||||
if err := addEmbeddedFont(pdf, "Mark Light", "", "Mark-Light"); err != nil {
|
||||
log.Fatal().Err(err).Msg("Error adding font")
|
||||
return nil, fmt.Errorf("error adding font: %w", err)
|
||||
}
|
||||
miwebbLogo, err := addEmbeddedLogo(pdf, miwebbLogoName, miwebbLogoPath)
|
||||
miwebbLogo, err := addEmbeddedLogo(pdf, miwebbLogoName, "miwebb.white.png")
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("Error adding logo")
|
||||
return nil, fmt.Errorf("error adding logo: %w", err)
|
||||
}
|
||||
|
||||
pdf.SetMargins(margin, margin, margin)
|
||||
@@ -67,21 +107,16 @@ func GenerateInvoice(settings CoverSettings) (*fpdf.Fpdf, error) {
|
||||
pdf.Image(miwebbLogoName, margin-5, margin, miwebbLogo.Width()*logoScale, miwebbLogo.Height()*logoScale, false, "", 0, "")
|
||||
})
|
||||
|
||||
pdf.AddPage()
|
||||
|
||||
drawCustomerName(pdf, settings)
|
||||
drawInvoiceNumber(pdf, settings)
|
||||
drawMiwebbLink(pdf)
|
||||
|
||||
pdf.AddPage()
|
||||
drawCustomerName(pdf, settings)
|
||||
|
||||
if pdf.Err() {
|
||||
return nil, pdf.Error()
|
||||
return nil, fmt.Errorf("error generating invoice: %w", pdf.Error())
|
||||
}
|
||||
|
||||
return pdf, nil
|
||||
}
|
||||
|
||||
func drawInvoiceNumber(pdf *fpdf.Fpdf, settings CoverSettings) {
|
||||
_, pageHeight := pdf.GetPageSize()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user