-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Заменить Sumatra PDF прямой работой с принтером #47
Comments
Отправку на принтер можно сделать, например, через GDI (https://learn.microsoft.com/ru-ru/windows/win32/gdiplus/-gdiplus-sending-gdi-output-to-a-printer-use). Надо только понять как в pdf рендерить страницы. Если делать через GDI, то в перспективе можно будет поддержку разных форматов добавить (docx, например) |
А почему не использовать заложенные классы в NET для работы с принтером? https://learn.microsoft.com/ru-ru/dotnet/api/system.printing?view=windowsdesktop-7.0 Я почитаю про GDI тоже. |
Итак.
System.Printing (который, вероятно, является оберткой gdi) позволяет взаимодействовать с железом и "рисовать" на нем. И только. Поэтому картинки для печати нужно будет получать как-то еще. Для рендеринга страниц pdf можно использовать MuPdf (https://mupdf.com/) через MuPdfCore (https://www.nuget.org/packages/MuPDFCore). Однако, раз уж мы отдельно читаем документы и отдельно рисуем, можно добавить другие доступные для печати форматы. В первую очередь, OOXML (т.е. doc/docx). И вот тут сложнее: ничего бесплатного подобного MuPdf я для OOXML не нашел. P.S. : можно, конечно, пойти и другим путем. Например, якобы можно создавать для файла процесс на печать. Но такой вариант предполагает наличие промежуточной программы, которая под капотом будет делать вышеперечисленное. У нас это по сути делала SumatraPdf - может делать какой-нибудь условный MS Word. Поэтому делать так (через программу) - все равно, что оставить суматру... |
В целом, мы можем немного изменить бэк и возвращать в терминал более подходящие для печати документы, которые понимает принтер сам (форматы PostScript и XPS). У нас уже там есть под это вся необходимая инфраструктура |
Да если отталкиваться от того что бэк будет нам отдавать уже готовый (PostScript или XPS) то пункт |
Функционал
The text was updated successfully, but these errors were encountered: