updated
This commit is contained in:
117
prepare_ghostscript.bat
Normal file
117
prepare_ghostscript.bat
Normal file
@@ -0,0 +1,117 @@
|
||||
@echo off
|
||||
REM ============================================================
|
||||
REM prepare_ghostscript.bat
|
||||
REM Finds the system GhostScript installation and copies the
|
||||
REM files needed for bundling into conf\ghostscript\
|
||||
REM
|
||||
REM Files copied:
|
||||
REM conf\ghostscript\bin\gswin64c.exe (or gswin32c.exe)
|
||||
REM conf\ghostscript\bin\gsdll64.dll (or gsdll32.dll)
|
||||
REM conf\ghostscript\lib\*.ps (PostScript init files)
|
||||
REM
|
||||
REM Run this ONCE before building the exe with build_windows.bat.
|
||||
REM Only the two executables + the lib/ folder are needed (~15-20 MB).
|
||||
REM The full GhostScript fonts/Resources are NOT bundled to keep
|
||||
REM the exe size manageable; Windows system fonts are used instead.
|
||||
REM ============================================================
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
set GS_FOUND=0
|
||||
set GS_BIN_SRC=
|
||||
set GS_LIB_SRC=
|
||||
set GS_EXE=
|
||||
|
||||
echo.
|
||||
echo ============================================================
|
||||
echo GhostScript Bundle Preparation
|
||||
echo ============================================================
|
||||
echo.
|
||||
|
||||
REM ---- Search for GhostScript in both Program Files locations ----
|
||||
for %%P in ("%ProgramFiles%" "%ProgramFiles(x86)%") do (
|
||||
if exist "%%~P\gs" (
|
||||
for /d %%V in ("%%~P\gs\gs*") do (
|
||||
if exist "%%~V\bin\gswin64c.exe" (
|
||||
set GS_BIN_SRC=%%~V\bin
|
||||
set GS_LIB_SRC=%%~V\lib
|
||||
set GS_EXE=gswin64c.exe
|
||||
set GS_DLL=gsdll64.dll
|
||||
set GS_FOUND=1
|
||||
echo Found GhostScript (64-bit): %%~V
|
||||
)
|
||||
if !GS_FOUND!==0 (
|
||||
if exist "%%~V\bin\gswin32c.exe" (
|
||||
set GS_BIN_SRC=%%~V\bin
|
||||
set GS_LIB_SRC=%%~V\lib
|
||||
set GS_EXE=gswin32c.exe
|
||||
set GS_DLL=gsdll32.dll
|
||||
set GS_FOUND=1
|
||||
echo Found GhostScript (32-bit): %%~V
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
if %GS_FOUND%==0 (
|
||||
echo.
|
||||
echo WARNING: GhostScript is NOT installed on this machine.
|
||||
echo.
|
||||
echo The exe will still build successfully, but GhostScript will
|
||||
echo NOT be bundled. On the target machine the app will fall back
|
||||
echo to SumatraPDF for printing (which may produce dotted output).
|
||||
echo.
|
||||
echo To get sharp vector-quality printing, install GhostScript:
|
||||
echo https://ghostscript.com/releases/gsdnld.html
|
||||
echo Then re-run this script before building.
|
||||
echo.
|
||||
exit /b 0
|
||||
)
|
||||
|
||||
REM ---- Create destination folders ----
|
||||
set GS_DEST_BIN=conf\ghostscript\bin
|
||||
set GS_DEST_LIB=conf\ghostscript\lib
|
||||
|
||||
if not exist "%GS_DEST_BIN%" mkdir "%GS_DEST_BIN%"
|
||||
if not exist "%GS_DEST_LIB%" mkdir "%GS_DEST_LIB%"
|
||||
|
||||
REM ---- Copy executable and DLL ----
|
||||
echo.
|
||||
echo Copying GhostScript binaries...
|
||||
copy /y "%GS_BIN_SRC%\%GS_EXE%" "%GS_DEST_BIN%\%GS_EXE%" >nul
|
||||
if errorlevel 1 ( echo ERROR copying %GS_EXE% & exit /b 1 )
|
||||
echo + %GS_EXE%
|
||||
|
||||
copy /y "%GS_BIN_SRC%\%GS_DLL%" "%GS_DEST_BIN%\%GS_DLL%" >nul
|
||||
if errorlevel 1 ( echo ERROR copying %GS_DLL% & exit /b 1 )
|
||||
echo + %GS_DLL%
|
||||
|
||||
REM ---- Copy lib/ (PostScript init files .ps) ----
|
||||
echo.
|
||||
echo Copying GhostScript lib (PostScript init files)...
|
||||
for %%F in ("%GS_LIB_SRC%\*.ps") do (
|
||||
copy /y "%%F" "%GS_DEST_LIB%\" >nul
|
||||
)
|
||||
echo + *.ps copied from %GS_LIB_SRC%
|
||||
|
||||
REM ---- Report ----
|
||||
echo.
|
||||
echo ============================================================
|
||||
echo GhostScript prepared successfully in conf\ghostscript\
|
||||
echo ============================================================
|
||||
echo.
|
||||
|
||||
REM Show size summary
|
||||
set BIN_COUNT=0
|
||||
set LIB_COUNT=0
|
||||
for %%F in ("%GS_DEST_BIN%\*") do set /a BIN_COUNT+=1
|
||||
for %%F in ("%GS_DEST_LIB%\*") do set /a LIB_COUNT+=1
|
||||
echo bin\ : %BIN_COUNT% file(s)
|
||||
echo lib\ : %LIB_COUNT% file(s)
|
||||
echo.
|
||||
echo GhostScript will be embedded into LabelPrinter.exe at build time.
|
||||
echo.
|
||||
|
||||
endlocal
|
||||
exit /b 0
|
||||
Reference in New Issue
Block a user