Я после библиотеки, которая может принять уже созданный файл PDF и отправить его прямо на принтер. Я не хочу, чтобы пользователю нужен Adobe Reader или что-то еще, приложение создаст PDF файл, и я хочу его распечатать.
Библиотека .NET для печати PDF файлов
Ответ 1
Извините, мой первый ответ (так как удалено - ответ FGITW, говорящий только об использовании iTextSharp) предполагал, что это PDF FAQ # 1, тогда как на самом деле это был PDF FAQ # ~ 5, ме виноват...
Отсутствует встроенная обработка PDF, предоставляемая системой, поэтому вне использования таких приложений, как FoxIt или Acrobat - что не стоит слишком быстро сбрасывать со счетов - люди, использующие PDF, будут иметь одно или другое и будут выбирать, какое из них они предпочитают поскольку они не все равны, особенно если вы попадаете в более продвинутые функции и связанные с ними схемы лицензирования и монетизации.
Не знаю каких-либо конкретных библиотек, которые отвечают этому требованию, хотя другой вопрос, на который я ссылался выше, должен иметь хороший ответ.... исследования; время идет... Ответ на другой вопрос гласит, что PDFSharp должен подойти, образец выглядит просто.
На основе размышлений, основанных на вики- страницах Pdfsharp FAQ, iTextSharp имеет такой же материал для генерации TIFF/изображений, как PDFSharp.
Альтернатива, которая может или может не входить в сферу применения, состоит в том, чтобы сгенерировать и/или преобразовать, например, в файл XPS, который имеет встроенную поддержку печати (почти наверняка .NET 3.5, и, возможно, ранее имел его в качестве стандартного компонента в клиенте). Профиль).
Одна вещь, которую нельзя упускать во всем этом, это то, что книга Lowagie (iText In Action) превосходна, и если вы собираетесь что-то делать в чтении, написании или предоставлении PDF-форм, вы должны иметь ее на полке. Точно так же, если вы идете по маршруту библиотеки FLOSS, iText следует серьезно рассмотреть.
Ответ 2
Я не знаю о каких-либо бесплатных/открытых исходных библиотеках, доступных для этого, но после оценки нескольких я пошел с cete DynamicPDF Print Manager.NET. Это было, безусловно, наиболее эффективным с точки зрения системных ресурсов, а именно ОЗУ. Другие продукты, которые я пробовал, были из Tall Components, Gnostice и BCL EasyPDF SDK. Все они использовали большие объемы ОЗУ по сравнению с продуктом cete. У Print Manger есть хорошая документация, которая проста в использовании.
Вы также можете вызвать gsprint из .NET, часть gsview, которая представляет собой графический интерфейс FOSS для GhostScript. Я не пошел по этому маршруту, но также заметил, что он использует больше системных ресурсов, чем Dynamic PDF. Если вы, вероятно, можете упаковать его с вашим программным обеспечением, чтобы пользователь стал более прозрачным. Я знаю, что это не соответствует вашим критериям, но это, по-видимому, единственное возможное бесплатное решение.
Если вы сталкиваетесь с PDFSharp, обратите внимание, что для печати используется Adobe Reader.
Apache PDFBox имеет служебную программу PrintPDF, которую вы также можете вызвать из .NET. Я столкнулся с этим после того, как приобрел диспетчер печати, поэтому я еще не пробовал.
Обновление. Вы можете использовать Sumatra PDF для бесшумной печати из команды линия. Я подозреваю, что он растрирует PDF перед отправкой на принтер, но для небольших файлов, которые должны работать.
Ответ 3
Надеюсь, это поможет кому-то. После поиска в Интернете я нашел эту отличную библиотеку с открытым исходным кодом (С#), и она отлично подходит для меня.
https://github.com/tonyedgecombe/RawPrint
using RawPrint;
Printer.PrintFile("Printer Name", @"C:\Path\To\Print\File.prn");
Желаем удачи,
Ответ 4
Вы можете попробовать PDFView4NET. Он поддерживает печать PDF файлов и преобразование страниц PDF в изображения.
Отказ от ответственности: я работаю в компании, которая разрабатывает PDFView4NET.
Ответ 5
Есть несколько коммерческих библиотек. Например, я бы рекомендовал http://pdfprinting.net.
P.S. Я работаю в компании, предлагающей это решение.
Ответ 6
Бесплатный PDFiumViewer поставляется через Nuget и имеет возможности печати, см. здесь пример кода.
Реальный прост в использовании - мне понадобилось много времени, чтобы найти - поэтому я отправляю его для поиска людей по "неправильному" вопросу: