I try to convert Excel files to PDF via COM automation. The code runs as a service using the system user. Unfortunately, I get the error "0x800A03EC" in the ExportAsFixedFormat() function. It works when I run this in an interactive session.
I've heard the systemprofile needs a Desktop folder, so I added those.
I've heard this also might have to do with the system user not having a default printer, so I added values to the following keys:
HKEY_USERS\S-1-5-18\Software\Microsoft\Windows NT\CurrentVersion\Devices
HKEY_USERS\S-1-5-18\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts
But this only makes Excel hang instead of throwing an exception immediately.
I'm out of ideas and thankful for any help.
You have to select a default printer for this user. Try to import following code into your registry. Note: Replace these printers for your own (virtual) printers.
Windows Registry Editor Version 5.00
[HKEY_USERS\S-1-5-18\Software\Microsoft\Windows NT\CurrentVersion\Devices]
"Send To OneNote 2010"="winspool,nul:"
"Microsoft XPS Document Writer"="winspool,Ne00:"
[HKEY_USERS\S-1-5-18\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts]
"Send To OneNote 2010"="winspool,nul:,15,45"
"Microsoft XPS Document Writer"="winspool,Ne00:,15,45"
[HKEY_USERS\S-1-5-18\Software\Microsoft\Windows NT\CurrentVersion\Windows]
"UserSelectedDefault"=dword:00000000
"Device"="Send To OneNote 2010,winspool,nul:"
Of course you still have to create your Desktop folder in
C:\Windows\SysWOW64\config\systemprofile
or in
C:\Windows\System32\config\systemprofile
depending on your setup.
After these steps you should be able to export Word, Powerpoint and Excel to PDF by using a regular, non-interactive service (e.g. Windows NT/SYSTEM user). You don't need any alterations in your Component Services