C#代码文件的屏幕截图

时间:2012-03-21 09:26:17

标签: c# vb.net visual-studio visual-studio-2010 visual-studio-2008

我想从visual studio单个文件中截取完整代码的屏幕截图。 有可能吗?

如果是,怎么样?

4 个答案:

答案 0 :(得分:2)

打印到类似PDF编写器的东西?或'Microsoft Office Document Image Writer'?

认为这是可行的方法。

答案 1 :(得分:2)

你可以试试这个

  
      
  1. 文件
  2.   
  3. 打印
  4.   
  5. 选择打印机名称为Microsoft XPS Document Writer
  6.   
  7. 按OK
  8.   

答案 2 :(得分:2)

要支持颜色,您可以将代码粘贴到一个巨大的RichTextBox(或使用NumericUpDowns来控制宽度和高度的常规尺寸),并有一个按钮可以执行:

var bitmap = new Bitmap(this.richTextBox1.Width, this.richTextBox1.Height);
this.richTextBox1.DrawToBitmap(bitmap, new Rectangle(Point.Empty, bitmap.Size));
bitmap.Save("code.bmp");

旧版(不支持颜色):

var allCode = "...copy all of the code into here";
var font = new Font("Arial", 13);
SizeF size;

using (var g = Graphics.FromImage(new Bitmap(1, 1)))
{
    size = g.MeasureString(allCode, font);
}

var bitmap = new Bitmap((int)size.Width + 20, (int)size.Height + 20);

using (var g = Graphics.FromImage(bitmap))
{
    g.DrawString(allCode, font, Brushes.Black, 10, 10);
}

bitmap.Save("code.bmp");

答案 3 :(得分:0)

您可以使用此:

Bitmap BmpScreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics ScreenShot = Graphics.FromImage(BmpScreen);
ScreenShot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
string file = "C:\\test.jpg";
BmpScreen.Save(file, System.Drawing.Imaging.ImageFormat.Png);

是必需的:using System.Drawing;