首先什麼是DDE呢.我自已也不是很了解

在.NET要使用DDE要先去抓一下Library→.NET DDE library on CodePlex

這個範例主要功能是:

1.選一個PDF or Excel檔會自動開啓對應的執行檔(Adobe Reader or Microsoft Office Excel Viewer)

2.執行列印動作

3.自動關閉(Adobe Reader or Microsoft Office Excel Viewer)

C#(WinForm)

 

using System;

using System.Diagnostics;

using System.Windows.Forms;

using NDde;//記得先加入參考NDde.dll

using NDde.Client;

 

namespace WinFormCSharp

{

    public partial class FrmDDE : Form

    {

        public FrmDDE()

        {

            InitializeComponent();

        }

 

        //PDF

        private void bntPDF_Click(object sender, EventArgs e)

        {

            DdeClient client = new DdeClient("Acroview", "Control");

 

            bool tryStart = false;

            bool connected = false;

            do

            {

                try

                {

                    client.Connect();

                    connected = true;

                }

                catch (DdeException)

                {

                    System.Diagnostics.Process p = new System.Diagnostics.Process();

                    p.StartInfo.FileName = "AcroRd32.exe";

                    p.Start();

                    p.WaitForInputIdle();

                    tryStart = !tryStart;

                }

            } while (tryStart && !connected);

 

            if (connected)

            {

                try

                {

                    client.Execute("[DocOpen(\"C:\\Users\\Puma\\Desktop\\a.pdf\")]", 60000);

                    client.Execute("[FilePrintSilent(\"C:\\Users\\Puma\\Desktop\\a.pdf\")]", 60000);

                    client.Execute("[DocClose(\"C:\\Users\\Puma\\Desktop\\a.pdf\")]", 60000);

                    client.Execute("[AppExit()]", 60000);

                }

                catch (Exception ex)

                {

                }

            }

        }

 

        //Excel

        private void btnExcel_Click(object sender, EventArgs e)

        {

            DdeClient client = new DdeClient("Excel", "system");

 

            bool tryStart = false;

            bool connected = false;

            do

            {

                try

                {

                    client.Connect();

                    connected = true;

                }

                catch (DdeException)

                {

                    ProcessStartInfo info = new ProcessStartInfo(@"C:\Program Files\Microsoft Office\Office12\XLVIEW.exe");

                    info.WindowStyle = ProcessWindowStyle.Minimized;

                    info.UseShellExecute = true;

                    info.Arguments = "C:\\Users\\Puma\\Desktop\\a.xlsx";

                    System.Diagnostics.Process p = Process.Start(info);

                    p.WaitForInputIdle();

                    tryStart = !tryStart;

                }

            } while (tryStart && !connected);

 

            if (connected)

            {

                try

                {

                    client.Execute("[Open(\"C:\\Users\\Puma\\Desktop\\a.xlsx\")]", 60000);

                    client.Execute("[Print()]", 60000);

                    client.Execute("[Close()]", 60000);

                    client.Execute("[Quit()]", 60000);

                }

                catch (Exception ex)

                {

                }

            }

        }

    }

}

 

參考網址:
http://vidmar.net/weblog/archive/2008/04/14/printing-pdf-documents-in-c.aspx

arrow
arrow
    全站熱搜

    Big Bear 發表在 痞客邦 留言(0) 人氣()