using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
namespace PdfToSwf
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 选择路径按钮点击时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
this.src.Text = openFileDialog1.FileName;
}
}
/// <summary>
/// 转换功能
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
comm cm = new comm();
cm.RunProgram(openFileDialog1.FileName,"cd" + " " + "c:\\Program Files\\SWFTools\\");
}
/// <summary>
/// 创建进程类
/// </summary>
public class comm
{
private Process p = null;
public comm()
{
p = new Process();
}
/// <summary>
/// 执行CMD命令
/// </summary>
/// <param name="ProgramName">源文件</param>
/// <param name="cmd">需要执行的操作</param>
public void RunProgram( string FileName,string cmd)
{
Process proc = new Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "cmd.exe";
string str = "pdf2swf.exe " + FileName.Replace("'\'","'\\'")+" -o "+FileName.Replace(".pdf",".swf")+" -T9 -f";//这个是用户选择的路径 不能成功
string str1 ="pdf2swf.exe D:\\loading\\test.pdf -o D:\\loading\\test.swf -T9 -f";//写死的路径 可以成功
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
try
{
proc.Start();
if (cmd.Length != 0)
{
proc.StandardInput.WriteLine(cmd);
proc.StandardInput.WriteLine(str);
}
proc.Close();
MessageBox.Show("生成成功请关闭窗口");
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
}
}
}
4 个解决方案
#1
你确认一下选择的路径和你写死的路径有何不同,特别是路径中带空格的
#2
pdf2swf.exe D:\loading\test.pdf -o D:\loading\test.swf -T9 -f //这个选择的路径
pdf2swf.exe D:\loading\test.pdf -o D:\loading\test.swf -T9 -f //写死的路径
调试时候的结果没看出来 有什么不一样的...
#3
你选择后,给 D:\loading\test.pdf -o D:\loading\test.swf -T9 -f 加上引号试试
#4
我能很遗憾的说 不行吗...
#1
你确认一下选择的路径和你写死的路径有何不同,特别是路径中带空格的
#2
pdf2swf.exe D:\loading\test.pdf -o D:\loading\test.swf -T9 -f //这个选择的路径
pdf2swf.exe D:\loading\test.pdf -o D:\loading\test.swf -T9 -f //写死的路径
调试时候的结果没看出来 有什么不一样的...
#3
你选择后,给 D:\loading\test.pdf -o D:\loading\test.swf -T9 -f 加上引号试试
#4
我能很遗憾的说 不行吗...