# 生成 Postman 测试用 plm-pdf-demo.zip(与 manifest.json 中 pdfPath 一致) $ErrorActionPreference = "Stop" $root = Split-Path -Parent $MyInvocation.MyCommand.Path $staging = Join-Path $root "zip-staging" $zipPath = Join-Path $root "plm-pdf-demo.zip" $minimalPdf = @" %PDF-1.4 1 0 obj<<>>endobj trailer<<>> %%EOF "@ if (Test-Path $staging) { Remove-Item $staging -Recurse -Force } New-Item -ItemType Directory -Path (Join-Path $staging "drawings") -Force | Out-Null Set-Content -Path (Join-Path $staging "drawings\part-a.pdf") -Value $minimalPdf -Encoding ASCII -NoNewline Set-Content -Path (Join-Path $staging "drawings\part-b.pdf") -Value $minimalPdf -Encoding ASCII -NoNewline if (Test-Path $zipPath) { Remove-Item $zipPath -Force } Compress-Archive -Path (Join-Path $staging "*") -DestinationPath $zipPath -Force # 校验 zip 内路径(应为 drawings/part-a.pdf,不能只有 part-a.pdf 在根目录) Add-Type -AssemblyName System.IO.Compression.FileSystem $zip = [System.IO.Compression.ZipFile]::OpenRead($zipPath) Write-Host "已生成: $zipPath" $zip.Entries | ForEach-Object { Write-Host " - $($_.FullName)" } $zip.Dispose() Remove-Item $staging -Recurse -Force