Печать документа из нескольких слов в одной очереди заданий на печать - PullRequest
0 голосов
/ 29 сентября 2010

Как мне распечатать несколько документов Word в одной очереди заданий на печать ... есть ли в c # все, что я могу объединить все в один и отправить его на принтер?или у нас есть какие-нибудь классы-обёртки?

1 Ответ

0 голосов
/ 02 октября 2010

я наконец закончил с добавлением документа в один ... вот код для этого ..

public static void AppendDocFree()
        {
            object missing = System.Reflection.Missing.Value;
            bool lblnFirstDoc = false;
            Application oWordApp = new Application();
            Range InsertRange = null;
            Document oWordDoc = null;
            foreach (string fileName in Directory.GetFiles(@"c:\temp\generated"))
            {
                object file = (object)fileName;
                if (!lblnFirstDoc)
                {
                    oWordDoc = oWordApp.Documents.Open(ref file, ref missing, ref missing,
                                                                ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
                                                                ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

                    lblnFirstDoc = true;
                }
                else
                {                    
                    //Collapses the range to the ending position.
                    object CollEnd = WdCollapseDirection.wdCollapseEnd;
                    InsertRange.Collapse(ref CollEnd);

                    Document InsertDocument = oWordApp.Documents.Open(ref file, ref missing, ref missing,
                       ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

                    Range range = InsertDocument.Content;
                    range.Copy();
                    InsertRange.Paste();

                    InsertDocument.Close(ref missing, ref missing, ref missing);                    
                }
                object DocumentEnd = oWordDoc.Content.End - 1;
                InsertRange = oWordDoc.Range(ref DocumentEnd, ref DocumentEnd);

                //This is important(if you unstand the above text)
                object wdSectionBreakN = WdBreakType.wdSectionBreakNextPage;
                InsertRange.InsertBreak(ref wdSectionBreakN);
            }

            oWordDoc.SaveAs(@"c:\temp\output.doc");
            oWordDoc.Close(ref missing, ref missing, ref missing);
            oWordApp.Quit(ref missing, ref missing, ref missing);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...