Как получить повторяющиеся данные из строки Oracle, используя для этого уникальное регулярное выражение?

Ответ был довольно долгим после нескольких изменений, так что вот окончательный результат:

Установка свойства PageUnit объекта Graphics в GraphicsUnit.Pixel и принятие в умножении координат с значения DpiX и DpiY отображают ожидаемый результат как на устройствах отображения, так и на принтере.

private static void DrawInchLine(Graphics g, Color color, Point start, Point end)
{
    GraphicsUnit originalUnit = g.PageUnit;
    g.PageUnit = GraphicsUnit.Pixel;
    using (Pen pen = new Pen(color, 1))
    {
        g.DrawLine(pen,
            start.X * g.DpiX,
            start.Y * g.DpiY,
            end.X * g.DpiX,
            end.Y * g.DpiY);
    }
    g.PageUnit = originalUnit;
}

Вы можете нарисовать его на форме (или некотором контроле):

using (Graphics g = this.CreateGraphics())
{
    Point start = new Point(1, 1);
    Point end = new Point(2, 1);
    DrawInchLine(g, Color.Black, start, end);
}

... или отправить вывод на принтер:

PrintDialog dialog = new PrintDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
    PrintDocument pd = new PrintDocument();
    pd.PrinterSettings = dialog.PrinterSettings;
    pd.PrintPage += (psender, pe) =>
    {
        Point start = new Point(1, 1);
        Point end = new Point(2, 1);
        DrawInchLine(pe.Graphics, Color.Black, start, end);
        pe.HasMorePages = false;
    };

    pd.Print();
}

Это, однако, полагается на установку PageUnit.

0
задан Barbaros Özhan 18 January 2019 в 14:57
поделиться