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