xlsxをPDFに変換する方法を探しています。
もしご存知の方がいらっしゃいましたらご教授下さい。
なお、変換はWebアプリ(IIS上)で実行し、
実行マシンにはMSオフィスはインストールしない予定です。
当方は以下の方法で試しましたが、
変換は出来たものの
IISのワーカープロセスを変えないと動きませんでした。
ワーカープロセスを変えずに実現できないか、
その方法を探しています。
-------------- 当方が試した内容 --------------
1. LbireOfficeを d:\tmp へインストール
2. 以下のソースで実行
=============
String xlsx = @"D:\tmp\c.xlsx";
String outDir = @"d:\tmp";
var pdfProcess = new Process();
pdfProcess.StartInfo.FileName = @"d:\tmp\LibreOffice 5\program\soffice.exe";
pdfProcess.StartInfo.Arguments = @"--norestore --nofirststartwizard --headless --convert-to pdf --outdir " + outDir + " " + xlsx;
pdfProcess.StartInfo.WorkingDirectory = outDir; //This is really important
pdfProcess.Start();
=============
-> PDF変換出来ない
例外も発生しないので何が原因が不明
タスクマネージャを見ると LibreOfficeプロセスが2個出現するが、そのまま動いていない
-> VisualStdioからデバッグモードで起動すると変換出来たので、権限かな?
-> d:\tmp の権限で以下のユーザ/グループにフルコントロールを設定。
- Everyone
- IIS_IUSERS
- Classic.Net AppPool
- DefaultAppPool
-> PDF変換出来ない
-> IISのワーカープロセスを ApplicationfoolIdentity から LocalSystem に変更
-> PDF変換出来た
-------------- 環境 --------------
# .Net : 4.0
# Server : Windows Server2012R2
# IIS : 8.5