http://hi.baidu.com/jiaxw/blog/item/93b619f38c5d805b342accf8.html
在此之前我已經找過很多國外的文章,很多人都碰到類似的情況
就是通過asp.net 調用服務器上的FlashPrinter.exe 程序,(這個程序可以通過虛擬打印機把所有可打印的文件轉換成swf文件)
我這里是通過Process類調用的
CMD的命令式這樣的
xxx\\xxx\\FlashPrinter.exe "d:\\1.txt" -o "d\\1.swf"
我在服務器上直接輸入上面命令行正常運作
但是通過web 也就是Network Services用戶組調用就沒有正常輸出文件,
我調試過可以正常調用FlashPrinter.exe 進程,但就一直沒有輸出文件
我曾經從新安裝新的window2003用于測試
第一次我用了好幾個小時去搞:
1.IIS權限
2.用戶組權限
3.本地策略
4.打印機權限
我忘記了是搞了那些東西,不知不覺就可以通過asp.net 正常使用那個功能.
后來我為了再次測試,我把系統還原了,結果我怎么在設置也不能正常調用那個功能了
在此之前已經設置過很多東西上面所說的是我不知道怎么樣設置就可以運行了
PS:我身邊有好幾臺機器,有些是正常的,有些就是一直煩著..查看事件日志說是已經成功轉送打印命令,但就是打印的字節數為0
想把pdf轉換成swf文件,就在asp.net后臺代碼中啟動了flashpaper進程,但同樣的代碼在winxp下,好用。但在
win2003下,就不好用了。代碼如下:
public static void ConvertPdfToSwf(HttpRequest reqeust, String
styFileName, String[] dataFileNames, String outputFileFullName)
{
try
{
String flashPrinter =
String.Concat(AppDomain.CurrentDomain.BaseDirectory,
"FlashPrinter.exe");//FlashPrinter.exe
System.Diagnostics.ProcessStartInfo startInfo = new
System.Diagnostics.ProcessStartInfo(flashPrinter);
if (String.IsNullOrEmpty(outputFileFullName))
{
return ;
}
Int32 intLastDot =
outputFileFullName.LastIndexOf(".");
//*********Temp
Programming****************************************
Int32 intLast = outputFileFullName.LastIndexOf("\\");
String path = outputFileFullName.Substring(0,
intLast);
String tempFileName = path + "\\PdfToSwf20080923.pdf";
//*****************************************************************
String swfFileName = String.Concat(path,
"\\PdfToSwf20080923.swf");
startInfo.Arguments = String.Concat(tempFileName, " -o
", swfFileName);
System.Diagnostics.Process process = new
System.Diagnostics.Process();
process.StartInfo = startInfo;
Boolean isStart = process.Start();
process.WaitForExit();
process.Close();
}
catch(Exception ex)
{
throw ex;
}
posted on 2010-04-03 23:25
SIMONE 閱讀(3113)
評論(5) 編輯 收藏 所屬分類:
flash