Office.Interop.Word - Как распечатать документ с обеих сторон? - PullRequest
4 голосов
/ 27 февраля 2012

Я печатаю документы (пакетная печать), используя метод Word.Document.PrintOut.Как распечатать документ на обеих сторонах?

В интерфейсе MS Word это можно сделать с помощью Файл -> Печать -> Печать на обеих сторонах option.

Word 2010, C #, .NET 3.5


Большое спасибо Джону за его ответ (+1)!Вот результаты моего исследования:

  1. Я пошел по первому пути, который рекомендует Джон, нашел несколько дополнительных статей, таких как «классическая» статья о CodeProject ( Изменениенастройки принтера с использованием C # ) и нескольких других , полученных из него.В конце концов я получил скомпилированный код, который должен был установить свойство Duplex, но, как и многие другие «жертвы» этой статьи, этот код не работал:)
  2. После сбоя DocumentProperties API Я попытался выставить команды печати и получил следующие результаты:

    • Мой офисный принтер ( Kyocera FS-C5100 ) успешно напечатал документ с обеих сторон, НО сошел с ума и начал печатать каждый абзац на отдельном листе ...
    • Клиентский принтер ( Xerox 3600 ), видимо, был "не полностью HP-совместимым" и не печатал на обоихсторон вообще!

Так что мое расследование продолжается, и если у кого-то есть другие идеи - добро пожаловать!

Ответы [ 3 ]

2 голосов
/ 27 февраля 2012

Существует статья Microsoft KB по адресу HOWTO: настройка двусторонней печати для Word Automation , к сожалению, это не простое заданное вами свойство.Это код VB, но его довольно легко конвертировать в C #.

Если вы знаете, что используете PCL-совместимый принтер, вы можете использовать команды печати внутри документа, чтобы сделать его дуплексным.Это действительно полезно, когда вам нужно переключиться между односторонним и дуплексным средним документом.Вы можете добавить поле в заголовок документа и затем использовать 27 "& l1S" или 27 "& l2S" для дуплексного длинного и дуплексного короткого соответственно.Полный список команд печати PCL доступен в статье Microsoft KB.

1 голос
/ 04 июля 2012

Проблема не может быть решена напрямую, но возможно реализовать обходной путь.

Один «физический» принтер должен быть установлен в клиентской системе несколько раз, так что в списке принтеров он должен быть указан дважды под разными именами.

Далее, один из этих «принтеров»должна быть настроена двусторонняя печать, а вторая - обычная - односторонняя печать.В зависимости от потребностей приложения он выбирает один из двух «принтеров» для печати документов.

0 голосов
/ 27 февраля 2012

Вызвать метод PrintOut () объекта Microsoft.Office.Interop.Word.Document с параметром ManualDuplexPrint, установленным в значение true.

...