Beispiel #1
0
        public void GetPdwrInformation(string key)
        {
            ManagerProfile mgrPro   = Wkl.MainCtrl.ManagerCtrl.GetProfile(key);
            PdwrInfo       pdwrInfo = new PdwrInfo();

            foreach (CustomXMLPart xmlPart in CommonProfile.ActiveDoc.CustomXMLParts)
            {
                string content = xmlPart.XML;
                try
                {
                    XmlObject xmlObject = ObjectSerializeHelper.Deserialize <XmlObject>(content);
                    switch (xmlObject.ContentType)
                    {
                    case ContentType.PdwrSettings:
                        pdwrInfo.SettingString = xmlObject.Content;
                        break;

                    case ContentType.PdwrXml:
                        pdwrInfo.XmlString = xmlObject.Content;
                        break;

                    case ContentType.PdwrXsl:
                        pdwrInfo.XsltString = xmlObject.Content;
                        break;

                    case ContentType.PdeContent:
                        pdwrInfo.PdeContent = xmlObject.Content;
                        break;

                    default:
                        break;
                    }
                }
                catch { }
            }

            mgrPro.PdwrInfo = pdwrInfo;
        }
Beispiel #2
0
        /// <summary>
        /// Oen pdwr file
        /// </summary>
        /// <param name="Doc"></param>
        public void OpenPdwr(Document Doc, ref List <string> tempFiles)
        {
            // get pdwr info
            string mgrKey = string.Empty;
            string srvKey = string.Empty;

            ServicesProfile srvPro = Wkl.MainCtrl.ServiceCtrl.CreateProfile(out srvKey);

            mainManager.MainService.PropertyService.GetPdwrInfos(srvKey);
            PdwrInfo pdwrInfo = srvPro.IntegrationService.PdwrInfo;

            // translate pdwr
            // if (!string.IsNullOrEmpty(pdwrInfo.XmlString) && !string.IsNullOrEmpty(pdwrInfo.XsltString))
            if (!string.IsNullOrEmpty(pdwrInfo.XmlString))
            {
                string folderPath = AssetManager.FileAdapter.TemporaryFolderPath;
                string fileName   = System.Guid.NewGuid().ToString();

                string xmlFilePath = string.Format("{0}\\{1}{2}", folderPath, fileName, FileExtension.Xml); // mwxml
                string xslFilePath = string.Format("{0}\\{1}{2}", folderPath, fileName, FileExtension.Xsl);

                FileHelper.CreateFile(xmlFilePath, pdwrInfo.XmlString);
                tempFiles.Add(xmlFilePath);
                if (!string.IsNullOrWhiteSpace(pdwrInfo.XsltString)) // support old file
                {
                    FileHelper.CreateFile(xslFilePath, pdwrInfo.XsltString);
                    tempFiles.Add(xslFilePath);
                }

                Document newDoc = null;
                if (!string.IsNullOrWhiteSpace(pdwrInfo.XsltString)) // support old file
                {
                    newDoc = Wkl.MainCtrl.CommonCtrl.CommonProfile.App.Documents.Open(
                        FileName: xmlFilePath,
                        Format: WdOpenFormat.wdOpenFormatXML,
                        XMLTransform: xslFilePath);
                }
                else
                {
                    newDoc = Wkl.MainCtrl.CommonCtrl.CommonProfile.App.Documents.Open(
                        FileName: xmlFilePath, Format: WdOpenFormat.wdOpenFormatXML);
                }
                Wkl.MainCtrl.CommonCtrl.CommonProfile.App.ScreenUpdating = true;
                newDoc.ActiveWindow.View.Type = WdViewType.wdPrintView;

                // update pde
                if (!string.IsNullOrWhiteSpace(pdwrInfo.PdeContent))
                {
                    PdeContent    pdeContent = ObjectSerializeHelper.Deserialize <PdeContent>(pdwrInfo.PdeContent);
                    List <string> excelFiles = mainManager.MainService.PropertyService.RenderPdeInPdw(newDoc, pdeContent);
                    tempFiles.AddRange(excelFiles);
                }
                newDoc.Save();

                #region process RenderSetting
                if (!string.IsNullOrEmpty(pdwrInfo.SettingString))
                {
                    RenderSettings renderSetting = ObjectSerializeHelper.Deserialize <RenderSettings>(pdwrInfo.SettingString);
                    if (renderSetting != null)
                    {
                        switch (renderSetting.Channel)
                        {
                            #region Media = Display
                        case RenderSettings.ChannelType.Display:
                            switch (renderSetting.Media)
                            {
                            case RenderSettings.MediaType.Pdf:
                                newDoc.ExportAsFixedFormat(Path.ChangeExtension(xmlFilePath, FileExtension.PdfNoDot),
                                                           WdExportFormat.wdExportFormatPDF, true);
                                ((_Document)newDoc).Close();
                                break;

                            case RenderSettings.MediaType.Xps:
                                newDoc.ExportAsFixedFormat(Path.ChangeExtension(xmlFilePath, FileExtension.XpsNoDot),
                                                           WdExportFormat.wdExportFormatXPS, true);
                                ((_Document)newDoc).Close();
                                break;

                            default:
                                break;
                            }
                            break;

                            #endregion
                            #region Media = Email, Media = Attachment
                        case RenderSettings.ChannelType.Email:
                        case RenderSettings.ChannelType.Attachment:
                            MailHelper.SendEmail(newDoc, renderSetting, ref tempFiles);
                            break;

                            #endregion
                            #region Media = Fax
                        case RenderSettings.ChannelType.Fax:
                            Wkl.MainCtrl.CommonCtrl.CommonProfile.App.CommandBars.ExecuteMso(
                                Constants.SendInternetFax);
                            break;

                            #endregion
                        default:
                            break;
                        }
                    }
                }

                #endregion
            }
        }