コード例 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Mail Merge Server");
            string templateFileName;
            string outputFileName;

            switch (args.Length)
            {
            case 0:
                templateFileName = defaultTemplateFileName;
                outputFileName   = defaultOutputFileName;
                break;

            case 1:
                templateFileName = defaultTemplateFileName;
                outputFileName   = args[0];
                break;

            case 2:
                templateFileName = args[0];
                outputFileName   = args[1];
                break;

            default:
                throw new ArgumentException();
            }

            if (!File.Exists(templateFileName))
            {
                throw new FileNotFoundException("Template file not found", templateFileName);
            }
            Console.WriteLine("Template file: {0}", new FileInfo(templateFileName).FullName);
            Console.WriteLine("Target file:   {0}", new FileInfo(outputFileName).FullName);
            #region #ServerCode
            SnapDocumentServer server = new SnapDocumentServer();

            server.SnapMailMergeRecordStarted  += server_SnapMailMergeRecordStarted;
            server.SnapMailMergeRecordFinished += server_SnapMailMergeRecordFinished;

            server.LoadDocument(templateFileName);
            object dataSource = CreateDataSource();

            SnapMailMergeExportOptions options = server.Document.CreateSnapMailMergeExportOptions();
            options.DataSource = dataSource;
            Console.Write("Performing mail merge... ");
            server.SnapMailMerge(options, outputFileName, DocumentFormat.Rtf);
            #endregion #ServerCode
            Console.WriteLine("Ok!");
            Console.Write("Press any key...");
            Console.ReadKey();
            System.Diagnostics.Process.Start(outputFileName);
        }
コード例 #2
0
 static void Main(string[] args)
 {
     if (args.Length == 0)
     {
         #region #MainAction
         SnapDocumentServer snap     = new SnapDocumentServer();
         SnapDocument       document = snap.Document;
         XTemplateCreator.CreateMailMergeTemplate(document);
         snap.Options.SnapMailMergeVisualOptions.DataSource = XDataSourceHelper.GetData();
         snap.SnapMailMerge("test.pdf", SnapDocumentFormat.Pdf);
         #endregion #MainAction
         System.Diagnostics.Process.Start("test.pdf");
     }
     else if (args[0] == "UseListTemplate")
     {
         SnapDocumentServer snap     = new SnapDocumentServer();
         SnapDocument       document = snap.Document;
         XTemplateCreator.CreateSnListTemplate(document);
         document.DataSource = XDataSourceHelper.GetData();
         snap.ExportToPdf("test.pdf");
         System.Diagnostics.Process.Start("test.pdf");
     }
 }
コード例 #3
0
 public static void ShowPrintPreview(IDocumentData documentData, IObjectSpace objectSpace, CriteriaOperator inPlaceCriteria)
 {
     using (SnapDocumentServer server = new SnapDocumentServer()) {
         SnapDocumentHelper helper = new SnapDocumentHelper(documentData, objectSpace, null, inPlaceCriteria);
         helper.LoadDocument(server.Document);
         // Mail Merge
         if (server.Document.DataSources.Count == 1 && server.Options.SnapMailMergeVisualOptions.DataSource == server.Document.DataSources[0].DataSource)
         {
             using (MemoryStream stream = new MemoryStream()) {
                 server.SnapMailMerge(stream, SnapDocumentFormat.Snap);
                 stream.Flush();
                 stream.Seek(0, SeekOrigin.Begin);
                 server.LoadDocument(stream, SnapDocumentFormat.Snap);
             }
         }
         using (PrintingSystem ps = new PrintingSystem()) {
             PrintableComponentLink link = new PrintableComponentLink(ps);
             link.Component = server;
             link.CreateDocument();
             link.ShowPreviewDialog();
         }
     }
 }