diff --git a/pkg/modules/pdfengines/routes.go b/pkg/modules/pdfengines/routes.go index dd56201f..5baabed9 100644 --- a/pkg/modules/pdfengines/routes.go +++ b/pkg/modules/pdfengines/routes.go @@ -158,7 +158,12 @@ func convertRoute(engine gotenberg.PdfEngine) api.Route { outputPaths := make([]string, len(inputPaths)) for i, inputPath := range inputPaths { - outputPaths[i] = ctx.GeneratePath(strings.TrimSuffix(filepath.Base(inputPath), filepath.Ext(inputPath)), ".pdf") + if len(outputPaths) > 1 { + // If .zip archive, keep the original filenames. + outputPaths[i] = ctx.GeneratePath(strings.TrimSuffix(filepath.Base(inputPath), filepath.Ext(inputPath)), ".pdf") + } else { + outputPaths[i] = ctx.GeneratePath("", ".pdf") + } err = engine.Convert(ctx, ctx.Log(), pdfFormats, inputPath, outputPaths[i]) if err != nil { diff --git a/pkg/modules/pdfengines/routes_test.go b/pkg/modules/pdfengines/routes_test.go index 3766c0c9..46b5d8b0 100644 --- a/pkg/modules/pdfengines/routes_test.go +++ b/pkg/modules/pdfengines/routes_test.go @@ -418,7 +418,6 @@ func TestConvertHandler(t *testing.T) { expectError: false, expectHttpError: false, expectOutputPathsCount: 1, - expectOutputPaths: []string{"/file.pdf"}, }, { scenario: "success with PDF/A & PDF/UA form fields (many files)",