Страница 8 из 9

Обычный текст -> RTF

Добавлено: 29 Август 2019, 16:29
porutchik
вроде начиная с cw7 был вывод отчета в pdf. Чем вариант не устраивает?

Обычный текст -> RTF

Добавлено: 29 Август 2019, 16:32
Yufil
А теперь представь, что у тебя есть несколько десятков приложений ( как Windows, так и Internet ). И в каждом используется несколько (
у некоторых даже много ) объектов Adobe Flash. Которые вот-вот, если не уже...

Обычный текст -> RTF

Добавлено: 29 Август 2019, 16:39
Yufil
porutchik писал(а): 29 Август 2019, 16:29вроде начиная с cw7 был вывод отчета в pdf. Чем вариант не устраивает?
Ну, если бы работали нормально - никто бы слова не сказал.

Обычный текст -> RTF

Добавлено: 29 Август 2019, 17:15
porutchik
включить печать "как картинку" и уменьшить качество. И все работает давно, клиент даже не заморачивается

Обычный текст -> RTF

Добавлено: 29 Август 2019, 17:33
kreator
porutchik писал(а): 29 Август 2019, 16:29 вроде начиная с cw7 был вывод отчета в pdf. Чем вариант не устраивает?
Ну, попробуйте. И лучше не одну страницу, а десяток. Посмотрите что на выходе получится. Если вообще получится.
Игорь Столяров писал(а): 29 Август 2019, 15:42 Поясните пжалуйста, а в чём суть битвы ? Может и мне надо …
Старая песня. Пользователей много, зоопарк осей, десяток мало. Поэтому всё заточено на стандартный класс. Пусть и в режиме "scan copy". Появилась новая тема - экспортировать в PDF уж очень многостраничные документы. "Scan copy" в коме. Напоминание пользователю о том, что нужно выбрать по умолчанию какой-нибудь PDF принтер, работает плохо. Плюс оказался нужен "тихий" сервис, pdf-файл сам формируется и кладётся в определённый каталог без участия пользователя. Я принял решение допилить стандартный класс. Пока вижу, что не ошибся. Есть отрицательные моменты, но это оказалось проще, чем запилить полностью новый генератор. Сейчас на этапе окончательного тестирования (ну, скажем так, бета тестирования :D ).

Обычный текст -> RTF

Добавлено: 29 Август 2019, 17:36
kreator
porutchik писал(а): 29 Август 2019, 17:15 включить печать "как картинку" и уменьшить качество. И все работает давно, клиент даже не заморачивается
Клиент, наверно, не заморачивается, потому что не пользуется. На среднем качестве вылет на седьмой странице, на плохом - на одиннадцатой-двенадцатой.

Обычный текст -> RTF

Добавлено: 29 Август 2019, 18:45
RaFaeL
Вот вы ерундой занимаетесь. Есть конвертер из WMF в PNG штатный и есть конвертер из PNG в PDF немножко сторонний и немножко платный, но поскольку разработчика уже не существует, вряд ли это кого-то будет волновать. Все отлично экспортируется без всяких принтеров

Обычный текст -> RTF

Добавлено: 29 Август 2019, 19:14
Yufil
Посмотрите ImageMagick, вроде там есть и консольная утилита и обычный библиотечный интерфейс ( нужно 32-бит dll )
Я ходил через Питон - взял файлы из PrintPreview ( правда, руками ), скопировал их в 1.wmf, 2.wmf и т д, потом переконвертил и собрал PDF. Получилось

Обычный текст -> RTF

Добавлено: 29 Август 2019, 23:31
porutchik
kreator писал(а): 29 Август 2019, 17:36Клиент, наверно, не заморачивается, потому что не пользуется. На среднем качестве вылет на седьмой странице, на плохом - на одиннадцатой-двенадцатой.
договор из ртф на 4 страницы. Поэтому наверно работает уже много лет. На полном качестве на 2-й вылетало

Обычный текст -> RTF

Добавлено: 30 Август 2019, 11:55
kreator
RaFaeL писал(а): 29 Август 2019, 18:45 Вот вы ерундой занимаетесь. Есть конвертер из WMF в PNG штатный и
Вот этот штатный конвертер и валится. Стали бы ерундой заниматься? Да и PNG в PDF не есть хорошо (в конторе присутствует ограничение на размер вложенных файлов). Другое дело Питон. Если он распарсивает wmf и создаёт pdf, то это хорошо. Но это, опять же, Питон. Некое дополнительное звено.

Обычный текст -> RTF

Добавлено: 30 Август 2019, 12:40
vic7tar
А я так и не понял, с выводом через Microsoft Print To PDF у всех всё нормально?

Обычный текст -> RTF

Добавлено: 30 Август 2019, 13:21
Yufil
kreator писал(а): 30 Август 2019, 11:55
RaFaeL писал(а): 29 Август 2019, 18:45 Вот вы ерундой занимаетесь. Есть конвертер из WMF в PNG штатный и
Вот этот штатный конвертер и валится. Стали бы ерундой заниматься? Да и PNG в PDF не есть хорошо (в конторе присутствует ограничение на размер вложенных файлов). Другое дело Питон. Если он распарсивает wmf и создаёт pdf, то это хорошо. Но это, опять же, Питон. Некое дополнительное звено.
Вроде Питон не при чём, просто я сходил на Pypi ( эээ, это всего лишь Python Package Index ... ) и посмотрел, что там есть на эту тему.
Ну и погуглил немного. ImageMagick вроде отношения к Питону не имеет - это просто dll, но для Python есть простой и удобный интерфейс.

С другой стороны, ImageMagick содержит утилиты командной строки https://imagemagick.org/script/command-line-tools.php, что уже решает задачу. Но это я увидел позже.
Навскидку нарыл в качестве примера несколько заклинаний из Интернета

convert "*.{png,jpeg}" -quality 100 outfile.pdf
convert "*.{ext1,ext2,ext3,...}" -quality 100 outfile.pdf
magick result*.png out.pdf

Обычный текст -> RTF

Добавлено: 30 Август 2019, 15:42
kreator
Yufil, из png неинтересно. Ни в каком виде. Интересно wmf распарсить.
vic7tar писал(а): 30 Август 2019, 12:40 А я так и не понял, с выводом через Microsoft Print To PDF у всех всё нормально?
У нас нормально.

Обычный текст -> RTF

Добавлено: 30 Август 2019, 16:05
vic7tar
kreator писал(а): 30 Август 2019, 15:42У нас нормально.
Ну так вопрос и был адресован вам в купе со Столяровым. А какой-нибудь рабочий примерчик можно или довольствоваться кодом Столярова по выбору принтеров?
Win 10x64, C10, все принтеры, кроме Microsoft Print To PDF, удалены, при печати формируется пустой pdf-файл. Научите.

Обычный текст -> RTF

Добавлено: 30 Август 2019, 16:25
Yufil
kreator писал(а): 30 Август 2019, 15:42Yufil, из png неинтересно. Ни в каком виде. Интересно wmf распарсить.
Заменить 'png' на 'wmf' - и всё...

Но тут есть тонкость - PrintPreviewQueue.Q - очередь с именами файлов для просмотра, файлы находятся в каталоге %TEMP% и имеют имена типа сlaxxxxx.tmp.
Перед тем, как конвертировать и собирать PDF надо, во-первых, сменить расширение ( например, сделать claxxxx.tmp.wmf ), кроме того, нет никакой уверенности в правильном порядке страниц. ( поэтому сделать новое имя _0001.claxxxx.tmp.wmf, _0002.claxxxx.tmp.wmf ) . А потом вызвать конвертор, примерно так.

Run('convert _0*.wmf output.pdf',1)

Я не стал допиливать, работает - и хорошо ...

В качестве теста:
1. Скачать ImageMagick ( 32 bit, dll )
2. Установить ( включить legacy command, добавить в path )
3. Вывести любой отчёт в Preview оставить просмотр открытым
4 Перейти в каталог %temp% ( cd %temp% )
5. Найти файлы claxxxx.tmp, каждый файл - отдельный лист
6. Переименовать ( или скопировать ) файлы в _001.wmf, _002.wmf ....
7. Исполнить команду convert *.wmf output.pdf , цимес...