Moosavi S.M. Ответов: 2

Как отправить pdf файл на нужный принтер с предварительным просмотром


я хочу распечатать pdf-файл с диалоговым окном предварительного просмотра документа и печати, чтобы предоставить пользователю выбор доступных принтеров в следующем порядке:

1 & gt; откройте pdf с помощью adobe reader или компонента "printPreviewDialog" в visual studio
таким образом, пользователь может иметь представление о том, что он собирается напечатать

2 > Затем компонент" printDialog " автоматически появляется и дает пользователю возможность
выбор нужного принтера (вместо принтера по умолчанию) для процесса печати

3 & gt; автоматическое закрытие adobe reader или компонента предварительного просмотра после печати "если это возможно"


с уважением к любой помощи

Что я уже пробовал:

мой код таков :
Система.Диагностика.Процесс.Пуск(файл);
printDocument1 = новый PrintDocument();
printDocument1.DocumentName = файл;

printDialog1.Документ = printDocument1;
printDialog1.Метод showdialog();

Leo Chapiro

А что не так с вашим решением: какие-то ошибки?

2 Ответов

Рейтинг:
17

Dave Kreskowiak

Вы будете иметь, чтобы найти и использовать 3-й партии библиотеки, чтобы сделать печать. Средства печати, встроенные в .NET Framework, не принесут вам никакой пользы, потому что они полагаются на вас, чтобы предоставить код для визуализации каждой страницы. Если вы не планируете писать свой собственный PDF-парсер и рендеринг, PrintDocument не принесет вам никакой пользы.

Все, что сделал ваш код, - это запустил PDF-файл в любом приложении, зарегистрированном для открытия PDF-файлов, обычно Acrobat Reader. Затем вы создаете новый документ PrintDocument, который не имеет никакого отношения к печати этого PDF-документа.


Moosavi S.M.

вы правы, но у меня есть один вопрос!
почему visual studio принесла" печатные " компоненты? применимы ли они ? как я могу их использовать?
(на самом деле 3 вопроса ;) )

Dave Kreskowiak

- Я уже сказал...

Они предназначены для того, чтобы вы предоставляли весь код для рисования всего, что хотите, на каждой странице. Если вы хотите распечатать текстовый файл с помощью встроенных методов, вы должны предоставить код для рисования текста на страницах.

Поскольку ваш код ничего не знает о синтаксическом анализе и рисовании PDF-файла, вы не можете использовать встроенные компоненты.

Visual Studio не предоставляет эти компоненты. На .Чистая база.

Запуск процесса не дает вашему коду возможности анализировать и рисовать PDF-файл. По сути, вы делаете то же самое, что дважды щелкаете по PDF-файлу самостоятельно, чтобы открыть его. Вы говорите внешнему процессу открыть PDF-файл, и он знает, как разобрать и нарисовать документ. Недостатком является то, что ваш код практически не контролирует процесс, который вы запустили.

Moosavi S.M.

хорошо спасибо,
Итак, как я могу разобрать и нарисовать pdf-файл на страницы, чтобы я мог их распечатать?

Dave Kreskowiak

Если вы хотите разобрать и визуализировать PDF-файл с помощью собственного кода, вам придется потратить несколько лет на его написание.

Найдите сторонний компонент, который сделает это за вас. Просто погуглите "компонент печати pdf" и начните читать.

Рейтинг:
0