Udprintning af en transparent farve
Jeg har et ret irriterende problem, der er let at genskabe. Sagen er dem at jeg gerne vil printe et rektangel ud med en transparent farve. Jeg kan sagtens vise det rigtigt på skærmen, men når jeg printer det ud går det galt.Jeg har lavet et meget simpelt lille testprojekt der viser problemet.
Det jeg i bund og grund gør er, at sætte hvor meget farven skal være transparent vha. Color.FromArgb(50, Color.Red);
Det virker som sagt perfekt når man ser det på skærmen, men går galt når man efterfølgende printer det ud.
Følgende burde kunne smides ind på en form og afvikles, man skal dog lige tilføje en knap til formen.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;
namespace printingTransparent
{
public partial class Form1 : Form
{
private PrintDocument m_PrintDocument;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
m_PrintDocument = new PrintDocument();
m_PrintDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
}
void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
DrawTransperantRect(e.Graphics);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
DrawTransperantRect(e.Graphics);
}
private void DrawTransperantRect(Graphics g)
{
Color color = Color.FromArgb(50, Color.Red);
SolidBrush sb = new SolidBrush(color);
g.FillRectangle(sb, 10, 10, 200, 200);
}
private void button1_Click(object sender, EventArgs e)
{
m_PrintDocument.Print();
}
}
}