diff --git a/lib/pdf-datasheet.tsx b/lib/pdf-datasheet.tsx index bbf82378..6fd4d80e 100644 --- a/lib/pdf-datasheet.tsx +++ b/lib/pdf-datasheet.tsx @@ -197,6 +197,7 @@ interface ProductData { applicationHtml?: string; images?: string[]; featuredImage?: string | null; + logoDataUrl?: string | null; categories?: Array<{ name: string }>; attributes?: Array<{ name: string; options: string[] }>; } @@ -204,7 +205,7 @@ interface ProductData { export interface PDFDatasheetProps { product: ProductData; locale: 'en' | 'de'; - logoUrl?: string; + logoDataUrl?: string | null; technicalItems?: KeyValueItem[]; voltageTables?: DatasheetVoltageTable[]; legendItems?: KeyValueItem[]; @@ -485,8 +486,15 @@ export const PDFDatasheet: React.FC = ({ - - KLZ + + {product.logoDataUrl || (product as any).logoDataUrl ? ( + + ) : ( + KLZ + )} {labels.productDatasheet} @@ -586,7 +594,16 @@ export const PDFDatasheet: React.FC = ({ - KLZ CABLES + + {product.logoDataUrl || (product as any).logoDataUrl ? ( + + ) : ( + KLZ CABLES + )} + {new Date().toLocaleDateString(locale === 'en' ? 'en-US' : 'de-DE', { year: 'numeric', diff --git a/public/datasheets/high-voltage/n2x-f-k2y-de.pdf b/public/datasheets/high-voltage/n2x-f-k2y-de.pdf index 4997b1b4..d437eedc 100644 Binary files a/public/datasheets/high-voltage/n2x-f-k2y-de.pdf and b/public/datasheets/high-voltage/n2x-f-k2y-de.pdf differ diff --git a/public/datasheets/high-voltage/n2x-f-k2y-en.pdf b/public/datasheets/high-voltage/n2x-f-k2y-en.pdf index 2fedfabb..045ec92d 100644 Binary files a/public/datasheets/high-voltage/n2x-f-k2y-en.pdf and b/public/datasheets/high-voltage/n2x-f-k2y-en.pdf differ diff --git a/public/datasheets/high-voltage/n2x-f-kld2y-de.pdf b/public/datasheets/high-voltage/n2x-f-kld2y-de.pdf index d02f4038..ccc15b44 100644 Binary files a/public/datasheets/high-voltage/n2x-f-kld2y-de.pdf and b/public/datasheets/high-voltage/n2x-f-kld2y-de.pdf differ diff --git a/public/datasheets/high-voltage/n2x-f-kld2y-en.pdf b/public/datasheets/high-voltage/n2x-f-kld2y-en.pdf index 19feb791..ad7dff7a 100644 Binary files a/public/datasheets/high-voltage/n2x-f-kld2y-en.pdf and b/public/datasheets/high-voltage/n2x-f-kld2y-en.pdf differ diff --git a/public/datasheets/high-voltage/n2xs-fl-2y-de.pdf b/public/datasheets/high-voltage/n2xs-fl-2y-de.pdf index 15f1d2e6..6fa6a511 100644 Binary files a/public/datasheets/high-voltage/n2xs-fl-2y-de.pdf and b/public/datasheets/high-voltage/n2xs-fl-2y-de.pdf differ diff --git a/public/datasheets/high-voltage/n2xs-fl-2y-en.pdf b/public/datasheets/high-voltage/n2xs-fl-2y-en.pdf index 215b1c79..ac096c2e 100644 Binary files a/public/datasheets/high-voltage/n2xs-fl-2y-en.pdf and b/public/datasheets/high-voltage/n2xs-fl-2y-en.pdf differ diff --git a/public/datasheets/high-voltage/n2xsfl2y-hv-de.pdf b/public/datasheets/high-voltage/n2xsfl2y-hv-de.pdf new file mode 100644 index 00000000..d1e9bce8 Binary files /dev/null and b/public/datasheets/high-voltage/n2xsfl2y-hv-de.pdf differ diff --git a/public/datasheets/high-voltage/n2xsfl2y-hv-en.pdf b/public/datasheets/high-voltage/n2xsfl2y-hv-en.pdf new file mode 100644 index 00000000..a76cb8d4 Binary files /dev/null and b/public/datasheets/high-voltage/n2xsfl2y-hv-en.pdf differ diff --git a/public/datasheets/high-voltage/na2x-f-k2y-de.pdf b/public/datasheets/high-voltage/na2x-f-k2y-de.pdf index 82d3889e..ac70d86b 100644 Binary files a/public/datasheets/high-voltage/na2x-f-k2y-de.pdf and b/public/datasheets/high-voltage/na2x-f-k2y-de.pdf differ diff --git a/public/datasheets/high-voltage/na2x-f-k2y-en.pdf b/public/datasheets/high-voltage/na2x-f-k2y-en.pdf index 4a89ee3e..62add27a 100644 Binary files a/public/datasheets/high-voltage/na2x-f-k2y-en.pdf and b/public/datasheets/high-voltage/na2x-f-k2y-en.pdf differ diff --git a/public/datasheets/high-voltage/na2x-f-kld2y-de.pdf b/public/datasheets/high-voltage/na2x-f-kld2y-de.pdf index e9843d2e..c1588ea0 100644 Binary files a/public/datasheets/high-voltage/na2x-f-kld2y-de.pdf and b/public/datasheets/high-voltage/na2x-f-kld2y-de.pdf differ diff --git a/public/datasheets/high-voltage/na2x-f-kld2y-en.pdf b/public/datasheets/high-voltage/na2x-f-kld2y-en.pdf index d4a3521c..f0593956 100644 Binary files a/public/datasheets/high-voltage/na2x-f-kld2y-en.pdf and b/public/datasheets/high-voltage/na2x-f-kld2y-en.pdf differ diff --git a/public/datasheets/high-voltage/na2xs-fl-2y-de.pdf b/public/datasheets/high-voltage/na2xs-fl-2y-de.pdf index dc04651d..9d403ee8 100644 Binary files a/public/datasheets/high-voltage/na2xs-fl-2y-de.pdf and b/public/datasheets/high-voltage/na2xs-fl-2y-de.pdf differ diff --git a/public/datasheets/high-voltage/na2xs-fl-2y-en.pdf b/public/datasheets/high-voltage/na2xs-fl-2y-en.pdf index 4aeabb4c..322bfb0a 100644 Binary files a/public/datasheets/high-voltage/na2xs-fl-2y-en.pdf and b/public/datasheets/high-voltage/na2xs-fl-2y-en.pdf differ diff --git a/public/datasheets/high-voltage/na2xsfl2y-hv-de.pdf b/public/datasheets/high-voltage/na2xsfl2y-hv-de.pdf new file mode 100644 index 00000000..f80ecbad Binary files /dev/null and b/public/datasheets/high-voltage/na2xsfl2y-hv-de.pdf differ diff --git a/public/datasheets/high-voltage/na2xsfl2y-hv-en.pdf b/public/datasheets/high-voltage/na2xsfl2y-hv-en.pdf new file mode 100644 index 00000000..413808d6 Binary files /dev/null and b/public/datasheets/high-voltage/na2xsfl2y-hv-en.pdf differ diff --git a/public/datasheets/low-voltage/n2x2y-de.pdf b/public/datasheets/low-voltage/n2x2y-de.pdf index 59bf1b8f..21472bac 100644 Binary files a/public/datasheets/low-voltage/n2x2y-de.pdf and b/public/datasheets/low-voltage/n2x2y-de.pdf differ diff --git a/public/datasheets/low-voltage/n2x2y-en.pdf b/public/datasheets/low-voltage/n2x2y-en.pdf index 8b261bcc..76246d6f 100644 Binary files a/public/datasheets/low-voltage/n2x2y-en.pdf and b/public/datasheets/low-voltage/n2x2y-en.pdf differ diff --git a/public/datasheets/low-voltage/n2xy-de.pdf b/public/datasheets/low-voltage/n2xy-de.pdf index 4cc17545..2240b173 100644 Binary files a/public/datasheets/low-voltage/n2xy-de.pdf and b/public/datasheets/low-voltage/n2xy-de.pdf differ diff --git a/public/datasheets/low-voltage/n2xy-en.pdf b/public/datasheets/low-voltage/n2xy-en.pdf index 12d70b2a..5af0f74b 100644 Binary files a/public/datasheets/low-voltage/n2xy-en.pdf and b/public/datasheets/low-voltage/n2xy-en.pdf differ diff --git a/public/datasheets/low-voltage/na2x2y-de.pdf b/public/datasheets/low-voltage/na2x2y-de.pdf index 0573014e..cda08ef3 100644 Binary files a/public/datasheets/low-voltage/na2x2y-de.pdf and b/public/datasheets/low-voltage/na2x2y-de.pdf differ diff --git a/public/datasheets/low-voltage/na2x2y-en.pdf b/public/datasheets/low-voltage/na2x2y-en.pdf index 90a681d6..885677a3 100644 Binary files a/public/datasheets/low-voltage/na2x2y-en.pdf and b/public/datasheets/low-voltage/na2x2y-en.pdf differ diff --git a/public/datasheets/low-voltage/na2xy-de.pdf b/public/datasheets/low-voltage/na2xy-de.pdf index 82a98b71..605fb447 100644 Binary files a/public/datasheets/low-voltage/na2xy-de.pdf and b/public/datasheets/low-voltage/na2xy-de.pdf differ diff --git a/public/datasheets/low-voltage/na2xy-en.pdf b/public/datasheets/low-voltage/na2xy-en.pdf index 952abc27..3454adf6 100644 Binary files a/public/datasheets/low-voltage/na2xy-en.pdf and b/public/datasheets/low-voltage/na2xy-en.pdf differ diff --git a/public/datasheets/low-voltage/nay2y-de.pdf b/public/datasheets/low-voltage/nay2y-de.pdf index 6a4132a2..9c88ccd2 100644 Binary files a/public/datasheets/low-voltage/nay2y-de.pdf and b/public/datasheets/low-voltage/nay2y-de.pdf differ diff --git a/public/datasheets/low-voltage/nay2y-en.pdf b/public/datasheets/low-voltage/nay2y-en.pdf index f1a1bd35..e9d323c0 100644 Binary files a/public/datasheets/low-voltage/nay2y-en.pdf and b/public/datasheets/low-voltage/nay2y-en.pdf differ diff --git a/public/datasheets/low-voltage/naycwy-de.pdf b/public/datasheets/low-voltage/naycwy-de.pdf index 18414333..cf433ee9 100644 Binary files a/public/datasheets/low-voltage/naycwy-de.pdf and b/public/datasheets/low-voltage/naycwy-de.pdf differ diff --git a/public/datasheets/low-voltage/naycwy-en.pdf b/public/datasheets/low-voltage/naycwy-en.pdf index f62df5a5..446482e3 100644 Binary files a/public/datasheets/low-voltage/naycwy-en.pdf and b/public/datasheets/low-voltage/naycwy-en.pdf differ diff --git a/public/datasheets/low-voltage/nayy-de.pdf b/public/datasheets/low-voltage/nayy-de.pdf index a9fe30b8..2d105a36 100644 Binary files a/public/datasheets/low-voltage/nayy-de.pdf and b/public/datasheets/low-voltage/nayy-de.pdf differ diff --git a/public/datasheets/low-voltage/nayy-en.pdf b/public/datasheets/low-voltage/nayy-en.pdf index 291de635..86b61e3b 100644 Binary files a/public/datasheets/low-voltage/nayy-en.pdf and b/public/datasheets/low-voltage/nayy-en.pdf differ diff --git a/public/datasheets/low-voltage/ny2y-de.pdf b/public/datasheets/low-voltage/ny2y-de.pdf index d819db55..77acaea9 100644 Binary files a/public/datasheets/low-voltage/ny2y-de.pdf and b/public/datasheets/low-voltage/ny2y-de.pdf differ diff --git a/public/datasheets/low-voltage/ny2y-en.pdf b/public/datasheets/low-voltage/ny2y-en.pdf index 6aa30bf1..4d5146c4 100644 Binary files a/public/datasheets/low-voltage/ny2y-en.pdf and b/public/datasheets/low-voltage/ny2y-en.pdf differ diff --git a/public/datasheets/low-voltage/nycwy-de.pdf b/public/datasheets/low-voltage/nycwy-de.pdf index 1c1da75c..00d56961 100644 Binary files a/public/datasheets/low-voltage/nycwy-de.pdf and b/public/datasheets/low-voltage/nycwy-de.pdf differ diff --git a/public/datasheets/low-voltage/nycwy-en.pdf b/public/datasheets/low-voltage/nycwy-en.pdf index d5ea863a..56d51310 100644 Binary files a/public/datasheets/low-voltage/nycwy-en.pdf and b/public/datasheets/low-voltage/nycwy-en.pdf differ diff --git a/public/datasheets/low-voltage/nyy-de.pdf b/public/datasheets/low-voltage/nyy-de.pdf index 98793693..2e439715 100644 Binary files a/public/datasheets/low-voltage/nyy-de.pdf and b/public/datasheets/low-voltage/nyy-de.pdf differ diff --git a/public/datasheets/low-voltage/nyy-en.pdf b/public/datasheets/low-voltage/nyy-en.pdf index b06126de..5e83e7c4 100644 Binary files a/public/datasheets/low-voltage/nyy-en.pdf and b/public/datasheets/low-voltage/nyy-en.pdf differ diff --git a/public/datasheets/medium-voltage/n2xs-f-2y-de.pdf b/public/datasheets/medium-voltage/n2xs-f-2y-de.pdf index b8a9305f..0e24e1c6 100644 Binary files a/public/datasheets/medium-voltage/n2xs-f-2y-de.pdf and b/public/datasheets/medium-voltage/n2xs-f-2y-de.pdf differ diff --git a/public/datasheets/medium-voltage/n2xs-f-2y-en.pdf b/public/datasheets/medium-voltage/n2xs-f-2y-en.pdf index be6cc551..5c023635 100644 Binary files a/public/datasheets/medium-voltage/n2xs-f-2y-en.pdf and b/public/datasheets/medium-voltage/n2xs-f-2y-en.pdf differ diff --git a/public/datasheets/medium-voltage/n2xs2y-de.pdf b/public/datasheets/medium-voltage/n2xs2y-de.pdf index 62693f48..dddc6ae3 100644 Binary files a/public/datasheets/medium-voltage/n2xs2y-de.pdf and b/public/datasheets/medium-voltage/n2xs2y-de.pdf differ diff --git a/public/datasheets/medium-voltage/n2xs2y-en.pdf b/public/datasheets/medium-voltage/n2xs2y-en.pdf index 4a7c4568..ea784598 100644 Binary files a/public/datasheets/medium-voltage/n2xs2y-en.pdf and b/public/datasheets/medium-voltage/n2xs2y-en.pdf differ diff --git a/public/datasheets/medium-voltage/n2xsf2y-de.pdf b/public/datasheets/medium-voltage/n2xsf2y-de.pdf index 21800df7..46b0ca27 100644 Binary files a/public/datasheets/medium-voltage/n2xsf2y-de.pdf and b/public/datasheets/medium-voltage/n2xsf2y-de.pdf differ diff --git a/public/datasheets/medium-voltage/n2xsf2y-en.pdf b/public/datasheets/medium-voltage/n2xsf2y-en.pdf index 7b3498cd..63df9f24 100644 Binary files a/public/datasheets/medium-voltage/n2xsf2y-en.pdf and b/public/datasheets/medium-voltage/n2xsf2y-en.pdf differ diff --git a/public/datasheets/medium-voltage/n2xsy-de.pdf b/public/datasheets/medium-voltage/n2xsy-de.pdf index bed1577e..51fbbaae 100644 Binary files a/public/datasheets/medium-voltage/n2xsy-de.pdf and b/public/datasheets/medium-voltage/n2xsy-de.pdf differ diff --git a/public/datasheets/medium-voltage/n2xsy-en.pdf b/public/datasheets/medium-voltage/n2xsy-en.pdf index efbbae10..cf8c5716 100644 Binary files a/public/datasheets/medium-voltage/n2xsy-en.pdf and b/public/datasheets/medium-voltage/n2xsy-en.pdf differ diff --git a/public/datasheets/medium-voltage/na2xs-f-2y-de.pdf b/public/datasheets/medium-voltage/na2xs-f-2y-de.pdf index e6b6d6c2..fd2dacb7 100644 Binary files a/public/datasheets/medium-voltage/na2xs-f-2y-de.pdf and b/public/datasheets/medium-voltage/na2xs-f-2y-de.pdf differ diff --git a/public/datasheets/medium-voltage/na2xs-f-2y-en.pdf b/public/datasheets/medium-voltage/na2xs-f-2y-en.pdf index be9815d6..780a40b0 100644 Binary files a/public/datasheets/medium-voltage/na2xs-f-2y-en.pdf and b/public/datasheets/medium-voltage/na2xs-f-2y-en.pdf differ diff --git a/public/datasheets/medium-voltage/na2xs2y-de.pdf b/public/datasheets/medium-voltage/na2xs2y-de.pdf index 8ce5668a..b41a398f 100644 Binary files a/public/datasheets/medium-voltage/na2xs2y-de.pdf and b/public/datasheets/medium-voltage/na2xs2y-de.pdf differ diff --git a/public/datasheets/medium-voltage/na2xs2y-en.pdf b/public/datasheets/medium-voltage/na2xs2y-en.pdf index 149d3da7..43002371 100644 Binary files a/public/datasheets/medium-voltage/na2xs2y-en.pdf and b/public/datasheets/medium-voltage/na2xs2y-en.pdf differ diff --git a/public/datasheets/medium-voltage/na2xsf2y-de.pdf b/public/datasheets/medium-voltage/na2xsf2y-de.pdf index 29b303c9..9f08d3e7 100644 Binary files a/public/datasheets/medium-voltage/na2xsf2y-de.pdf and b/public/datasheets/medium-voltage/na2xsf2y-de.pdf differ diff --git a/public/datasheets/medium-voltage/na2xsf2y-en.pdf b/public/datasheets/medium-voltage/na2xsf2y-en.pdf index 29ff6f21..df546384 100644 Binary files a/public/datasheets/medium-voltage/na2xsf2y-en.pdf and b/public/datasheets/medium-voltage/na2xsf2y-en.pdf differ diff --git a/public/datasheets/medium-voltage/na2xsy-de.pdf b/public/datasheets/medium-voltage/na2xsy-de.pdf index 77bc01ea..512fbf7c 100644 Binary files a/public/datasheets/medium-voltage/na2xsy-de.pdf and b/public/datasheets/medium-voltage/na2xsy-de.pdf differ diff --git a/public/datasheets/medium-voltage/na2xsy-en.pdf b/public/datasheets/medium-voltage/na2xsy-en.pdf index 08139d82..f7e226e9 100644 Binary files a/public/datasheets/medium-voltage/na2xsy-en.pdf and b/public/datasheets/medium-voltage/na2xsy-en.pdf differ diff --git a/public/datasheets/solar/h1z2z2-k-de.pdf b/public/datasheets/solar/h1z2z2-k-de.pdf index 00108503..25522bee 100644 Binary files a/public/datasheets/solar/h1z2z2-k-de.pdf and b/public/datasheets/solar/h1z2z2-k-de.pdf differ diff --git a/public/datasheets/solar/h1z2z2-k-en.pdf b/public/datasheets/solar/h1z2z2-k-en.pdf index 2ebcac38..0753624c 100644 Binary files a/public/datasheets/solar/h1z2z2-k-en.pdf and b/public/datasheets/solar/h1z2z2-k-en.pdf differ diff --git a/scripts/assets-sync.sh b/scripts/assets-sync.sh index fdb30cc8..554b6684 100755 --- a/scripts/assets-sync.sh +++ b/scripts/assets-sync.sh @@ -15,6 +15,7 @@ SOURCE_ENV="${1:-}" # local | testing | staging | prod TARGET_ENV="${2:-}" # testing | staging | prod SSH_HOST="root@alpha.mintel.me" LOCAL_MEDIA_DIR="./public/media" +LOCAL_DATASHEETS_DIR="./public/datasheets" DRY_RUN="" CHECKSUM="" @@ -38,6 +39,16 @@ get_media_path() { esac } +get_datasheets_path() { + case "$1" in + local) echo "$LOCAL_DATASHEETS_DIR" ;; + testing) echo "/home/deploy/sites/testing.klz-cables.com/public/datasheets" ;; + staging) echo "/home/deploy/sites/staging.klz-cables.com/public/datasheets" ;; + prod|production) echo "/home/deploy/sites/klz-cables.com/public/datasheets" ;; + *) echo "❌ Unknown environment: $1"; exit 1 ;; + esac +} + get_app_container() { case "$1" in testing) echo "klz-testing-klz-app-1" ;; @@ -52,35 +63,39 @@ TGT_PATH=$(get_media_path "$TARGET_ENV") TGT_CONTAINER=$(get_app_container "$TARGET_ENV") echo "🚀 Syncing assets: $SOURCE_ENV → $TARGET_ENV" -echo "📂 Source: $SRC_PATH" -echo "📂 Target: $TGT_PATH" - -# ── Execution ────────────────────────────────────────────────────────────── - -if [[ ! -d "$SRC_PATH" ]] && [[ "$SOURCE_ENV" == "local" ]]; then - echo "❌ Source directory does not exist: $SRC_PATH" - exit 1 -fi +# ── Media Sync ───────────────────────────────────────────────────────────── +echo "🖼️ Syncing Media..." if [[ "$SOURCE_ENV" == "local" ]]; then - # Local → Remote - echo "📡 Running rsync..." rsync -avzi $CHECKSUM --delete --progress $DRY_RUN "$SRC_PATH/" "$SSH_HOST:$TGT_PATH/" elif [[ "$TARGET_ENV" == "local" ]]; then - # Remote → Local mkdir -p "$LOCAL_MEDIA_DIR" - echo "📡 Running rsync..." rsync -avzi $CHECKSUM --delete --progress $DRY_RUN "$SSH_HOST:$SRC_PATH/" "$TGT_PATH/" else - # Remote → Remote (e.g., testing → staging) - echo "📡 Running remote rsync..." ssh "$SSH_HOST" "rsync -avzi $CHECKSUM --delete --progress $DRY_RUN $SRC_PATH/ $TGT_PATH/" fi +# ── Datasheets Sync ──────────────────────────────────────────────────────── +echo "📄 Syncing Datasheets..." +SRC_DS_PATH=$(get_datasheets_path "$SOURCE_ENV") +TGT_DS_PATH=$(get_datasheets_path "$TARGET_ENV") + +if [[ "$SOURCE_ENV" == "local" ]]; then + ssh "$SSH_HOST" "mkdir -p $TGT_DS_PATH" + rsync -avzi $CHECKSUM --delete --progress $DRY_RUN "$SRC_DS_PATH/" "$SSH_HOST:$TGT_DS_PATH/" +elif [[ "$TARGET_ENV" == "local" ]]; then + mkdir -p "$LOCAL_DATASHEETS_DIR" + rsync -avzi $CHECKSUM --delete --progress $DRY_RUN "$SSH_HOST:$SRC_DS_PATH/" "$TGT_DS_PATH/" +else + ssh "$SSH_HOST" "mkdir -p $TGT_DS_PATH && rsync -avzi $CHECKSUM --delete --progress $DRY_RUN $SRC_DS_PATH/ $TGT_DS_PATH/" +fi + # Fix ownership on remote target if it's not local if [[ "$TARGET_ENV" != "local" && -z "$DRY_RUN" ]]; then echo "🔑 Fixing media file permissions on $TARGET_ENV..." ssh "$SSH_HOST" "docker exec -u 0 $TGT_CONTAINER chown -R 1001:65533 /app/public/media/ 2>/dev/null || true" + echo "🔑 Fixing datasheet permissions..." + ssh "$SSH_HOST" "chown -R 1001:1001 $TGT_DS_PATH 2>/dev/null || true" fi echo "✅ Asset sync complete!" diff --git a/scripts/generate-pdf-datasheets.tsx b/scripts/generate-pdf-datasheets.tsx index 192ac279..2de204ff 100644 --- a/scripts/generate-pdf-datasheets.tsx +++ b/scripts/generate-pdf-datasheets.tsx @@ -268,7 +268,10 @@ async function processChunk( } // Load assets as Data URLs for React-PDF - const heroDataUrl = await loadImageAsPngDataUrl(model.product.heroSrc); + const [heroDataUrl, logoDataUrl] = await Promise.all([ + loadImageAsPngDataUrl(model.product.heroSrc), + loadImageAsPngDataUrl('/logo-black.svg'), + ]); const fileName = generateFileName(product, locale); const voltageType = (product as any).voltageType || 'other'; @@ -281,14 +284,18 @@ async function processChunk( // Render using the unified component const element = ( ); diff --git a/scripts/pdf/model/build-datasheet-model.ts b/scripts/pdf/model/build-datasheet-model.ts index 12822912..7fdfa430 100644 --- a/scripts/pdf/model/build-datasheet-model.ts +++ b/scripts/pdf/model/build-datasheet-model.ts @@ -147,7 +147,10 @@ function compactCellForDenseTable( function resolveMediaToLocalPath(urlOrPath: string | null | undefined): string | null { if (!urlOrPath) return null; - if (urlOrPath.startsWith('/')) return urlOrPath; + if (urlOrPath.startsWith('/')) { + // Handle Payload API URL prefix: /api/media/file/filename.ext -> /media/filename.ext + return urlOrPath.replace(/^\/api\/media\/file\//, '/media/'); + } if (/^media\//i.test(urlOrPath)) return `/${urlOrPath}`; const mapped = ASSET_MAP[urlOrPath]; if (mapped) {