Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何将图像对象作为图片插入Word文档_Vb.net_Image_Vb6_Ms Word - Fatal编程技术网

Vb.net 如何将图像对象作为图片插入Word文档

Vb.net 如何将图像对象作为图片插入Word文档,vb.net,image,vb6,ms-word,Vb.net,Image,Vb6,Ms Word,所以我有一个函数,在这里我生成并返回我的图像(一个.bmp格式)。我想把它放到word文档中。我查看了InlineShapes.AddPicture,但它只接受一个字符串参数,这要求我以物理方式保存图片,然后将图片的路径作为AddPicture的参数,这是我不想要的。我想生成pic并直接存储它,而我需要一个采用Image参数的方法 另外,创建Word文档、表格、决定将图片放入哪个单元格以及所有这些工作都完成了,我只需要插入图片 这是生成图片的代码,所以你可以看到,我只把它作为一个对象,但不把它物

所以我有一个函数,在这里我生成并返回我的图像(一个.bmp格式)。我想把它放到word文档中。我查看了InlineShapes.AddPicture,但它只接受一个
字符串
参数,这要求我以物理方式保存图片,然后将图片的路径作为AddPicture的参数,这是我不想要的。我想生成pic并直接存储它,而我需要一个采用
Image
参数的方法

另外,创建Word文档、表格、决定将图片放入哪个单元格以及所有这些工作都完成了,我只需要插入图片

这是生成图片的代码,所以你可以看到,我只把它作为一个对象,但不把它物理地存储在任何地方。这是用C#编写的,但我想用Word文档操作的地方是用VB.NET编写的

Bitmap picture = new Bitmap(100, 100);

        // generates a QRcode image and returns it
        public Image generateQRcodeImage(string textValue)
        {
            QrEncoder encoder = new QrEncoder(ErrorCorrectionLevel.M);
            QrCode qrCode;
            encoder.TryEncode(textValue, out qrCode);

            using (Graphics graph = Graphics.FromImage(picture))
            {
                new GraphicsRenderer(new FixedCodeSize(100, QuietZoneModules.Two)).Draw(graph, qrCode.Matrix);
            }

            return picture;
        }

如果您已经设置了Word文档的创建和打开,并且根据您提供的功能,我想您唯一要做的就是:

    Dim rng As Word.Range = oDoc.Range(int1, int2)

    Dim img As Image = qrGen.generateQRcodeImage("desiredInfoToEncloseInQRcode")
    Clipboard.SetImage(img)
    rng.Paste()
其中
qrGen
当然是实现
generateQRcodeImage()
函数的类的对象。
您还必须将此代码放在word文档(表格/单元格等)中您希望排列的位置。

此代码可帮助您通过vb.net将图片插入ms word:

Dim word_app As Word._Application = New  _
Word.ApplicationClass()

  ' Create the Word document.
Dim word_doc As Word._Document = _
word_app.Documents.Add()

Dim para As Word.Paragraph = word_doc.Paragraphs.Add()
para.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter
para.Range.InlineShapes.AddPicture(YOURPATHPICTURE)
para.Range.InsertParagraphAfter()
别忘了导入库

Imports Microsoft.Office.Interop

祝你好运

我使用以下变量:

Public oDoct As Microsoft.Office.Interop.Word.Document
Public oTable As Microsoft.Office.Interop.Word.Table
我所做的是:

1) 我在表格1的图片盒(pict1)中有我想要的图片/图像

2) 因为我想把它放在一个表中,所以我创建了这个表

oDoct.Sections(1).Headers(1).Range.Bookmarks.Add("mHeader", )
oTable = oDoct.Tables.Add(oDoct.Sections(1).Headers(1).Range.Bookmarks.Item("mheader").Range,    2, 3)
oTable.Cell(1, 1).Range.Bookmarks.Item("hPicture_c11").Range.Paste()
请注意,表格将包含在标题中,我添加了一个书签(“mHeader”),但这不是必需的。我这样做是因为我希望我的图像作为标题

3) 我在桌子里为这张照片加了一个书签

oTable.Cell(1, 1).Range.Bookmarks.Add("hPicture_c11")
4) 然后将图片复制到剪贴板中

Clipboard.SetImage(Form1.pict1.Image)
5) 最后,将图片粘贴到表格中

oDoct.Sections(1).Headers(1).Range.Bookmarks.Add("mHeader", )
oTable = oDoct.Tables.Add(oDoct.Sections(1).Headers(1).Range.Bookmarks.Item("mheader").Range,    2, 3)
oTable.Cell(1, 1).Range.Bookmarks.Item("hPicture_c11").Range.Paste()
“hPicture_c11”书签不是强制性的。如果只想插入图片,请使用以下代码:

oDoct.Range.Bookmarks.Item("\endofdoc").Range.Paste()

最后一件事:检查图像的尺寸。即使将其插入文档后,可以将其视为任何图像,但如果它太大,您可能必须在Word中调整其大小。。。??显示您拥有的代码。第二,您有未保存的图片是什么意思?你在哪里?对不起。我做了一个编辑。:)我也可以在最后清除剪贴板;在自动化活动中留下中间工件是不礼貌的。这对我来说很有效,只要提到
AddPicture()
方法需要图像位置的字符串参数,例如
AddPicture(“d:\logo.png”)