Изменение настроек принтера по умолчанию из C # - PullRequest
3 голосов
/ 17 июля 2009

Вот моя ситуация:

  • Я разрабатываю надстройку C # для сторонней программы
  • Эта программа (Revit) использует свои собственные методы печати и предоставляет их через свой API
  • Я пишу утилиту печати, которая использует эти методы для печати в разных местах, включая принтер PDF
  • Я использую PDF995 в качестве принтера и изменяю его файл .ini для его автоматизации.
  • Обычно я вызываю метод print в API, который печатает активный чертеж на указанном принтере.

Моя проблема в том, что в PDF995, если вы переходите к настройкам печати в Windows, ориентация по умолчанию установлена ​​в «портрет». Мне нужен пейзаж. Кажется, что эти настройки переопределяют все, что я установил в Revit API, поэтому мне нужен способ изменения настроек Windows.

Я пробовал этот код:

PrintDocument printDocument = new PrintDocument();
printDocument.PrinterSettings.PrinterName = "PDF995";
printDocument.DefaultPageSettings.Landscape = true;

до вызова функции печати в API, но это не имеет значения. Я не вижу способа отредактировать pdf995 ini, чтобы установить эти настройки. Это настройки Windows, которые мне нужно переопределить.

Я видел в сети некоторый код C ++, который я могу вызвать для работы с принтерами, но не могу найти пример изменения настроек по умолчанию.

Кто-нибудь может указать мне правильное направление?

Ответы [ 2 ]

2 голосов
/ 17 июля 2009

У меня был хороший успех с использованием этих компонентов:

http://www.merrioncomputing.com/Download/PrintQueueWatch/index.htm http://printqueuewatch.codeplex.com/Wiki/View.aspx?title=Home

Эта коллекция предоставляет все возможные варианты печати. Он в основном сфокусирован на мониторинге очереди печати, но из памяти доступны опции для изменения настроек принтера и свойств задания.

0 голосов
/ 20 апреля 2017

Я думаю, что многие из настроек Autodesk.Revit.DB.PrintManager являются «заполнителями», но если принтер управляет этими настройками, значение, перенесенное в него Revit, игнорируется. Я попытался установить .PrintToFileName с полным путем, но создание PDF в BlueBeam все равно отправляет файл в MyDocuments, откуда я должен его скопировать. Вы пытались скопировать PDF995 в PDF995X (например) и изменить его так, чтобы он имел стандартное альбомное расположение (в то время как PDF995 сохраняет стандартное портретное)? Я использовал этот метод в прошлом, когда принтер настаивал на использовании сохраненных значений по умолчанию вместо запрошенных.

...