खोज…


परिचय

OpenXml का उपयोग करते हुए एक शब्द दस्तावेज़ में एक छवि सम्मिलित करने के लिए दो कार्यों की आवश्यकता होती है: Openxml के अंदर छवि जोड़ें और दस्तावेज़ में छवि का संदर्भ लें

टिप्पणियों

यदि आप केवल Word दस्तावेज़ में इसे संदर्भित किए बिना छवि को Openxml संरचना में जोड़ते हैं, तो अगली बार जब आप अपने दस्तावेज़ को "खोलें / सहेजें", तो छवि फ़ाइल हटा दी जाएगी।

Word सभी अनाथ संदर्भ हटाएं। इसलिए Word दस्तावेज़ में छवि जोड़ना सुनिश्चित करें अन्यथा आपको सभी चरणों को फिर से करना होगा।

OpenXml संरचना में छवि जोड़ें

private string AddGraph(WordprocessingDocument wpd, string filepath)
{
    ImagePart ip = wpd.MainDocumentPart.AddImagePart(ImagePartType.Jpeg);
    using (FileStream fs = new FileStream(filepath, FileMode.Open))
    {
        if (fs.Length == 0) return string.Empty;
        ip.FeedData(fs);
    }

    return wpd.MainDocumentPart.GetIdOfPart(ip);
}

इस मामले में हम छवि को पुनः प्राप्त करने के लिए एक फाइलस्ट्रीम का उपयोग करते हैं, लेकिन फीडडेटा (स्ट्रीम) किसी भी प्रकार की स्ट्रीम की प्रतीक्षा कर रहा है।

Word दस्तावेज़ में छवि देखें

private void InsertImage(WordprocessingDocument wpd, OpenXmlElement parent, string filepath)
{
    string relationId = AddGraph(wpd, filepath);
    if (!string.IsNullOrEmpty(relationId))
    {
        Size size = new Size(800, 600);

        Int64Value width = size.Width * 9525;
        Int64Value height = size.Height * 9525;

        var draw = new Drawing(
            new DW.Inline(
                new DW.Extent() { Cx = width, Cy = height },
                new DW.EffectExtent()
                {
                    LeftEdge = 0L,
                    TopEdge = 0L,
                    RightEdge = 0L,
                    BottomEdge = 0L
                },
                new DW.DocProperties()
                {
                    Id = (UInt32Value)1U,
                    Name = "my image name"
                },
                new DW.NonVisualGraphicFrameDrawingProperties(new A.GraphicFrameLocks() { NoChangeAspect = true }),
                new A.Graphic(
                    new A.GraphicData(
                        new PIC.Picture(
                            new PIC.NonVisualPictureProperties(
                                new PIC.NonVisualDrawingProperties()
                                {
                                    Id = (UInt32Value)0U,
                                    Name = relationId
                                },
                                new PIC.NonVisualPictureDrawingProperties()),
                                new PIC.BlipFill(
                                    new A.Blip(
                                        new A.BlipExtensionList(
                                            new A.BlipExtension() { Uri = "{28A0092B-C50C-407E-A947-70E740481C1C}" })
                                        )
                                    {
                                        Embed = relationId,
                                        CompressionState =
                                        A.BlipCompressionValues.Print
                                    },
                                        new A.Stretch(
                                            new A.FillRectangle())),
                                            new PIC.ShapeProperties(
                                                new A.Transform2D(
                                                    new A.Offset() { X = 0L, Y = 0L },
                                                    new A.Extents() { Cx = width, Cy = height }),
                                                    new A.PresetGeometry(new A.AdjustValueList()) { Preset = A.ShapeTypeValues.Rectangle }))) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" })
                                                    )
            {
                DistanceFromTop = (UInt32Value)0U,
                DistanceFromBottom = (UInt32Value)0U,
                DistanceFromLeft = (UInt32Value)0U,
                DistanceFromRight = (UInt32Value)0U,
                EditId = "50D07946"
            });

        parent.Append(draw);
    }
}

इस उदाहरण में मैंने 600०० * ६०० का स्थैतिक आकार निर्धारित किया है, लेकिन आप किसी भी आकार की आवश्यकता कर सकते हैं



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow