Difference between revisions of "PDFCreator"
(Upgrade to version 1.0.0) |
m (Added link to page stating support for Windows 7) |
||
Line 89: | Line 89: | ||
</source> | </source> | ||
− | Below you find an excerpt from 1.0.0 history.txt. | + | Below you find an excerpt from 1.0.0 history.txt, while PDFForge homepage http://www.pdfforge.org/pdfcreator states "Supports Windows Vista and Windows 7". |
Version 1.0 (Mai 28th, 2010) | Version 1.0 (Mai 28th, 2010) |
Revision as of 14:50, 6 June 2010
Contents
PDFCreator 1.0.0
PDFCreator 1.0.0 is not available as an MSI package. Customization has to be prepared via commandline arguments to the installer, or via the SAVEINF method; both of them allow for example the installation without toolbar and desktop icon.
Haven't checked if version 1.0.0 upgrades cleanly from previous versoins (maybe it could complain about the package being already installed) so I use a different package id ("pdfcreator-098" for the old version, "pdfcreator-100" for the new), so that the old version is removed before the new is installed.
Note that the uninstall string is "PDFCreator" for both versions, so I added a check on the executable version number just to make sure.
Note also the call to unins000.exe before install/upgrade. This should solve the "package already installed" problem mentioned above. This also serves to remove any previous versions that may have been manually installed.
Install/Upgrade also merges in the registry tree HKEY_LOCAL_MACHINE a registry file named "PDFCreator-1_0_0-ZeroUpdateInterval.reg" in order to disable the "auto update check" mechanism. The registry file simply contains the following:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\PDFCreator\Program] "UpdateInterval"="0"
The following values can be forced for the UpdateInterval key:
UpdateInterval=0 means "Never" UpdateInterval=1 means "Once a day" UpdateInterval=2 means "Once a week" UpdateInterval=3 means "Once a month"
Instead of using the "regedit" line and a separate "PDFCreator-1_0_0-ZeroUpdateInterval.reg" you can use this line:
<install cmd='REG ADD "HKLM\SOFTWARE\PDFCreator\Program" /v "UpdateInterval" /t REG_SZ /d "0" /f' />
<package
id="pdfcreator-100"
name="PDFCreator 1.0.0"
revision="1"
reboot="false"
priority="0">
<!-- User can upgrade their version we have to check the binary version
and take care of 32/64bit differences -->
<check type="logical" condition="or">
<check
type="file"
condition="versionequalto"
path="%PROGRAMFILES%\PDFCreator\PDFCreator.exe"
value="1.0.0.0"
/>
<check
type="file"
condition="versionequalto"
path="%PROGRAMFILES(x86)%\PDFCreator\PDFCreator.exe"
value="1.0.0.0"
/>
</check>
<install cmd='%COMSPEC% /C if exist "%PROGRAMFILES%\PDFCreator\unins000.exe" "%PROGRAMFILES%\PDFCreator\unins000.exe" /VERYSILENT"' >
<exit code="any" reboot="false" />
<!-- 0 = previous installation successfully removed.
undefined = no previous installation -->
</install>
<install cmd='%COMSPEC% /C if exist "%PROGRAMFILES(x86)%\PDFCreator\unins000.exe" "%PROGRAMFILES(x86)%\PDFCreator\unins000.exe" /VERYSILENT"' >
<exit code="any" reboot="false" />
<!-- 0 = previous installation successfully removed.
undefined = no previous installation -->
</install>
<install cmd='%SOFTWARE%\PDFCreator\PDFCreator-1_0_0_setup.exe /LOADINF="%SOFTWARE%\PDFCreator\PDFCreator-1_0_0.inf" /VERYSILENT /NORESTART /SP-' />
<install cmd='REG ADD "HKLM\SOFTWARE\PDFCreator\Program" /v "UpdateInterval" /t REG_SZ /d "0" /f' />
<upgrade cmd='%COMSPEC% /C if exist "%PROGRAMFILES%\PDFCreator\unins000.exe" "%PROGRAMFILES%\PDFCreator\unins000.exe" /VERYSILENT"' >
<exit code="any" reboot="false" />
<!-- 0 = previous installation successfully removed.
undefined = no previous installation -->
</upgrade>
<upgrade cmd='%COMSPEC% /C if exist "%PROGRAMFILES(x86)%\PDFCreator\unins000.exe" "%PROGRAMFILES(x86)%\PDFCreator\unins000.exe" /VERYSILENT"' >
<exit code="any" reboot="false" />
<!-- 0 = previous installation successfully removed.
undefined = no previous installation -->
</upgrade>
<upgrade cmd='%SOFTWARE%\PDFCreator\PDFCreator-1_0_0_setup.exe /LOADINF="%SOFTWARE%\PDFCreator\PDFCreator-1_0_0.inf" /VERYSILENT /NORESTART /SP-' />
<upgrade cmd='REG ADD "HKLM\SOFTWARE\PDFCreator\Program" /v "UpdateInterval" /t REG_SZ /d "0" /f' />
<remove cmd='%COMSPEC% /C if exist "%PROGRAMFILES%\PDFCreator\unins000.exe" %PROGRAMFILES%\PDFCreator\unins000.exe /VERYSILENT' />
<remove cmd='%COMSPEC% /C if exist "%PROGRAMFILES(x86)%\PDFCreator\unins000.exe" %PROGRAMFILES(x86)%\PDFCreator\unins000.exe /VERYSILENT' />
</package>
Below you find an excerpt from 1.0.0 history.txt, while PDFForge homepage http://www.pdfforge.org/pdfcreator states "Supports Windows Vista and Windows 7".
Version 1.0 (Mai 28th, 2010) ------------------------------------------------------------------------------- * Improvements: Uses GPL-Ghostscript 8.71 now. * Added the feature to set the color\grey compression factor manually to get the best realtion between file size and quality of pdf files * Improved print after saving (color printing, set maximum resolution) * Improved the signing feature (set signature on page is freely definable) * PDFCreator can handle signing and encrypting in one step * Improved the setup: 64bit printer driver installable on a 32bit system * Added a better dialog for the certificate password * Added the font dialog to the options dialog again * Improved the PDFCreator class (check for an existing printer in cPrintPrinterTestpage, check for an existing file in cPrintfile) * Bug Fixes: Fixed a crashing options dialog * Fixed the "481 - invalid picture" bug * Fixed a bug reading the options on Win9xMe systems * Fixed a bug if the user uses Thai calendar format * Fixed a bug using different Ghostscript versions * Fixed some minor bugs. * Known issues No hyperlinks possible (Hyperlinks for MS Word are possible with the combination of PDF-T-Maker and PDFCreator.)
PDFCreator 0.9.8
PDFCreator 0.9.8 is not available as an MSI package. Customization has to be prepared via commandline arguments to the installer; this allows for example the installation without toolbar and desktop icon.
Version 0.9.8 does not upgrade from 0.9.7 (it complains about the package being already installed) so I use a different package id ("pdfcreator-097" for the old version, "pdfcreator-098" for the new), so that the old version is removed before the new is installed.
Note that the uninstall string is "PDFCreator" for both versions, so I added a check on the executable version number just to make sure.
Note also the call to unins000.exe before install/upgrade. This should solve the "package already installed" problem mentioned above. This also serves to remove any previous versions that may have been manually installed.
Install/Upgrade also merges in the registry tree HKEY_LOCAL_MACHINE a registry file named "PDFCreator-0_9_8-ZeroUpdateInterval.reg" in order to disable the "auto update check" mechanism. The registry file simply contains the following:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\PDFCreator\Program] "UpdateInterval"="0"
The following values can be forced for the UpdateInterval key:
UpdateInterval=0 means "Never" UpdateInterval=1 means "Once a day" UpdateInterval=2 means "Once a week" UpdateInterval=3 means "Once a month"
Instead of using the "regedit" line and a separate pdfcreator.reg you can use this line:
<install cmd='REG ADD "HKLM\SOFTWARE\PDFCreator\Program" /v "UpdateInterval" /t REG_SZ /d "0" /f' />
<package
id="pdfcreator-098"
name="PDFCreator 0.9.8"
revision="1"
reboot="false"
priority="0">
<!-- User can upgrade their version we have to check the binary version
and take care of 32/64bit differences -->
<check type="logical" condition="or">
<check
type="file"
condition="versiongreaterorequal"
path="%PROGRAMFILES%\PDFCreator\PDFCreator.exe"
value="0.9.0.8"
/>
<check
type="file"
condition="versiongreaterorequal"
path="%PROGRAMFILES(x86)%\PDFCreator\PDFCreator.exe"
value="0.9.0.8"
/>
</check>
<install cmd='%COMSPEC% /C if exist "%PROGRAMFILES%\PDFCreator\unins000.exe" "%PROGRAMFILES%\PDFCreator\unins000.exe" /VERYSILENT"' >
<exit code="any" reboot="false" />
<!-- 0 = previous installation successfully removed.
undefined = no previous installation -->
</install>
<install cmd='%COMSPEC% /C if exist "%PROGRAMFILES(x86)%\PDFCreator\unins000.exe" "%PROGRAMFILES(x86)%\PDFCreator\unins000.exe" /VERYSILENT"' >
<exit code="any" reboot="false" />
<!-- 0 = previous installation successfully removed.
undefined = no previous installation -->
</install>
<install cmd='%SOFTWARE%\PDFCreator\PDFCreator-0_9_8_setup.exe /silent /norestart /components=\"!toolbar\" /tasks=\"!desktop_icon\"" /f"' />
<install cmd='regedit /s %SOFTWARE%\PDFCreator\PDFCreator-0_9_8-ZeroUpdateInterval.reg' />
<install cmd='REG ADD "HKLM\SOFTWARE\PDFCreator\Program" /v "UpdateInterval" /t REG_SZ /d "0" /f' />
<upgrade cmd='%COMSPEC% /C if exist "%PROGRAMFILES%\PDFCreator\unins000.exe" "%PROGRAMFILES%\PDFCreator\unins000.exe" /VERYSILENT"' >
<exit code="any" reboot="false" />
<!-- 0 = previous installation successfully removed.
undefined = no previous installation -->
</upgrade>
<upgrade cmd='%COMSPEC% /C if exist "%PROGRAMFILES(x86)%\PDFCreator\unins000.exe" "%PROGRAMFILES(x86)%\PDFCreator\unins000.exe" /VERYSILENT"' >
<exit code="any" reboot="false" />
<!-- 0 = previous installation successfully removed.
undefined = no previous installation -->
</upgrade>
<upgrade cmd='%SOFTWARE%\PDFCreator\PDFCreator-0_9_8_setup.exe /silent /norestart /components=\"!toolbar\" /tasks=\"!desktop_icon\"" /f"' />
<upgrade cmd='REG ADD "HKLM\SOFTWARE\PDFCreator\Program" /v "UpdateInterval" /t REG_SZ /d "0" /f' />
<upgrade cmd='regedit /s %SOFTWARE%\PDFCreator\PDFCreator-0_9_8-ZeroUpdateInterval.reg' />
<remove cmd='%COMSPEC% /C if exist "%PROGRAMFILES%\PDFCreator\unins000.exe" %PROGRAMFILES%\PDFCreator\unins000.exe /VERYSILENT' />
<remove cmd='%COMSPEC% /C if exist "%PROGRAMFILES(x86)%\PDFCreator\unins000.exe" %PROGRAMFILES(x86)%\PDFCreator\unins000.exe /VERYSILENT' />
</package>
PDFCreator 0.9.7
PDFCreator 0.9.7 is not available as an MSI package. Customization has to be prepared via commandline arguments to the installer; this allows for example the installation without toolbar and desktop icon.
Version 0.9.7 does not upgrade from 0.9.6 (it complains about the package being already installed) so I use a different package id ("pdfcreator-096" for the old version, "pdfcreator-097" for the new), so that the old version is removed before the new is installed.
Note that the uninstall string is "PDFCreator" for both versions, so I added a check on the executable version number just to make sure.
Note also the call to unins000.exe before install/upgrade. This should solve the "package already installed" problem mentioned above. This also serves to remove any previous versions that may have been manually installed.
<package
id="pdfcreator-097"
name="PDFCreator 0.9.7"
revision="1"
reboot="false"
priority="0">
<check type="logical" condition="and">
<check type="uninstall" condition="exists" path="PDFCreator" />
<check type="file" condition="versionequalto" path="%PROGRAMFILES%\PDFCreator\PDFCreator.exe" value="0.9.0.7"/>
</check>
<install cmd='%PROGRAMFILES%\PDFCreator\unins000.exe /VERYSILENT' >
<exit code="any" reboot="false" /> <!-- 0 = previous installation successfully removed.
undefined = no previous installation -->
</install>
<install cmd='%SOFTWARE%\PDFCreator\PDFCreator-0_9_7_setup.exe /silent /norestart /components=\"!toolbar\" /tasks=\"!desktop_icon\"" /f"' />
<upgrade cmd='%PROGRAMFILES%\PDFCreator\unins000.exe /VERYSILENT' />
<upgrade cmd='%SOFTWARE%\PDFCreator\PDFCreator-0_9_7_setup.exe /silent /norestart /components=\"!toolbar\" /tasks=\"!desktop_icon\"" /f"' />
<remove cmd='%PROGRAMFILES%\PDFCreator\unins000.exe /VERYSILENT' />
</package>
Below you find an excerpt from 0.9.7 history.txt, which states Windows 7 Beta support (Vista support since version 0.9.6) and more.
Version 0.9.7 (February 3, 2009) ------------------------------------------------------------------------------- Improvements: - Create very small PDF/A files. - A new version of the pdfforge.dll supports direct creation of PDFs from images and can create booklets. - Supports Windows 7 Beta. - New Browser Add On. - Many minor improvements. Bug Fixes: - Fixed some minor bugs. Known issues: - No hyperlinks possible (Hyperlinks for MS Word are possible with the combination of PDF-T-Maker and PDFCreator.)
Removing the toolbar
The toolbar can also be removed with the following command after installation:
"%windir%\PDFCRE~1.EXE" -s
PDFCreator 0.9.3
PDFCreator 0.9.3 is available as an MSI package. Using the standard MSI install/uninstall seems to work for me.
<package
id="pdfcreator"
name="PDFCreator"
revision="1"
reboot="false"
priority="0">
<check type="uninstall" condition="exists" path="PDFCreator" />
<install cmd='msiexec /qn /i %SOFTWARE%\pdfcreator\zPDFCreator-0_9_3-AD_DeploymentPackage-WithoutToolbar.msi' />
<upgrade cmd='msiexec /qn /i %SOFTWARE%\pdfcreator\zPDFCreator-0_9_3-AD_DeploymentPackage-WithoutToolbar.msi' />
<remove cmd='msiexec /qn /x %SOFTWARE%\pdfcreator\zPDFCreator-0_9_3-AD_DeploymentPackage-WithoutToolbar.msi' />
<remove cmd='regedit /S %SOFTWARE%\pdfcreator\pdfc_del.reg' /> <!-- It seems uninstall does not properly clean up.
(Specifically pdfcmnnt.dll is not removed and is still being loaded on boot) This is a problem when upgrading from 0.9.3 to 0.9.5,
because the 0.9.5 installer cannot handle locked files during silent install. -->
</package>
The reg file is:
Windows Registry Editor Version 5.00 [-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\PDFCreator] [-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Print\Monitors\PDFCreator] [-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\PDFCreator]
Upgrading to 0.9.3 from an already installed older release (0.8.1 in my case)
The previous package block works when 0.9.3 is the first release to be installed. The package block below resolves 2 problems.
- upgrading force reboot -> so i added a /norestart to msiexec
- registry keys are not properly modified by the package
<package
id="pdfcreator"
name="PDFCreator"
revision="6"
reboot="false"
priority="0">
<check type="uninstall" condition="exists" path="PDFCreator" />
<install cmd='msiexec /qn /norestart /i %SOFTWARE%\pdfcreator\zPDFCreator-0_9_3-AD_DeploymentPackage-WithoutToolbar.msi' />
<install cmd='regedit /s %SOFTWARE%\pdfcreator\HKLM_pdfcreator_command.reg' />
<upgrade cmd='msiexec /qn /norestart /i %SOFTWARE%\pdfcreator\zPDFCreator-0_9_3-AD_DeploymentPackage-WithoutToolbar.msi' />
<upgrade cmd='regedit /s %SOFTWARE%\pdfcreator\HKLM_pdfcreator_command.reg' />
<remove cmd='msiexec /qn /x %SOFTWARE%\pdfcreator\zPDFCreator-0_9_3-AD_DeploymentPackage-WithoutToolbar.msi' />
</package>
The reg file is :
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\PDFCreator\Ports\PDFCreator:] "Command"="C:\\Program Files\\PDFCreator\\PDFSpooler.exe"
There is a last bug to solve. I'll post the solution here later.
PDFCreator 0.9.1
PDFCreator 0.9.1 comes in the handy form of a MSI package.
Unfortunately, when you install it, it is possible that a normal user will not be able to use this printer - this has to be corrected with rundll printui.dll,PrintUIEntry...
. The complete silent installer and uninstaller looks like this:
<package
id="pdfcreator"
name="PDFCreator"
revision="1"
reboot="false"
priority="0">
<check type="uninstall" condition="exists" path="PDFCreator" />
<install cmd='msiexec /qb /i "%SOFTWARE%\PDFCreator\PDFCreator-0_9_1_AFPLGhostscript_32bit.msi"' />
<install cmd='rundll32 printui.dll,PrintUIEntry /q /ga pdfcreator' />
<remove cmd='MsiExec.exe /q /x{0001B4FD-9EA3-4D90-A79E-FD14BA3AB01D}' />
</package>
Note: while I was testing this, I installed and uninstalled PDFCreator 0.9.1 without rebooting the PC. After yet another installation, the installer popped up a window, saying that a restart is necessary. So perhaps if you're upgrading from the older PDFCreator version, a restart after uninstalling that old version might be a good idea.
Options
- Command line options: http://www.pdfforge.org/node/112
Questions
- How do you prevent installing the browser toolbar?
There is a way to prevent installing the toolbar when installing with the Inno Setup based .exe. Just use /components="program,ghostscript,languages,languages\english". These will install only these ones. But on sourceforge, an MSI package of 0.9.3 without toolbar is available.
Older PDFCreator versions
Do a manual installation of PDFCreator using the dos shell:
PDFCreator-0_8_0_GNUGhostscript.exe /SAVEINF="pdfcreator-0.8.0.inf"
Use the inf-file for the installer:
<package
id="pdfcreator-0.8.0"
name="PDF Creator 0.8.0"
revision="1"
reboot="true"
priority="1000">
<check type="uninstall" condition="exists" path="PDFCreator 0.8.0" />
<install cmd='%SOFTWARE%\pdfcreator\PDFCreator-0_8_0_GNUGhostscript.exe /LOADINF="%SOFTWARE%\pdfcreator\pdfcreator-0.8.0.inf" /VERYSILENT /NORESTART /SP-' />
<remove cmd='"%ProgramFiles%\PDFCreator\unins000.exe" /VERYSILENT' />
</package>
- Watch out to really use the /NORESTART parameter in the install. If you don't this will happen: the installer will restart the machine, but wpkg doesn't have time to make a note about the successful installation, on reboot wpkg will try and reinstall the package, but skip because it finds "PDFCreator 0.8.0" in the uninstall folder. PDFCreator has been installed, but the user will always be nagged by the wpkg notification after a reboot.
- Using the environment variable %ProgramFiles% keeps your uninstall independent of the windows language version. Watch out to also remove the Path="c:\somepath" entry in the inf-file if you want a truly language-independent installation.
- There is also a patch for this version of PDFCreator. Because it produces the same uninstall entry as this version, i.e. "PDFCreator 0.8.0" I have not yet found a way to successfully add it as an additional package. - Now I have, see next section.
Installing 0.8.0-patch2
Create the inf file with the new version in the same way as above. Create the package:
<package
id="pdfcreator-0.8.0-patch2"
name="PDF Creator 0.8.0"
revision="1"
reboot="true"
execute="once"
priority="999">
<install cmd='%SOFTWARE%\ ... (nearly same as above) ...' />
<remove cmd='"%ProgramFiles%\PDFCreator\unins000.exe" /VERYSILENT' />
</package>
Main difference: I've set down the priority, so 0.8.0 is always installed before patch2 and I've also removed the install check. But it doesn't stop here. Next, create a profile:
<profile id="pdfcreator">
<package package-id="pdfcreator-0.8.0" />
<package package-id="pdfcreator-0.8.0-patch2" />
</profile>
Now, whenever you want to include pdfcreator, you can just include the "software profile" in any other profiles. Having both versions in a profile and using the priority settings ensures that 0.8.0 is always installed before patch2.