Differences

This shows you the differences between two versions of the page.

Link to this comparison view

userspace:pdf_split_and_merge [2014/05/29 14:09] (current)
SisterOfMercy created
Line 1: Line 1:
 +====== PDF Split and Merge ======
 +Adaptation of the opsi-template scripts for PDFsam. \\
 +Get the 32-bit and 64-bit MSI files here: http://​sourceforge.net/​projects/​pdfsam/​files/​pdfsam/​2.2.2/​\\
 +Read more what PDFsam is and can do for you: http://​www.pdfsam.org/​basic-version/​\\
  
 +We have these files:\\
 +%scriptpath%\files\pdfsam-x86-v2_2_2.msi\\
 +%scriptpath%\files\pdfsam-x64-v2_2_2.msi\\
 +%scriptpath%\files\pdfsam-config.xml\\
 +
 +==== pdfsam-config.xml ====
 +
 +<code winst>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +
 +<pdfsam config-version="​2">​
 +  <​settings>​
 +    <laf current-laf="​6"​ current-theme="​0"/>​
 +    <​thumbpoolsize value="​3"/>​
 +    <​loglevel value="​20000"/>​
 +    <i18n value="​en_GB"/>​
 +    <​default_working_path value=""/>​
 +    <​thumbnails_creator class="​org.pdfsam.guiclient.business.thumbnails.creators.JPodThumbnailCreator"/>​
 +    <​default_environment value=""/>​
 +    <​plugs_absolute_path value=""/>​
 +    <​checkupdates value="​false"/>​
 +    <​playsounds value="​false"/>​
 +    <​overwrite_confirmation value="​false"/>​
 +    <​high_quality_thumbs value="​true"/>​
 +    <​thumbnails_size value="​270"/>​
 +  </​settings>​
 +</​pdfsam>​
 +</​code>​
 +
 +==== control file ====
 +
 +<code winst>
 +[Package]
 +version: 1
 +depends: ​
 +incremental:​ False
 +
 +[Product]
 +type: localboot
 +id: pdfsam
 +name: PDF Split And Merge
 +description:​ PDF Split and Merge is a free and open-source set of tools for manipulating PDF documents.
 +advice: Install this application if you need to merge different PDF files into one file, and vice versa.
 +version: 2.2.2
 +priority: 0
 +licenseRequired:​ False
 +productClasses: ​
 +setupScript:​ setup3264.ins
 +uninstallScript:​ uninstall3264.ins
 +updateScript: ​
 +alwaysScript: ​
 +onceScript: ​
 +customScript: ​
 +userLoginScript: ​
 +
 +[ProductDependency]
 +action: setup
 +requiredProduct:​ java-runtime
 +requiredStatus:​ installed
 +
 +[Changelog]
 +pdfsam (2.2.2-1) testing; urgency=low
 +
 +  * Initial package
 +
 + -- ICT <​ict@gcecad-service.nl> ​ Mon, 26 May 2014 15:00:32 +0000
 +</​code>​
 +
 +
 +==== setup3264.ins ====
 +
 +<code winst>
 +; Copyright (c) uib gmbh (www.uib.de)
 +; This sourcecode is owned by uib
 +; and published under the Terms of the General Public License.
 +; credits: http://​www.opsi.org/​en/​credits/​
 +;
 +; License Management removed
 +
 +
 +[Actions]
 +requiredWinstVersion >= "​4.10.8.6"​
 +
 +;DefVar $MsiId32$
 +;DefVar $UninstallProgram32$
 +;DefVar $MsiId64$
 +;DefVar $UninstallProgram64$
 +DefVar $LogDir$
 +DefVar $ProductId$  ​
 +DefVar $MinimumSpace$
 +DefVar $InstallDir32$
 +DefVar $InstallDir64$
 +DefVar $ExitCode$
 +DefVar $INST_SystemType$
 +;DefVar $INST_architecture$
 +DefVar $INST_MsVersion$
 +
 +set $INST_MsVersion$ = GetMsVersionInfo
 +Set $INST_SystemType$ = GetSystemType
 +;set $INST_architecture$ = GetProductProperty("​install_architecture","​system specific"​)
 +Set $LogDir$ = "​%SystemDrive%\tmp"​
 +
 +; ----------------------------------------------------------------
 +; - Please edit the following values ​                            -
 +; ----------------------------------------------------------------
 +;​$ProductId$ should be the name of the product in opsi
 +; therefore please: only lower letters, no umlauts, ​
 +; no white space use '​-'​ as a seperator
 +Set $ProductId$ ​      = "​pdfsam"​
 +Set $MinimumSpace$ ​   = "500 MB"
 +; the path were we find the product after the installation
 +Set $InstallDir32$ ​     = "​%ProgramFiles32Dir%\PDF Split And Merge Basic"
 +Set $InstallDir64$ ​     = "​%ProgramFiles64Dir%\PDF Split And Merge Basic"
 +; ----------------------------------------------------------------
 +
 +if not(HasMinimumSpace ("​%SystemDrive%",​ $MinimumSpace$))
 + LogError "Not enough space on %SystemDrive%,​ " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
 + isFatalError
 + ; Stop process and set installation status to failed
 +endif
 +if $INST_MsVersion$ < "​5.1"​
 + LogError "​Windows XP or newer is required for " + $ProductId$  ​
 + isFatalError
 +endif
 +
 +comment "Show product picture"​
 +ShowBitmap "​%ScriptPath%\"​ + $ProductId$ + "​.png"​ $ProductId$
 +
 +if FileExists("​%ScriptPath%\delsub3264.ins"​)
 + comment "Start uninstall sub section"​
 + Sub "​%ScriptPath%\delsub3264.ins"​
 +endif
 +
 +comment "​installing"​
 +
 +if ($INST_SystemType$ = "x86 System"​) ​
 +;and ($INST_architecture$ = "​system specific"​)) or ($INST_architecture$ = "​both"​) or ($INST_architecture$ = "32 only")
 + Message "​Installing " + $ProductId$ + "​..."​
 + comment "Start setup program"​
 + Winbatch_install_32
 + Sub_check_exitcode
 + comment "Copy files"
 + Files_install_32 /32Bit
 + comment "Patch Registry"​
 + Registry_install /32Bit
 + Registry_install_AllProfiles /​AllNTUserDats
 + comment "​Create shortcuts"​
 + LinkFolder_install
 +endif
 +
 +if ($INST_SystemType$ = "64 Bit System"​) ​
 +;and (($INST_architecture$ = "​system specific"​) or ($INST_architecture$ = "​both"​) or ($INST_architecture$ = "64 only"​))
 + Message "​Installing " + $ProductId$ + "​..."​
 + comment "Start setup program"​
 + Winbatch_install_64
 + Sub_check_exitcode
 + comment "Copy files"
 + Files_install_64 /64Bit
 + comment "Patch Registry"​
 + Registry_install /64Bit
 + Registry_install_AllProfiles /​AllNTUserDats
 + comment "​Create shortcuts"​
 + LinkFolder_install
 +endif
 +
 +
 +[Winbatch_install_32]
 +"​%SystemRoot%\system32\msiexec.exe"​ /qb! /package "​%ScriptPath%\files\pdfsam-x86-v2_2_2.msi"​ REBOOT=ReallySuppress
 +
 +[Files_install_32]
 +copy "​%ScriptPath%\files\pdfsam-config.xml"​ "​$InstallDir32$"​
 +
 +[Winbatch_install_64]
 +"​%SystemRoot%\system32\msiexec.exe"​ /qb! /package "​%ScriptPath%\files\pdfsam-x64-v2_2_2.msi"​ REBOOT=ReallySuppress
 +
 +[Files_install_64]
 +copy "​%ScriptPath%\files\pdfsam-config.xml"​ "​$InstallDir64$"​
 +
 +[Registry_install]
 +;​[HKEY_LOCAL_MACHINE\SOFTWARE\PDF Split And Merge Basic]
 +;"​Path"​="​c:​\\Program Files\\PDF Split And Merge Basic\\"​
 +;"​Version"​="​2.2.2"​
 +
 +; Example of setting some values of an registry key:
 +;
 +; openkey [HKEY_LOCAL_MACHINE\Software\$ProductId$]
 +; set "​name1"​ = "some string value"
 +; set "​name2"​ = REG_DWORD:​0001
 +; set "​name3"​ = REG_BINARY:​00 af 99 cd
 +
 +[Registry_install_AllProfiles]
 +;​[HKEY_CURRENT_USER\Software\PDF Split And Merge Basic]
 +;"​MenuDirInstalled"​=dword:​00000001
 +;"​DocsMenuDirInstalled"​=dword:​00000001
 +
 +; Remove stored start menu order
 +deletekey [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu]
 +
 +[LinkFolder_install]
 +; Example of deleting a folder from AllUsers startmenu:
 +;
 +; set_basefolder common_programs
 +; delete_subfolder $ProductId$
 +;
 +; Example of creating an shortcut to the installed exe in AllUsers startmenu:
 +;
 +; set_basefolder common_programs
 +; set_subfolder $ProductId$
 +;
 +; set_link
 +; name: $ProductId$
 +; target: <path to the program>
 +; parameters:​
 +; working_dir:​ $InstallDir$
 +; icon_file:
 +; icon_index:​
 +; end_link
 +;
 +; Example of creating an shortcut to the installed exe on AllUsers desktop:
 +;
 +; set_basefolder common_desktopdirectory
 +; set_subfolder ""​
 +;
 +; set_link
 +; name: $ProductId$
 +; target: <path to the program>
 +; parameters:​ <​some_param>​
 +; working_dir:​ $InstallDir$
 +; icon_file: <path to icon file>
 +; icon_index:​ 2
 +; end_link
 +
 +
 +[Sub_check_exitcode]
 +comment "Test for installation success via exit code"
 +set $ExitCode$ = getLastExitCode
 +; informations to exit codes see
 +; http://​msdn.microsoft.com/​en-us/​library/​aa372835(VS.85).aspx
 +; http://​msdn.microsoft.com/​en-us/​library/​aa368542.aspx
 +if ($ExitCode$ = "​0"​)
 + comment "Looks good: setup program gives exitcode zero"
 +else
 + comment "Setup program gives a exitcode unequal zero: " + $ExitCode$
 + if ($ExitCode$ = "​1605"​)
 + comment "​ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed."​
 + comment "​Uninstall of a not installed product failed - no problem"​
 + else
 + if ($ExitCode$ = "​1641"​)
 + comment "looks good: setup program gives exitcode 1641"
 + comment "​ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success."​
 + else
 + if ($ExitCode$ = "​3010"​)
 + comment "looks good: setup program gives exitcode 3010"
 + comment "​ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success."​
 + else
 + logError "​Fatal:​ Setup program gives an unknown exitcode unequal zero: " + $ExitCode$
 + isFatalError
 + endif
 + endif
 + endif
 +endif
 +</​code>​
 +
 +==== uninstall3264.ins ====
 +
 +<code winst>
 +; Copyright (c) uib gmbh (www.uib.de)
 +; This sourcecode is owned by uib gmbh
 +; and published under the Terms of the General Public License.
 +; credits: http://​www.opsi.org/​en/​credits/​
 +;
 +; License Management removed
 +
 +[Actions]
 +requiredWinstVersion >= "​4.10.8.6"​
 +
 +;DefVar $MsiId32$
 +;DefVar $UninstallProgram32$
 +;DefVar $MsiId64$
 +;DefVar $UninstallProgram64$
 +DefVar $LogDir$
 +DefVar $ExitCode$
 +DefVar $ProductId$
 +DefVar $InstallDir32$
 +DefVar $InstallDir64$
 +DefVar $INST_SystemType$
 +;DefVar $INST_architecture$
 +
 +Set $INST_SystemType$ = GetSystemType
 +;set $INST_architecture$ = GetProductProperty("​install_architecture","​system specific"​)
 +
 +
 +Set $LogDir$ = "​%SystemDrive%\tmp"​
 +
 +; ----------------------------------------------------------------
 +; - Please edit the following values ​                            -
 +; ----------------------------------------------------------------
 +Set $ProductId$ ​      = "​pdfsam"​
 +Set $InstallDir32$ ​   = "​%ProgramFiles32Dir%\PDF Split And Merge Basic"
 +Set $InstallDir64$ ​   = "​%ProgramFiles64Dir%\PDF Split And Merge Basic"
 +; ----------------------------------------------------------------
 +
 +
 +comment "Show product picture"​
 +ShowBitmap "​%ScriptPath%\"​ + $ProductId$ + "​.png"​ $ProductId$
 +
 +Message "​Uninstalling " + $ProductId$ + " ..."
 +
 +if FileExists("​%ScriptPath%\delsub3264.ins"​)
 + comment "Start uninstall sub section"​
 + Sub "​%ScriptPath%\delsub3264.ins"​
 +endif
 +</​code>​
 +
 +==== delsub3264.ins ====
 +
 +<code winst>
 +; Copyright (c) uib gmbh (www.uib.de)
 +; This sourcecode is owned by uib gmbh
 +; and published under the Terms of the General Public License.
 +; credits: http://​www.opsi.org/​en/​credits/​
 +;
 +; License Management removed
 +
 +
 +DefStringList $result$
 +DefStringList $result1$
 +DefVar $appKey$
 +DefVar $UninstallCommandList$
 +DefVar $appString$
 +DefVar $appKeyString$
 +DefVar $testName$
 +;DefVar $exeString$
 +
 +Set $appKeyString$ = "​DisplayName"​
 +Set $appString$ = "PDF Split And Merge"
 +
 +;Set $MsiId32$ = '​{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}'​
 +;Set $UninstallProgram32$ = $InstallDir32$ + "​\uninstall.exe"​
 +
 +;Set $MsiId64$ = '​{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}'​
 +;Set $UninstallProgram64$ = $InstallDir64$ + "​\uninstall.exe"​
 +
 +if ($INST_SystemType$ = "x86 System"​) ​
 +;and ($INST_architecture$ = "​system specific"​)) or ($INST_architecture$ = "​both"​) or ($INST_architecture$ = "32 only")
 + Message "​Uninstalling " + $ProductId$ + "​..."​
 +
 + Set $result$ = getRegistryKeyList32("​HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"​)
 + for $app$ in $result$ do Sub_searchApp32
 + if not ($UninstallCommandList$ = ""​)
 + set $result1$ = splitString($UninstallCommandList$,"::"​)
 + for $UninstallCommand$ in $result1$ do Winbatch_uninstall_32 /32Bit
 + sub_check_exitcode
 + endif
 + 
 +
 +; if FileExists($UninstallProgram32$)
 +; comment "​Uninstall program found, starting uninstall"​
 +;​ Winbatch_uninstall_32
 +;​ sub_check_exitcode
 +; endif
 +
 +; if not (GetRegistryStringValue32("​[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + $MsiId32$ + "] DisplayName"​) = ""​)
 +; comment "MSI id " + $MsiId32$ + " found in registry, starting msiexec to uninstall"​
 +;​ Winbatch_uninstall_msi_32
 +;​ sub_check_exitcode
 +; endif
 +
 + comment "​Delete files"
 + Files_uninstall_32 /32Bit
 + Files_uninstall_AllProfiles /​AllNtUserProfiles
 + comment "​Cleanup registry"​
 + Registry_uninstall /32Bit
 + Registry_uninstall_AllProfiles /​AllNTUserDats
 +endif
 +
 +if ($INST_SystemType$ = "64 Bit System"​) ​
 +;and (($INST_architecture$ = "​system specific"​) or ($INST_architecture$ = "​both"​) or ($INST_architecture$ = "64 only"​))
 + Message "​Uninstalling " + $ProductId$ + "​..."​
 +
 + Set $result$ = getRegistryKeyList64("​HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"​)
 + for $app$ in $result$ do Sub_searchApp64
 +  if not ($UninstallCommandList$ = ""​)
 + set $result1$ = splitString($UninstallCommandList$,"::"​)
 + for $UninstallCommand$ in $result1$ do Winbatch_uninstall_64 /64Bit
 + sub_check_exitcode
 + endif
 +
 + Set $result$ = getRegistryKeyList32("​HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"​)
 + for $app$ in $result$ do Sub_searchApp32
 + if not ($UninstallCommandList$ = ""​)
 + set $result1$ = splitString($UninstallCommandList$,"::"​)
 + for $UninstallCommand$ in $result1$ do Winbatch_uninstall_32 /32Bit
 + sub_check_exitcode
 + endif
 +
 +; if FileExists($UninstallProgram64$)
 +; comment "​Uninstall program found, starting uninstall"​
 +;​ Winbatch_uninstall_64
 +;​ sub_check_exitcode
 +; endif
 +
 +; if not (GetRegistryStringValue64("​[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + $MsiId64$ + "] DisplayName"​) = ""​)
 +; comment "MSI id " + $MsiId64$ + " found in registry, starting msiexec to uninstall"​
 +;​ Winbatch_uninstall_msi_64
 +;​ sub_check_exitcode
 +; endif
 +
 + comment "​Delete files"
 + Files_uninstall_64 /64Bit
 + Files_uninstall_AllProfiles /​AllNtUserProfiles
 + comment "​Cleanup registry"​
 + Registry_uninstall /64Bit
 + Registry_uninstall_AllProfiles /​AllNTUserDats
 +endif
 +
 +comment "​Delete program shortcuts"​
 +LinkFolder_uninstall
 +
 +[Winbatch_uninstall_32]
 +$UninstallCommand$
 +
 +[Files_uninstall_32]
 +; Example for recursively deleting the installation directory (don't forget the trailing backslash):
 +;
 +; delete -sf "​$InstallDir32$\"​
 +
 +[Winbatch_uninstall_64]
 +$UninstallCommand$
 +
 +[Files_uninstall_64]
 +; Example for recursively deleting the installation directory (don't forget the trailing backslash):
 +;
 +; delete -sf "​$InstallDir64$\"​
 +
 +[Files_uninstall_AllProfiles]
 +delete -sf "​%UserProfileDir%\Application Data\.pdfsam\"​
 +
 +[Registry_uninstall]
 +;deletekey [HKEY_LOCAL_MACHINE\SOFTWARE\PDF Split And Merge Basic]
 +
 +[Registry_uninstall_AllProfiles]
 +deletekey [HKEY_CURRENT_USER\Software\PDF Split And Merge Basic]
 +
 +
 +[LinkFolder_uninstall]
 +; Example of deleting a folder from AllUsers startmenu:
 +;
 +; set_basefolder common_programs
 +; delete_subfolder $ProductId$
 +;
 +; Example of deleting a shortcut from AllUsers desktop:
 +;
 +; set_basefolder common_desktopdirectory
 +; set_subfolder ""​
 +; delete_element $ProductId$
 +
 +[Sub_check_exitcode]
 +comment "Test for installation success via exit code"
 +set $ExitCode$ = getLastExitCode
 +; informations to exit codes see
 +; http://​msdn.microsoft.com/​en-us/​library/​aa372835(VS.85).aspx
 +; http://​msdn.microsoft.com/​en-us/​library/​aa368542.aspx
 +if ($ExitCode$ = "​0"​)
 + comment "Looks good: setup program gives exitcode zero"
 +else
 + comment "Setup program gives a exitcode unequal zero: " + $ExitCode$
 + if ($ExitCode$ = "​1605"​)
 + comment "​ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed."​
 + comment "​Uninstall of a not installed product failed - no problem"​
 + else
 + if ($ExitCode$ = "​1641"​)
 + comment "looks good: setup program gives exitcode 1641"
 + comment "​ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success."​
 + else
 + if ($ExitCode$ = "​3010"​)
 + comment "looks good: setup program gives exitcode 3010"
 + comment "​ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success."​
 + else
 + logError "​Fatal:​ Setup program gives an unknown exitcode unequal zero: " + $ExitCode$
 + isFatalError
 + endif
 + endif
 + endif
 +endif
 +
 +[Sub_searchApp32]
 +set $appKey$ = "​[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + "​$app$"​ + "] " + $appKeyString$
 +Set $testName$ = GetRegistryStringValue32($appKey$)
 +if contains($testName$,​$appString$)
 +; set $appKey$ = "​[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + "​$app$"​ + "] UninstallString"​
 +; Set $testName$ = GetRegistryStringValue32($appKey$)
 + ;if contains(lower($testName$),​lower("​MsiExec.exe"​))
 + set $UninstallCommandList$ = $UninstallCommandList$ + "​MsiExec.exe /x " + "​$app$"​ + " /qb-! REBOOT=ReallySuppress::"​
 + ;else
 + ; Set $testName$ = unquote($testName$,'"'​)
 + ; Set $testName$ = unquote($testName$,"'"​)
 + ; Set $exeString$ = takeString(0,​ splitString ($testName$,​ "​exe"​))
 + ; set $UninstallCommandList$ = $UninstallCommandList$ + $exeString$ + "exe /S::"
 + ;endif
 +endif
 + 
 +[Sub_searchApp64]
 +set $appKey$ = "​[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + "​$app$"​ + "] " + $appKeyString$
 +Set $testName$ = GetRegistryStringValue64($appKey$)
 +if contains($testName$,​$appString$)
 +; set $appKey$ = "​[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"​ + "​$app$"​ + "] UninstallString"​
 +; Set $testName$ = GetRegistryStringValue64($appKey$)
 + ;if contains(lower($testName$),​lower("​MsiExec.exe"​))
 + set $UninstallCommandList$ = $UninstallCommandList$ + "​MsiExec.exe /x " + "​$app$"​ + " /qb-! REBOOT=ReallySuppress::"​
 + ;else
 + ; Set $testName$ = unquote($testName$,'"'​)
 + ; Set $testName$ = unquote($testName$,"'"​)
 + ; Set $exeString$ = takeString(0,​ splitString ($testName$,​ "​exe"​))
 + ; set $UninstallCommandList$ = $UninstallCommandList$ + '"'​ + $exeString$ + 'exe /​S"::'​
 + ;endif
 +endif
 +</​code>​

QR Code
QR Code userspace:pdf_split_and_merge (generated for current page)