Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在一个打印作业队列中打印多个Word文档_C#_Printing - Fatal编程技术网

C# 在一个打印作业队列中打印多个Word文档

C# 在一个打印作业队列中打印多个Word文档,c#,printing,C#,Printing,如何在一个打印作业队列中打印多个Word文档。。在c#中是否存在我可以将所有内容合并成一个并发送到打印机的情况?或者我们有包装类吗?我最终将文档附加到一个包装类中。。。下面是代码 public static void AppendDocFree() { object missing = System.Reflection.Missing.Value; bool lblnFirstDoc = false; Ap

如何在一个打印作业队列中打印多个Word文档。。在c#中是否存在我可以将所有内容合并成一个并发送到打印机的情况?或者我们有包装类吗?

我最终将文档附加到一个包装类中。。。下面是代码

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);
        }