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);
        }
コード例 #3
0
        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());
            }
        }
コード例 #4
0
 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;
 }
コード例 #5
0
        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());
            }
        }
コード例 #7
0
        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);
        }