Как печатать .docx без вывода сообщений с помощью c #

Я хочу напечатать файл .docx в автоматическом режиме и иметь возможность выбрать лоток принтера.

Сначала я попытался распечатать .docx с помощью Microsoft.Office.Interop .Word, но слово открывается …

После того, как я преобразовал файл .docx в изображение и распечатал его с помощью ProcessStartInfo, но он показывает пользователю окно печати. ​​

  ProcessStartInfo info = new ProcessStartInfo (imageFilePath);  info.Verb = "Печать";  info.CreateNoWindow = true;  info.WindowStyle = ProcessWindowStyle.Hidden;  Process.Start (info);  

Я попробовал другой метод, он печатает изображение без звука, НО изображение размыто и не масштабируется правильно.

  Настройки PrinterSettings = новые PrinterSettings ();  строка defaultPrinter = settings.PrinterName;  FileInfo fileInfo = новый FileInfo (imageFilePath);  PrintDocument pd = новый PrintDocument ();  pd.DocumentName = fileInfo.Name;  pd.PrintPage + = (отправитель, аргументы) => {Изображение 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  . Ширина * (двойная) м. Ширина);  } else {m.Width = (int) ((двойной) i.Width/(двойной) i.Height * (двойной) m.Height);  } args.Graphics.DrawImage (i, m);  };  pd.Print ();  

Так можно ли печатать .docx в автоматическом режиме и с возможностью выбора лотка принтера?

кто-нибудь сталкивается с той же проблемой. Любая помощь в этом отношении. Заранее спасибо.


0

Я кое-что сделал очень похоже на это сам, но я никогда не просматривал документацию, если вы могли выбрать лоток. Я считаю, что они установлены на самом сервере печати (если вы его используете) и могли бы ссылаться на них, если ваше приложение имеет права доступа.

  string PrinterName = @  "\ Сервер  nameOfThePrinter";  ProcessStartInfo printProcessInfo = new ProcessStartInfo () {Verb = "PrintTo", CreateNoWindow = true, FileName = pdfFileName, Arguments = "" "+ PrinterName +"  "", WindowStyle = ProcessWindowStyle.Hidden};  Процесс printProcess = новый процесс ();  printProcess.StartInfo = printProcessInfo;  printProcess.Start ();  printProcess.WaitForInputIdle ();  printProcess.WaitForExit (10000);  если (printProcess.HasExited) {} ​​еще {printProcess.Kill ();  } return true;  

Кроме того, вы можете изучить эту статью здесь https://www.codeproject. ru/Tips/598424/How-to-Silently-Print-PDFs-using-Adobe-Reader-and

Ура!

Улучшить этот ответ
ответил 25 октября ’19 в 12:38
  • Это работает, но я не могу выбрать лоток принтера этим методом … — xqlimax Oct 25 ’19 в 13:33
  • Правильно. Я не знаю аргумента, необходимого для указания лотка для бумаги, что является проблемным случаем. Если вам нужен другой метод, посмотрите этот другой плакат stackoverflow.com/questions/8943312/… — Джим Чикконе, 25 октября 2019 г., 13:42
  • Спасибо за ссылку! Теперь я могу выбрать массив, даже если документ напечатан неправильно, это хороший прогресс! — xqlimax 25 окт. ’19 в 13:58
добавить комментарий |

Я сам сделал что-то очень похожее, но я никогда не просматривал документацию, если вы могли выбрать лоток. Я считаю, что они установлены на самом сервере печати (если вы его используете) и могли бы ссылаться на них, если ваше приложение имеет права доступа.

  string PrinterName = @  "\ Сервер  nameOfThePrinter";  ProcessStartInfo printProcessInfo = new ProcessStartInfo () {Verb = "PrintTo", CreateNoWindow = true, FileName = pdfFileName, Arguments = "" "+ PrinterName +"  "", WindowStyle = ProcessWindowStyle.Hidden};  Процесс printProcess = новый процесс ();  printProcess.StartInfo = printProcessInfo;  printProcess.Start ();  printProcess.WaitForInputIdle ();  printProcess.WaitForExit (10000);  если (printProcess.HasExited) {} ​​еще {printProcess.Kill ();  } return true;  

Кроме того, вы можете изучить эту статью здесь https://www.codeproject.com/Tips/598424/How-to-Silently-Print-PDFs -using-Adobe-Reader-and

Ура!


Я нашел решение, я не мог распечатать .docx без вывода сообщений, поэтому я преобразовал его как изображение .png раньше.

Ссылка для преобразования .docx в .png

Вот код для печати изображения:

  Настройки PrinterSettings = new PrinterSettings ();  строка PrinterName = settings.PrinterName; //установить размер бумаги PaperSize oPS = new PaperSize {RawKind = (int) PaperKind.A4}; //здесь выбираем лоток PaperSource oPSource = new PaperSource {RawKind = (int) PaperSourceKind.Upper};  PrintDocument printDoc = новый PrintDocument {PrinterSettings = настройки,}; //задаем здесь имя принтера, это принтер по умолчанию printDoc.PrinterSettings.PrinterName = PrinterName;  printDoc.DefaultPageSettings.PaperSize = oPS;  printDoc.DefaultPageSettings.PaperSource = oPSource;  printDoc. PrintPage + = new PrintPageEventHandler ((sender, args) => {System.Drawing.Image img = System.Drawing.Image.FromFile (imageFilePath); int printHeight = (int) printDoc.DefaultPageSettings.PrintableArea.Height; int printWidth = (  int) printDoc.DefaultPageSettings.PrintableArea.Width; int leftMargin = 0; int rightMargin = 0; args.Graphics.DrawImage (img, новый System.Drawing.Rectangle (leftMargin, rightMargin, printWidth, printHeight));});  printDoc.Print ();  printDoc.Dispose ();  


Как мне напечатать в файл .doc?

I ‘ Я использовал программы, которые добавляют PDF-принтер в меню печати, что позволяет мне вывести распечатанный документ в PDF-документ. Я бы хотел сделать то же самое, но выводить в формате .doc, docx или .rtf.

Я уже могу распечатать в PDF или XPS и преобразовать его в документ Word, но мне нужен одношаговый вариант. Для ясности меня интересует только использование меню печати для вывода в редактируемый файл doc/rtf. Как я могу этого добиться?

Я использую Microsoft Windows XP.


1

Попробуйте это:

  • LeadTools Eprinter:

С помощью LEADTOOLS ePrint вы можете распечатать свои документы, таблицы, брошюры и все, что можно распечатать, в любом из более чем 150 форматов файлов (PDF, DOC, TIFF, JPEG, BMP и др.). Это может быть выполняется с печатью на бумажном принтере или без нее. Это так же просто, как распечатать файл из любого приложения Windows!

LEADTOOLS ePrint устанавливается как драйвер принтера, что позволяет вам «печатать» ваш файл во многих форматах файлов изображений и документов, предлагаемых ePrint. . Вы можете не только распечатать и сохранить файл, но и использовать LEADTOOLS ePrint, чтобы отправить задание печати по электронной почте, а не по факсу, чтобы получатель мог наслаждаться качеством цветного изображения. Печатайте, конвертируйте, сохраняйте и отправляйте по электронной почте одновременно!

Улучшите этот ответ
ответил 24 августа ’12 в 17:35
  • 1
    Я не пробовал этот продукт, но в моих программах опыта которые пытаются печатать в форматы документов, действительно портят форматирование. Вы можете потратить больше времени на исправление документа, чем на то, чтобы сделать это вручную. — Keltari 24 авг., 2012 в 17:40
добавить комментарий |

Попробуйте это:

  • LeadTools Eprinter:

С помощью LEADTOOLS ePrint вы можете распечатать свои документы, электронные таблицы, брошюры, все, что можно распечатать, в любом из более чем 150 форматов файлов (PDF, DOC, TIFF, JPEG, BMP и другие). Это можно сделать как с печатью на бумажном принтере, так и без нее. Это так же просто, как распечатать файл из любого приложения Windows!

LEADTOOLS ePrint устанавливается как драйвер принтера, что позволяет вам «печатать» ваш файл во многих форматах файлов изображений и документов, предлагаемых ePrint. . Вы можете не только распечатать и сохранить файл, но и использовать LEADTOOLS ePrint, чтобы отправить задание печати по электронной почте, а не по факсу, чтобы получатель мог наслаждаться качеством цветного изображения. Печатайте, конвертируйте, сохраняйте и отправляйте по электронной почте одновременно!


0

Вы также можете использовать https://code-industry.net/imageprinterpro/Я нашел только платную версию, вдвое дешевле LeadTools

Дубликат: Как Чтобы распечатать любой документ/изображение в файл?

Улучшите этот ответ
отредактировано 20 марта ’17 в 10:04
Сообщество ♦
1
ответил 22 ноября 2015 в 0:05
  • OP хочет преобразовать файлы в формат .doc, а не в форматы изображений. Этот ответ бесполезен. — mrtsherman 04 окт. ’16 в 21:15
добавить комментарий |

Вы также можете использовать https://code-industry.net/imageprinterpro/Я нашел только платную версию, вдвое дешевле LeadTools

Дубликат: как распечатать любой документ/изображение в файл?


0

Я нашел этот инструмент, с помощью которого можно бесплатно распечатать 2 страницы. Неплохо, но шрифты получаются моноширинными:

http://www.bullzip.com/products/ptw/info.php

Улучшить этот ответ
ответил 01 июня ’17 в 07:32
добавить комментарий |

Я нашел этот инструмент, с помощью которого можно бесплатно распечатать 2 страницы. Это не плохо, но шрифты получаются моноширинными:

http://www.bullzip.com/products/ptw/info.php

Оцените статью
logicle.ru
Добавить комментарий