private Paragraph VlozVnorenySoubor(MainDocumentPart mainPart, string strSoubor, bool blnRelativniCesta) { ExternalRelationship er = null; if (blnRelativniCesta) { er = mainPart.AddExternalRelationship(csSubDocument, new System.Uri(strSoubor, System.UriKind.Relative)); } else { er = mainPart.AddExternalRelationship(csSubDocument, new System.Uri(strSoubor, System.UriKind.Absolute)); } string sId = er.Id; Paragraph p = new Paragraph(); ParagraphProperties pp = new ParagraphProperties(); SectionProperties s = new SectionProperties(); pp.Append(s); SubDocumentReference sdr = new SubDocumentReference() { Id = sId }; p.Append(pp); p.Append(sdr); return(p); }
public static void InsertTrackingURI(this WordprocessingDocument document, string url) { MainDocumentPart mainPart = document.MainDocumentPart; var uri = new System.Uri(url); var extRel = mainPart.AddExternalRelationship("http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", uri); var docProp = document.MainDocumentPart.Document.Descendants <DW.DocProperties>(); uint id; if (docProp.Count() == 0) { id = 0; } else { id = docProp.Max(element => element.Id.Value); } var element = GetPictureElement(extRel.Id, Guid.NewGuid().ToString(), id + 1, 0, 0); document.MainDocumentPart.Document.Body.AppendChild(new Paragraph(new Run(element))); }
/// <summary> /// Converts the DOTX to DOCX /// </summary> /// <returns>True or False (with an exception) if successful in converting the document</returns> private TemplateGenerationResult ConvertTemplate() { try { MemoryStream msFile = null; using (Stream sTemplate = File.Open(_templateFileName, FileMode.Open, FileAccess.Read)) { msFile = new MemoryStream((int)sTemplate.Length); sTemplate.CopyTo(msFile); msFile.Position = 0L; } using (WordprocessingDocument wpdFile = WordprocessingDocument.Open(msFile, true)) { wpdFile.ChangeDocumentType(WordprocessingDocumentType.Document); MainDocumentPart docPart = wpdFile.MainDocumentPart; docPart.AddExternalRelationship("http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate", new Uri(_templateFileName, UriKind.RelativeOrAbsolute)); docPart.Document.Save(); } // Flush the MemoryStream to the file File.WriteAllBytes(_targetFileName, msFile.ToArray()); msFile.Close(); return(new TemplateGenerationResult { Value = true }); } catch (Exception ex) { _log.Error(ex.Message.ToString(CultureInfo.InvariantCulture), ex.GetBaseException()); //System.IO.File.AppendAllText(@"c:\temp\errors.txt", "In DocumentGeneration::convertTemplate(): " + ex.Message.ToString(CultureInfo.InvariantCulture)); return(new TemplateGenerationResult { Value = false, Exception = "DocumentGeneration::convertTemplate() - " + ex.ToString() }); } }