diff --git a/pkg/modules/chromium/routes_test.go b/pkg/modules/chromium/routes_test.go index d215730d..456ed8d3 100644 --- a/pkg/modules/chromium/routes_test.go +++ b/pkg/modules/chromium/routes_test.go @@ -734,7 +734,7 @@ func TestConvertUrl(t *testing.T) { engine: &gotenberg.PdfEngineMock{ConvertMock: func(ctx context.Context, logger *zap.Logger, formats gotenberg.PdfFormats, inputPath, outputPath string) error { return nil }}, - pdfFormats: gotenberg.PdfFormats{PdfA: gotenberg.PdfA1a}, + pdfFormats: gotenberg.PdfFormats{PdfA: gotenberg.PdfA1b}, options: DefaultOptions(), expectError: false, expectHttpError: false, diff --git a/pkg/modules/libreoffice/api/api.go b/pkg/modules/libreoffice/api/api.go index b5ac69d1..288ef10a 100644 --- a/pkg/modules/libreoffice/api/api.go +++ b/pkg/modules/libreoffice/api/api.go @@ -51,7 +51,7 @@ type Options struct { // Optional. PageRanges string - // PdfFormats allows to convert the resulting PDF to PDF/A-1a, PDF/A-2b, + // PdfFormats allows to convert the resulting PDF to PDF/A-1b, PDF/A-2b, // PDF/A-3b and PDF/UA. // Optional. PdfFormats gotenberg.PdfFormats diff --git a/pkg/modules/libreoffice/api/libreoffice.go b/pkg/modules/libreoffice/api/libreoffice.go index 8ceaa416..28e56aef 100644 --- a/pkg/modules/libreoffice/api/libreoffice.go +++ b/pkg/modules/libreoffice/api/libreoffice.go @@ -275,7 +275,7 @@ func (p *libreOfficeProcess) pdf(ctx context.Context, logger *zap.Logger, inputP switch options.PdfFormats.PdfA { case "": - case gotenberg.PdfA1a: + case gotenberg.PdfA1b: args = append(args, "--export", "SelectPdfVersion=1") case gotenberg.PdfA2b: args = append(args, "--export", "SelectPdfVersion=2") diff --git a/pkg/modules/libreoffice/api/libreoffice_test.go b/pkg/modules/libreoffice/api/libreoffice_test.go index b69ac414..85bf6053 100644 --- a/pkg/modules/libreoffice/api/libreoffice_test.go +++ b/pkg/modules/libreoffice/api/libreoffice_test.go @@ -394,7 +394,7 @@ func TestLibreOfficeProcess_pdf(t *testing.T) { expectError: false, }, { - scenario: "success (PDF/A-1a)", + scenario: "success (PDF/A-1b)", libreOffice: newLibreOfficeProcess( libreOfficeArguments{ binPath: os.Getenv("LIBREOFFICE_BIN_PATH"), @@ -417,7 +417,7 @@ func TestLibreOfficeProcess_pdf(t *testing.T) { return fs }(), - options: Options{PdfFormats: gotenberg.PdfFormats{PdfA: gotenberg.PdfA1a}}, + options: Options{PdfFormats: gotenberg.PdfFormats{PdfA: gotenberg.PdfA1b}}, cancelledCtx: false, start: true, expectError: false, diff --git a/pkg/modules/libreoffice/pdfengine/pdfengine.go b/pkg/modules/libreoffice/pdfengine/pdfengine.go index 9c41d4aa..9029e8f7 100644 --- a/pkg/modules/libreoffice/pdfengine/pdfengine.go +++ b/pkg/modules/libreoffice/pdfengine/pdfengine.go @@ -52,7 +52,7 @@ func (engine *LibreOfficePdfEngine) Merge(ctx context.Context, logger *zap.Logge } // Convert converts the given PDF to a specific PDF format. Currently, only the -// PDF/A-1a, PDF/A-2b, PDF/A-3b and PDF/UA formats are available. If another +// PDF/A-1b, PDF/A-2b, PDF/A-3b and PDF/UA formats are available. If another // PDF format is requested, it returns a [gotenberg.ErrPdfFormatNotSupported] // error. func (engine *LibreOfficePdfEngine) Convert(ctx context.Context, logger *zap.Logger, formats gotenberg.PdfFormats, inputPath, outputPath string) error { diff --git a/pkg/modules/libreoffice/routes_test.go b/pkg/modules/libreoffice/routes_test.go index b3d42b43..751333c0 100644 --- a/pkg/modules/libreoffice/routes_test.go +++ b/pkg/modules/libreoffice/routes_test.go @@ -88,9 +88,12 @@ func TestConvertRoute(t *testing.T) { "document.docx": "/document.docx", }) ctx.SetValues(map[string][]string{ - "pdfFormat": { + "pdfa": { "foo", }, + "nativePdfFormats": { + "false", + }, }) return ctx }(), @@ -120,8 +123,11 @@ func TestConvertRoute(t *testing.T) { "document.docx": "/document.docx", }) ctx.SetValues(map[string][]string{ - "pdfFormat": { - gotenberg.PdfA1a, + "pdfa": { + gotenberg.PdfA1b, + }, + "nativePdfFormats": { + "false", }, }) return ctx @@ -209,7 +215,7 @@ func TestConvertRoute(t *testing.T) { expectOutputPathsCount: 2, }, { - scenario: "success with non-native PDF/A (single file)", + scenario: "success with non-native PDF/A & PDF/UA (single file)", ctx: func() *api.ContextMock { ctx := &api.ContextMock{Context: new(api.Context)} ctx.SetFiles(map[string]string{ @@ -217,7 +223,10 @@ func TestConvertRoute(t *testing.T) { }) ctx.SetValues(map[string][]string{ "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, + }, + "pdfua": { + "true", }, "nativePdfFormats": { "false", @@ -254,13 +263,13 @@ func TestConvertRoute(t *testing.T) { "true", }, "pdfFormat": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, "nativePdfFormat": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, "pdfua": { "true", @@ -375,7 +384,7 @@ func TestConvertRoute(t *testing.T) { "true", }, "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, "nativePdfFormats": { "false", @@ -469,7 +478,7 @@ func TestConvertRoute(t *testing.T) { expectOutputPathsCount: 1, }, { - scenario: "success with non-native PDF/A (merge)", + scenario: "success with non-native PDF/A & PDF/UA (merge)", ctx: func() *api.ContextMock { ctx := &api.ContextMock{Context: new(api.Context)} ctx.SetFiles(map[string]string{ @@ -481,7 +490,54 @@ func TestConvertRoute(t *testing.T) { "true", }, "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, + }, + "pdfua": { + "true", + }, + "nativePdfFormats": { + "false", + }, + }) + return ctx + }(), + libreOffice: &libreofficeapi.ApiMock{ + PdfMock: func(ctx context.Context, logger *zap.Logger, inputPath, outputPath string, options libreofficeapi.Options) error { + return nil + }, + ExtensionsMock: func() []string { + return []string{".docx"} + }, + }, + engine: &gotenberg.PdfEngineMock{ + MergeMock: func(ctx context.Context, logger *zap.Logger, inputPaths []string, outputPath string) error { + return nil + }, + ConvertMock: func(ctx context.Context, logger *zap.Logger, formats gotenberg.PdfFormats, inputPath, outputPath string) error { + return nil + }, + }, + expectError: false, + expectHttpError: false, + expectOutputPathsCount: 1, + }, + { + scenario: "success with non-native PDF/A & PDF/UA (merge)", + ctx: func() *api.ContextMock { + ctx := &api.ContextMock{Context: new(api.Context)} + ctx.SetFiles(map[string]string{ + "document.docx": "/document.docx", + "document2.docx": "/document2.docx", + }) + ctx.SetValues(map[string][]string{ + "merge": { + "true", + }, + "pdfa": { + gotenberg.PdfA1b, + }, + "pdfua": { + "true", }, "nativePdfFormats": { "false", diff --git a/pkg/modules/pdfengines/routes_test.go b/pkg/modules/pdfengines/routes_test.go index cf71be10..076c95d1 100644 --- a/pkg/modules/pdfengines/routes_test.go +++ b/pkg/modules/pdfengines/routes_test.go @@ -99,7 +99,7 @@ func TestMergeHandler(t *testing.T) { }) ctx.SetValues(map[string][]string{ "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, }) return ctx @@ -127,7 +127,7 @@ func TestMergeHandler(t *testing.T) { }) ctx.SetValues(map[string][]string{ "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, }) return ctx @@ -157,7 +157,7 @@ func TestMergeHandler(t *testing.T) { gotenberg.PdfA1a, }, "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, "pdfua": { "true", @@ -259,7 +259,7 @@ func TestConvertHandler(t *testing.T) { }) ctx.SetValues(map[string][]string{ "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, }) return ctx @@ -283,7 +283,7 @@ func TestConvertHandler(t *testing.T) { }) ctx.SetValues(map[string][]string{ "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, }) return ctx @@ -306,7 +306,7 @@ func TestConvertHandler(t *testing.T) { }) ctx.SetValues(map[string][]string{ "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, }) ctx.SetCancelled(true) @@ -333,7 +333,7 @@ func TestConvertHandler(t *testing.T) { gotenberg.PdfA1a, }, "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, "pdfua": { "true", @@ -363,7 +363,7 @@ func TestConvertHandler(t *testing.T) { gotenberg.PdfA1a, }, "pdfa": { - gotenberg.PdfA1a, + gotenberg.PdfA1b, }, "pdfua": { "true",