Я хочу напечатать файл .docx без вывода сообщений и выбрать лоток принтера.
Сначала я попытался распечатать файл .docx с помощью Microsoft.Office.Interop.Word. но слово открывается ...
После того, как я преобразовал файл .docx в изображение и распечатал его с ProcessStartInfo, но он показывает окно печати пользователю.
ProcessStartInfo info = new ProcessStartInfo(imageFilePath);
info.Verb = "Print";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(info);
Я попробовал другой метод, он печатает изображение молча, НО изображение размыто и неправильно масштабируется.
PrinterSettings settings = new PrinterSettings();
string defaultPrinter = settings.PrinterName;
FileInfo fileInfo = new FileInfo(imageFilePath);
PrintDocument pd = new PrintDocument();
pd.DocumentName = fileInfo.Name;
pd.PrintPage += (sender, args) =>
{
Image i = Image.FromFile(imageFilePath);
PrintPageEventArgs arguments = args;
System.Drawing.Rectangle m = new System.Drawing.Rectangle()
{
Y = 0,
X = 0,
Location = new System.Drawing.Point(0, 0),
Height = args.MarginBounds.Height,
Size = args.MarginBounds.Size,
Width = args.MarginBounds.Width
};
if ((double)i.Width / (double)i.Height > (double)m.Width / (double)m.Height)
{
m.Height = (int)((double)i.Height / (double)i.Width * (double)m.Width);
}
else
{
m.Width = (int)((double)i.Width / (double)i.Height * (double)m.Height);
}
args.Graphics.DrawImage(i, m);
};
pd.Print();
Так можно ли печатать .docx без вывода сообщений и выбрать лоток принтера?
Кто-нибудь сталкивался с такой же проблемой. Любая помощь в этом отношении. Заранее спасибо.