【发布时间】: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,写入MemoryStream,Image.FromStream)以再次获取Image对象。除了 base-64 位,click here 了解如何。 -
请注意
Bitmap是Image,因为Bitmap类继承了Image类。如果您调用Image.FromStream或类似名称,并且数据表示位图图像,例如JPEG,那么创建的对象将是Bitmap。Image是抽象的 (MustInherit) 所以你不能有一个不是更具体类型的Image对象。 -
嘿@jmcilhinney 这对你来说可能是一个愚蠢的问题,但你能告诉我如何在 My.Setting 中保存 Byte 集合,因为我只能看到 Byte 而看不到 ByteCollection 或类似的东西.. ..
标签: vb.net printdocument my.settings