Используйте следующую команду для фиксации его:
yum install openssl-devel
Я ненавижу отвечать на свои собственные вопрос, но решение смотрело мне прямо в лицо.
Поскольку я уже закодировал возможность печати накладной, моим следующим шагом было создание копии на экране (то есть отсутствие намерения печатать бумажную копию). Диалог предварительного просмотра печати казался легким выходом.
В конце концов, я просто создал настраиваемую форму и рисовал прямо на ней, не видя элемента управления предварительным просмотром печати.
К сожалению,
Это работает для меня:
Установите контроллер печати вашего документа на StandardPrintController
.
static class Program
{
static void Main()
{
PrintDocument doc = new PrintDocument();
doc.PrintController = new StandardPrintController();
doc.PrintPage += new PrintPageEventHandler(doc_PrintPage);
doc.Print();
}
static void doc_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawString("xxx", Control.DefaultFont, Brushes.Black, new PointF(e.PageBounds.Width / 2, e.PageBounds.Height / 2));
}
}
Возможно, вам повезет с PreviewPrintController вместо StandardPrintController.
]Обходной путь - использовать EnumChildWindows API для поиска дескриптора окна, и, если он найден, использовать ShowWindow API с флагом SW_HIDE, чтобы скрыть окно.
Вот пример пример использования FindWindow, если вы знаете заголовок окна:
#region Constants
private const int SW_HIDE = 0;
private const int SW_SHOWNORMAL = 1;
private const int SW_SHOW = 5;
#endregion Constants
#region APIs
[System.Runtime.InteropServices.DllImport("user32.dll", CharSet=System.Runtime.InteropServices.CharSet.Auto)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[System.Runtime.InteropServices.DllImport("user32.dll", CharSet=System.Runtime.InteropServices.CharSet.Auto)]
private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
[System.Runtime.InteropServices.DllImport("user32.dll", CharSet=System.Runtime.InteropServices.CharSet.Auto)]
private static extern bool EnableWindow(IntPtr hwnd, bool enabled);
#endregion APIs
public static void ShowProgress()
{
IntPtr h = FindWindow(null, "titleofprogresswindow");
ShowWindow(h, SW_SHOW);
EnableWindow(h, true);
}
public static void HideProgress()
{
IntPtr h = FindWindow(null, "titleofprogresswindow");
ShowWindow(h, SW_HIDE);
EnableWindow(h, false);
}