【问题标题】:How to save drawing to PrintDocument Item on My.Settings?如何将绘图保存到 My.Settings 上的 PrintDocument 项?
【发布时间】:2017-10-30 01:12:06
【问题描述】:

有什么方法可以在My.Settings中的System.Drawings.Printing.PrintDocument项上绘制,我们将其命名为LastDocument

我发现我们可以在申请表上将其设置为与其他 PrintDocuments 相同的文档,这在这种情况下对我没有帮助。我想要的是,LastDocument 项应该保存我从我的申请表中选择的 PrintDocument 中的图纸并稍后检索它。

那么有什么方法可以做到这一点。

我发现一个部分解决方案是使用 John here 提到的方法将 PrintDocument 绘图作为图像保存到 My.Settings

【问题讨论】:

  • 你的建议实际上没有意义。 PrintDocument 确实包含绘图。您将需要按照您已经建议的方式进行操作,并使用相同的 Graphics 方法在 Image 上绘图,然后您可以简单地调用DrawImage 现在和以后打印,否则您将需要保存所有数据需要能够重现对Graphics 方法的所有相同调用,以便稍后再次生成相同的绘图。
  • 有什么方法可以保存位图或图像到 My.Settings?
  • 通常的做法是将Image保存到MemoryStream,从中获取Byte数组,然后调用Convert.ToBase64String获取String保存到My.Settings。这就是 Microsoft 在 XML 中存储图像的方式。然后,您可以执行相反的操作(Convert.FromBase64String,写入MemoryStreamImage.FromStream)以再次获取Image 对象。除了 base-64 位,click here 了解如何。
  • 请注意BitmapImage,因为Bitmap 类继承了Image 类。如果您调用Image.FromStream 或类似名称,并且数据表示位图图像,例如JPEG,那么创建的对象将是BitmapImage 是抽象的 (MustInherit) 所以你不能有一个不是更具体类型的 Image 对象。
  • 嘿@jmcilhinney 这对你来说可能是一个愚蠢的问题,但你能告诉我如何在 My.Setting 中保存 Byte 集合,因为我只能看到 Byte 而看不到 ByteCollection 或类似的东西.. ..

标签: vb.net printdocument my.settings


【解决方案1】:

感谢 jmcilhinney 的帮助。现在,当我根据您的指导解决了问题并为我解决了问题时,我决定写下我为解决问题所做的事情,以便未来的观众发现它很容易解决。

  1. 在“解决方案资源管理器”中双击“我的项目”并转到“设置”,添加具有某个名称的新项目,这里我将使用 LastDocument,“类型”为“字符串”。全部保存并关闭选项卡。

  2. 返回您要将图像保存到My.Settings.LastDocument 的表单并添加此行以将图像保存到My.Settings.LastDocument

    Dim mstream As New System.IO.MemoryStream pic.Image.Save(mstream, Imaging.ImageFormat.Png) Dim arrimage() As Byte = mstream.GetBuffer My.Settings.LastDocument = Convert.ToBase64String(arrimage)

  3. 现在要从设置中取回图片,请使用这个,

    Dim arrimage() As Byte = Convert.FromBase64String(My.Settings.LastDocument) Dim mstream As New System.IO.MemoryStream(arrimage) Dim GetLastImg As Bitmap = New Bitmap(System.Drawing.Image.FromStream(mstream)) pic.Image = GetLastImg

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    相关资源
    最近更新 更多