public void SaveDocument(GenerationData data, string filePath, string fileName) { using (var mem = new MemoryStream()) { // Create Document using (var wordDocument = WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true)) { // Add a main document part. var mainPart = wordDocument.AddMainDocumentPart(); var imagePart = mainPart.AddImagePart(ImagePartType.Jpeg); using (var stream = new FileStream(@"C:\Users\KRUROL\Downloads\Testa Amrop CV_eng - Copy\word\media\image1.jpeg", FileMode.Open)) { imagePart.FeedData(stream); } // Create the document structure and add some text. mainPart.Document = FillDocumentFromData(data, mainPart.GetIdOfPart(imagePart)); } mem.Position = 0; using (var file = new FileStream($"{filePath}\\{fileName}", FileMode.CreateNew, FileAccess.Write)) { mem.CopyTo(file); } } }
private static Document FillDocumentFromData(GenerationData data, string pictureRelationshipId) { var document = new Document(); var body = new Body(); FillHeaderTable(body, pictureRelationshipId, data); document.AppendChild(body); return(document); }
public byte[] GetDocument(GenerationData data) { using (var mem = new MemoryStream()) { using (var package = WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true)) { CreateParts(package, data); } return(mem.ToArray()); } }
private static void SetPackageProperties(OpenXmlPackage document, GenerationData data) { document.PackageProperties.Creator = data.DocumentProperties.Creator; document.PackageProperties.Title = data.DocumentProperties.Title; document.PackageProperties.Subject = data.DocumentProperties.Subject; document.PackageProperties.Category = data.DocumentProperties.Category; document.PackageProperties.Keywords = data.DocumentProperties.Keywords; document.PackageProperties.Description = data.DocumentProperties.Description; document.PackageProperties.Revision = "1"; document.PackageProperties.Created = DateTime.Now; document.PackageProperties.Modified = DateTime.Now; document.PackageProperties.LastModifiedBy = data.DocumentProperties.Creator; }
public void SaveDocument(GenerationData data, string filePath, string fileName) { using (var mem = new MemoryStream()) { using (var package = WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true)) { CreateParts(package, data); } mem.Position = 0; using (var file = new FileStream($"{filePath}\\{fileName}", FileMode.CreateNew, FileAccess.Write)) { mem.CopyTo(file); } } }
public byte[] GetDocument(GenerationData data) { using (var mem = new MemoryStream()) { // Create Document using (var wordDocument = WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true)) { // Add a main document part. var mainPart = wordDocument.AddMainDocumentPart(); var imagePart = mainPart.AddImagePart(ImagePartType.Jpeg); using (var stream = new FileStream(@"C:\Users\KRUROL\Downloads\Testa Amrop CV_eng - Copy\word\media\image1.jpeg", FileMode.Open)) { imagePart.FeedData(stream); } // Create the document structure and add some text. mainPart.Document = FillDocumentFromData(data, mainPart.GetIdOfPart(imagePart)); } return(mem.ToArray()); } }
private static void CreateParts(WordprocessingDocument document, GenerationData data) { //ExtendedFilePropertiesPart extendedFilePropertiesPart1 = document.AddNewPart<ExtendedFilePropertiesPart>("rId3"); //ExtendedFilePropertiesPartHelper.GenerateExtendedFilePropertiesPart1Content(extendedFilePropertiesPart1); var mainDocumentPart1 = document.AddMainDocumentPart(); MainDocumentPartHelper.GenerateMainDocumentPart1Content(mainDocumentPart1, data); var endnotesPart1 = mainDocumentPart1.AddNewPart <EndnotesPart>("rId8"); EndnotesPartHelper.GenerateEndnotesPart1Content(endnotesPart1); var footerPart1 = mainDocumentPart1.AddNewPart <FooterPart>("rId13"); FooterPartHelper.GenerateFooterPart1Content(footerPart1); var customXmlPart1 = mainDocumentPart1.AddNewPart <CustomXmlPart>("application/xml", "rId3"); CustomXmlPartHelper.GenerateCustomXmlPart1Content(customXmlPart1); var customXmlPropertiesPart1 = customXmlPart1.AddNewPart <CustomXmlPropertiesPart>("rId1"); CustomXmlPartHelper.GenerateCustomXmlPropertiesPart1Content(customXmlPropertiesPart1); var footnotesPart1 = mainDocumentPart1.AddNewPart <FootnotesPart>("rId7"); FootnotesPartHelper.GenerateFootnotesPart1Content(footnotesPart1); var headerPart1 = mainDocumentPart1.AddNewPart <HeaderPart>("rId12"); HeaderPartHelper.GenerateHeaderPart1Content(headerPart1, data); var customXmlPart2 = mainDocumentPart1.AddNewPart <CustomXmlPart>("application/xml", "rId2"); CustomXmlPartHelper.GenerateCustomXmlPart2Content(customXmlPart2); var customXmlPropertiesPart2 = customXmlPart2.AddNewPart <CustomXmlPropertiesPart>("rId1"); CustomXmlPartHelper.GenerateCustomXmlPropertiesPart2Content(customXmlPropertiesPart2); var numberingDefinitionsPart1 = mainDocumentPart1.AddNewPart <NumberingDefinitionsPart>("rId20"); NumberingDefinitionsPartHelper.GenerateNumberingDefinitionsPart1Content(numberingDefinitionsPart1); var themePart1 = mainDocumentPart1.AddNewPart <ThemePart>("rId16"); ThemePartHelper.GenerateThemePart1Content(themePart1); var customXmlPart3 = mainDocumentPart1.AddNewPart <CustomXmlPart>("application/xml", "rId1"); CustomXmlPartHelper.GenerateCustomXmlPart3Content(customXmlPart3); var customXmlPropertiesPart3 = customXmlPart3.AddNewPart <CustomXmlPropertiesPart>("rId1"); CustomXmlPartHelper.GenerateCustomXmlPropertiesPart3Content(customXmlPropertiesPart3); var webSettingsPart1 = mainDocumentPart1.AddNewPart <WebSettingsPart>("rId6"); WebSettingsPartHelper.GenerateWebSettingsPart1Content(webSettingsPart1); var imagePart1 = mainDocumentPart1.AddNewPart <ImagePart>("image/png", "rId11"); ImagePartHelper.GenerateImagePart1Content(imagePart1); var documentSettingsPart1 = mainDocumentPart1.AddNewPart <DocumentSettingsPart>("rId5"); DocumentSettingsPartHelper.GenerateDocumentSettingsPart1Content(documentSettingsPart1); var fontTablePart1 = mainDocumentPart1.AddNewPart <FontTablePart>("rId15"); FontTablePartHelper.GenerateFontTablePart1Content(fontTablePart1); var imagePart2 = mainDocumentPart1.AddNewPart <ImagePart>("image/png", "rId10"); ImagePartHelper.GenerateImagePart2Content(imagePart2); var styleDefinitionsPart1 = mainDocumentPart1.AddNewPart <StyleDefinitionsPart>("rId4"); StyleDefinitionsPartHelper.GenerateStyleDefinitionsPart1Content(styleDefinitionsPart1); var imagePart3 = mainDocumentPart1.AddNewPart <ImagePart>("image/jpeg", "rId9"); ImagePartHelper.GenerateImagePart3Content(imagePart3); var headerPart2 = mainDocumentPart1.AddNewPart <HeaderPart>("rId14"); HeaderPartHelper.GenerateHeaderPart2Content(headerPart2); var customFilePropertiesPart1 = document.AddNewPart <CustomFilePropertiesPart>("rId4"); CustomFilePropertiesPartHelper.GenerateCustomFilePropertiesPart1Content(customFilePropertiesPart1); SetPackageProperties(document, data); }
private static void FillFourthTableRow(OpenXmlElement table, GenerationData data) { var tableRow = new TableRow { TextId = HexBinaryValue.FromString("77777777"), ParagraphId = HexBinaryValue.FromString("0E828CE9"), RsidTableRowAddition = HexBinaryValue.FromString("009B2C1D") }; var tableCell1 = new TableCell { TableCellProperties = new TableCellProperties { TableCellWidth = new TableCellWidth { Width = StringValue.FromString("800"), Type = new EnumValue <TableWidthUnitValues> { Value = TableWidthUnitValues.Dxa } }, TableCellBorders = new TableCellBorders { TopBorder = new TopBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") }, LeftBorder = new LeftBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") }, BottomBorder = new BottomBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") }, RightBorder = new RightBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") } } } }; tableCell1.AppendChild(new Paragraph { ParagraphId = HexBinaryValue.FromString("7D33E7CB"), TextId = HexBinaryValue.FromString("77777777"), RsidParagraphAddition = HexBinaryValue.FromString("009B2C1D"), RsidRunAdditionDefault = HexBinaryValue.FromString("009B2C1D") }); tableRow.AppendChild(tableCell1); var tableCell2 = new TableCell { TableCellProperties = new TableCellProperties { TableCellWidth = new TableCellWidth { Width = StringValue.FromString("2550"), Type = new EnumValue <TableWidthUnitValues> { Value = TableWidthUnitValues.Dxa } }, TableCellBorders = new TableCellBorders { TopBorder = new TopBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") }, LeftBorder = new LeftBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") }, BottomBorder = new BottomBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") }, RightBorder = new RightBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") } } } }; tableCell2.AppendChild(new Paragraph { ParagraphId = HexBinaryValue.FromString("4B505573"), TextId = HexBinaryValue.FromString("77777777"), RsidParagraphAddition = HexBinaryValue.FromString("009B2C1D"), RsidRunAdditionDefault = HexBinaryValue.FromString("009B2C1D") }); tableRow.AppendChild(tableCell2); var tableCell3 = new TableCell { TableCellProperties = new TableCellProperties { TableCellWidth = new TableCellWidth { Width = StringValue.FromString("3825"), Type = new EnumValue <TableWidthUnitValues> { Value = TableWidthUnitValues.Dxa } }, TableCellBorders = new TableCellBorders { TopBorder = new TopBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") }, LeftBorder = new LeftBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") }, BottomBorder = new BottomBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") }, RightBorder = new RightBorder { Val = new EnumValue <BorderValues> { Value = BorderValues.Single }, Size = UInt32Value.FromUInt32(0), Space = UInt32Value.FromUInt32(0), Color = StringValue.FromString("FFFFFF") } }, Shading = new Shading { Val = new EnumValue <ShadingPatternValues> { Value = ShadingPatternValues.Clear }, Color = StringValue.FromString("auto"), Fill = StringValue.FromString("0069B4") }, TableCellVerticalAlignment = new TableCellVerticalAlignment { Val = new EnumValue <TableVerticalAlignmentValues> { Value = TableVerticalAlignmentValues.Center } } } }; tableCell3.AppendChild(new Paragraph(new Run(new DocumentFormat.OpenXml.Wordprocessing.Text(data.TitleArea.Title)) { RunProperties = new DocumentFormat.OpenXml.Wordprocessing.RunProperties { Color = new Color { Val = StringValue.FromString("FFFFFF") }, FontSize = new FontSize { Val = StringValue.FromString("18") }, FontSizeComplexScript = new FontSizeComplexScript { Val = StringValue.FromString("18") } } }) { ParagraphId = HexBinaryValue.FromString("63EAFC9C"), TextId = HexBinaryValue.FromString("77777777"), RsidParagraphAddition = HexBinaryValue.FromString("009B2C1D"), RsidRunAdditionDefault = HexBinaryValue.FromString("009E39C2"), ParagraphProperties = new DocumentFormat.OpenXml.Wordprocessing.ParagraphProperties { SpacingBetweenLines = new SpacingBetweenLines { Before = StringValue.FromString("550"), After = StringValue.FromString("800") }, Indentation = new Indentation { Left = StringValue.FromString("432") } } }); tableCell3.AppendChild(new Paragraph(new Run(new DocumentFormat.OpenXml.Wordprocessing.Text(data.TitleArea.Name)) { RunProperties = new DocumentFormat.OpenXml.Wordprocessing.RunProperties { Color = new Color { Val = StringValue.FromString("FFFFFF") }, FontSize = new FontSize { Val = StringValue.FromString("33") }, FontSizeComplexScript = new FontSizeComplexScript { Val = StringValue.FromString("33") } } }) { ParagraphId = HexBinaryValue.FromString("48E9D2B9"), TextId = HexBinaryValue.FromString("77777777"), RsidParagraphAddition = HexBinaryValue.FromString("009B2C1D"), RsidRunAdditionDefault = HexBinaryValue.FromString("0007641E"), ParagraphProperties = new DocumentFormat.OpenXml.Wordprocessing.ParagraphProperties { SpacingBetweenLines = new SpacingBetweenLines { After = StringValue.FromString("0") }, Indentation = new Indentation { Left = StringValue.FromString("432") } } }); tableCell3.AppendChild(new Paragraph(new Run(new DocumentFormat.OpenXml.Wordprocessing.Text(data.TitleArea.Date)) { RunProperties = new DocumentFormat.OpenXml.Wordprocessing.RunProperties { Color = new Color { Val = StringValue.FromString("FFFFFF") }, FontSize = new FontSize { Val = StringValue.FromString("18") }, FontSizeComplexScript = new FontSizeComplexScript { Val = StringValue.FromString("18") } } }) { ParagraphId = HexBinaryValue.FromString("4D45EC2E"), TextId = HexBinaryValue.FromString("77777777"), RsidParagraphAddition = HexBinaryValue.FromString("009B2C1D"), RsidRunAdditionDefault = HexBinaryValue.FromString("009E39C2"), ParagraphProperties = new DocumentFormat.OpenXml.Wordprocessing.ParagraphProperties { SpacingBetweenLines = new SpacingBetweenLines { Before = StringValue.FromString("800"), After = StringValue.FromString("550"), Line = StringValue.FromString("240"), LineRule = new EnumValue <LineSpacingRuleValues> { Value = LineSpacingRuleValues.Auto } }, Indentation = new Indentation { Left = StringValue.FromString("432") } } }); tableRow.AppendChild(tableCell3); table.AppendChild(tableRow); }
private static void FillHeaderTable(OpenXmlElement body, string pictureRelationshipId, GenerationData data) { var table = new Table(); FillHeaderTableProperties(table); FillHeaderTableGrid(table); FillFirstTableRow(table, pictureRelationshipId); FillSecondTableRow(table); FillThirdTableRow(table); FillFourthTableRow(table, data); body.AppendChild(table); }