diff --git a/frontend/src/core/components/tools/bookletImposition/BookletImpositionSettings.tsx b/frontend/src/core/components/tools/bookletImposition/BookletImpositionSettings.tsx
index d8a79cba7..d9c668229 100644
--- a/frontend/src/core/components/tools/bookletImposition/BookletImpositionSettings.tsx
+++ b/frontend/src/core/components/tools/bookletImposition/BookletImpositionSettings.tsx
@@ -1,6 +1,6 @@
import { useState } from "react";
import { useTranslation } from "react-i18next";
-import { Stack, Text, Divider, Collapse, Button, NumberInput } from "@mantine/core";
+import { Stack, Text, Divider, Collapse, Button, NumberInput, Checkbox } from "@mantine/core";
import { BookletImpositionParameters } from "@app/hooks/tools/bookletImposition/useBookletImpositionParameters";
import ButtonSelector from "@app/components/shared/ButtonSelector";
@@ -21,28 +21,27 @@ const BookletImpositionSettings = ({ parameters, onParameterChange, disabled = f
{/* Double Sided */}
-
+ {
+ const isDoubleSided = event.currentTarget.checked;
+ onParameterChange('doubleSided', isDoubleSided);
+ // Reset to BOTH when turning double-sided back on
+ if (isDoubleSided) {
+ onParameterChange('duplexPass', 'BOTH');
+ } else {
+ // Default to FIRST pass when going to manual duplex
+ onParameterChange('duplexPass', 'FIRST');
+ }
+ }}
+ disabled={disabled}
+ label={
+
+ {t('bookletImposition.doubleSided.label', 'Double-sided printing')}
+ {t('bookletImposition.doubleSided.tooltip', 'Creates both front and back sides for proper booklet printing')}
+
+ }
+ />
{/* Manual Duplex Pass Selection - only show when double-sided is OFF */}
{!parameters.doubleSided && (
@@ -67,8 +66,8 @@ const BookletImpositionSettings = ({ parameters, onParameterChange, disabled = f
{parameters.duplexPass === 'FIRST'
- ? t('bookletImposition.duplexPass.firstInstructions', 'Prints front sides -> stack face-down -> run again with 2nd Pass')
- : t('bookletImposition.duplexPass.secondInstructions', 'Load printed stack face-down -> prints back sides')
+ ? t('bookletImposition.duplexPass.firstInstructions', 'Prints front sides → stack face-down → run again with 2nd Pass')
+ : t('bookletImposition.duplexPass.secondInstructions', 'Load printed stack face-down → prints back sides')
}
@@ -84,53 +83,50 @@ const BookletImpositionSettings = ({ parameters, onParameterChange, disabled = f
onClick={() => setAdvancedOpen(!advancedOpen)}
disabled={disabled}
>
- {t('bookletImposition.advanced.toggle', 'Advanced Options')} {advancedOpen ? '^' : 'v'}
+ {t('bookletImposition.advanced.toggle', 'Advanced Options')} {advancedOpen ? '▲' : '▼'}
{/* Right-to-Left Binding */}
-
+ onParameterChange('spineLocation', event.currentTarget.checked ? 'RIGHT' : 'LEFT')}
+ disabled={disabled}
+ label={
+
+ {t('bookletImposition.rtlBinding.label', 'Right-to-left binding')}
+ {t('bookletImposition.rtlBinding.tooltip', 'For Arabic, Hebrew, or other right-to-left languages')}
+
+ {t('bookletImposition.addBorder.label', 'Add borders around pages')}
+ {t('bookletImposition.addBorder.tooltip', 'Adds borders around each page section to help with cutting and alignment')}
+