Files
MES_Manage_View_V20/work/system-design-document/build-standard-design-document.ps1

52 lines
2.7 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
param(
[string]$OutputDirectory = ''
)
$ErrorActionPreference = 'Stop'
$scriptRoot = $PSScriptRoot
$root = (Resolve-Path (Join-Path $scriptRoot '..\..')).Path
$outputDir = if ($OutputDirectory) { (Resolve-Path $OutputDirectory).Path } else { Join-Path $root 'doc' }
$technicalBuilder = Join-Path $root 'work\system-technical-document\build-standard-technical-document.ps1'
$tempDir = Join-Path $scriptRoot 'source-build'
$technicalBase = '大连元利流体技术有限公司MES系统标准技术文档_V1.0_2026-07-24'
$designBase = '大连元利流体技术有限公司MES系统标准设计文档_V1.0_2026-07-24'
$sourceDocx = Join-Path $tempDir ($technicalBase + '.docx')
$targetDocx = Join-Path $outputDir ($designBase + '.docx')
$targetPdf = Join-Path $outputDir ($designBase + '.pdf')
New-Item -ItemType Directory -Force -Path $outputDir, $tempDir | Out-Null
# 在源构建脚本中替换文档基线名称,再由原有生成器一次性生成 DOCX/PDF。
# 这样可以保留封面、页眉、修订记录和文档属性的一致性。
$sourceScript = Join-Path $tempDir 'build-design-source.ps1'
$sourceText = [IO.File]::ReadAllText($technicalBuilder, [Text.Encoding]::UTF8)
$replacements = @(
@('大连元利流体技术有限公司MES系统标准技术文档_V1.0_2026-07-24', '大连元利流体技术有限公司MES系统标准设计文档_V1.0_2026-07-24'),
@('MES 系统标准技术文档', 'MES 系统标准设计文档'),
@('MES系统标准技术文档', 'MES系统标准设计文档'),
@('System Technical Specification', 'System Design Specification'),
@('首次形成系统级标准技术文档', '首次形成系统级标准设计文档'),
@('本文档定义 MES 系统当前技术实现基线', '本文档定义 MES 系统当前系统设计基线')
)
foreach ($pair in $replacements) {
$sourceText = $sourceText.Replace($pair[0], $pair[1])
}
$utf8Bom = New-Object Text.UTF8Encoding($true)
[IO.File]::WriteAllText($sourceScript, $sourceText, $utf8Bom)
Copy-Item -LiteralPath (Join-Path $root 'work\system-technical-document\assets') -Destination (Join-Path $tempDir 'assets') -Recurse -Force
& powershell.exe -NoProfile -ExecutionPolicy Bypass -File $sourceScript -OutputDirectory $tempDir
$generatedDocx = Join-Path $tempDir ($designBase + '.docx')
$generatedPdf = Join-Path $tempDir ($designBase + '.pdf')
if (-not (Test-Path -LiteralPath $generatedDocx)) {
throw "未找到标准设计文档 DOCX$generatedDocx"
}
if (-not (Test-Path -LiteralPath $generatedPdf)) {
throw "未找到标准设计文档 PDF$generatedPdf"
}
Copy-Item -LiteralPath $generatedDocx -Destination $targetDocx -Force
Copy-Item -LiteralPath $generatedPdf -Destination $targetPdf -Force
Write-Output "已生成:$targetDocx"
Write-Output "已生成:$targetPdf"