所以我有这个功能,我正在生成并返回我的图像(.bmp格式)。我想把它写成word文档。我查看InlineShapes.AddPicture
但它只需要一个string
参数,这需要我在物理上保存图片,然后将图片的路径作为参数添加到AddPicture中,这是我不想要的。我想生成pic并直接存储它,而我需要一个带Image
参数的方法。
P.S。创建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;
}
答案 0 :(得分:4)
如果您已经设置了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文档(表格/单元格等)中进行排列的位置。
答案 1 :(得分:1)
此代码可帮助您通过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
祝你好运!
答案 2 :(得分:0)
我使用以下变量:
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中调整大小