【问题标题】:How to insert Image object as picture in Word document如何在 Word 文档中将 Image 对象作为图片插入
【发布时间】:2013-05-08 11:07:53
【问题描述】:

所以我有这个函数来生成和返回我的图像(.bmp 格式)。我想把它放到一个word文档中。我查看了InlineShapes.AddPicture,但它只需要一个string 参数,这需要我物理保存图片,然后将图片的路径作为参数提供给AddPicture,这是我不想要的。我想生成图片并直接存储它,而我需要一个带有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;
        }

【问题讨论】:

  • this function...??显示您拥有的代码。其次,你的意思是你有没有保存的图片?你在哪里买的??
  • 对不起。我做了一个编辑。 :)

标签: vb.net image vb6 ms-word


【解决方案1】:

如果你已经设置了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 文档中排列的位置(表格/单元格/等)

【讨论】:

  • 我可能还会在最后清除剪贴板;在自动化活动中留下中间工件是不礼貌的。
【解决方案2】:

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

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

祝你好运!

【讨论】:

  • 这对我有用,只是提到AddPicture()方法需要图像位置的字符串参数,例如AddPicture("d:\logo.png")
【解决方案3】:

我使用以下变量:

Public oDoct As Microsoft.Office.Interop.Word.Document
Public oTable As Microsoft.Office.Interop.Word.Table

我做的是这样的:

1) 我在 Form1 的 PictureBox (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)

请注意,表格将包含在标题中,并且我添加了一个书签(“mHeader”),但这不是必需的。我这样做是因为我希望我的图像作为标题。

3) 我在表格中为图片添加了一个书签

oTable.Cell(1, 1).Range.Bookmarks.Add("hPicture_c11")

4) 然后将图片复制到剪贴板中

Clipboard.SetImage(Form1.pict1.Image)

5) 最后将图片粘贴到表格内

oTable.Cell(1, 1).Range.Bookmarks.Item("hPicture_c11").Range.Paste()

“hPicture_c11”书签不是强制性的。如果您只想插入图片,请使用以下代码:

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

最后一件事:检查图片的尺寸。即使将其插入到文档中,也可以将其视为任何图像,但如果它太大,您可能需要在 Word 中调整其大小

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多