Программа сохранения в PDF

Автор Andreych, 29.09.18, 19:58:17

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Sabahs

Для КОМПАС-3D V16 получаете интерфейс и работаете, как с обычным Компасом.
KompasInvisible5:=KompasObject(CreateOleObject('KSINVISIBLE.Application.5'));

Вират Лакх

Andreych, тогда замутите, плиз, как Sabahs сказал с ключом "-i" при запуске программы, а я проверю )

KrissKross

Предложение
Может формировать - одну общую pdf-ку
а для удобства печати
распределять файлы по формату по папкам,
а также создавать папку - Нестандартные форматы - куда складывать А4х3 и др.
К примеру
АБВГ.0100.000 СБ - Проект
Для печати
      Формат-А4
      Формат-А3
      ...
      Нестандартные форматы

Andreych

Цитата: Вират Лакх от 19.10.18, 10:02:15
Andreych, тогда замутите, плиз, как Sabahs сказал с ключом "-i" при запуске программы, а я проверю )


Проверьте, в последней версии ключ "-i" уже был заложен, просто в меню не показано. Я не упоминал, т.к. это не работает у меня.
Получение интерфейса именно так как Sabahs писал - KompasObject(CreateOleObject('KSINVISIBLE.Application.5')).
А дальше все как с обычным Компасом. Но на получении интерфейса iConverter все останавливается у меня - всегда nil.

Andreych

Честно говоря, я не понимаю стремления к этому Kompas Invisible.
И так работает все быстро, ничего лишнего не показывается. Куда еще невидимее?
Да и сама программа такая маленькая, почти невидимая :)

Sabahs


Andreych

Цитата: KrissKross от 19.10.18, 10:02:53
Предложение
Может формировать - одну общую pdf-ку
а для удобства печати
распределять файлы по формату по папкам,
а также создавать папку - Нестандартные форматы - куда складывать А4х3 и др.
К примеру
АБВГ.0100.000 СБ - Проект
Для печати
      Формат-А4
      Формат-А3
      ...
      Нестандартные форматы


Да, у меня тоже возникала такая мысль - объединять разные форматы в разные файлы - 210х297.pdf, 420x297.pdf и т.д.
Это думаю удобнее будет, чем единый файл со списком статистики листов. Сразу разные файлы отправлять на разные принтеры без ручного ввода листов.
Попробую реализовать.

Andreych

Цитата: Вират Лакх от 19.10.18, 08:48:23
0. Чтобы не связываться с модулем пдф, можно же сразу по листам компасом каждый документ обделать.
6. А почему k? Это от какого слова? )
9. А другие модули для объединения пробовали? :shu: Ну чтобы размер готового файла был поменьше.


0. Все-таки нет, читать форматы из Компаса неохота, из PDF на порядок проще.
6. k - от слов Keep extension.
9. Другие модули не пробовал. Да у меня и нет других.

Andreych

Добавил опцию распределения по форматам. Ключ "-f".
Сохраняется как общий объединенный файл "_merged.pdf", так и отдельно по форматам в виде "_merged_0210x0297.pdf", "_merged_0420x0297.pdf" и т.д.
Нули не убираются, А3, А4 не пишется, все для простоты и быстроты программирования :)


Andreych

Сделал, чтобы все же отображалось в виде _merged_A4.pdf, _merged_A3v, _merged_A4x3 и т.п.
Но по-прежнему, если в чертеже есть листы разных форматов, то размер определяется по первому листу в файле PDF.
Иначе пришлось бы разбивать PDF на отдельные файлы, потом обратно собирать, сложновато ;)

Вират Лакх

20.10.18, 07:27:44 #30 Последнее редактирование: 20.10.18, 07:48:17 от Вират Лакх
Цитата: Andreych от 19.10.18, 20:09:33
Честно говоря, я не понимаю стремления к этому Kompas Invisible.
И так работает все быстро, ничего лишнего не показывается. Куда еще невидимее?
Да и сама программа такая маленькая, почти невидимая :)

Цитата: Sabahs от 19.10.18, 20:15:38
Возможно, от Вас хотят много поточности.

На многопоточность не надеюсь, т.к. это не было реализовано в SaveRaster. Есть куда невидимее: инвизибл запускается и вырубается мгновенно по сравнению с обычным компасом (не подгружает лишнего при старте и не сохраняет конфигурацию при выходе). Только что сравнивал. Плюс это типа двухпоточности: пока компас может быть занять перестроением чертежей, можно что-нибудь другое пересохранить в пдф или распечатать. Я это уже писал в начале темы:
ЦитироватьКажись, при его применении быстрее будет запуск и закрытие компаса. И вообще, разделение обязанностей всегда лучше.

1) Инвизибл прекрасно работает. Добавляйте в меню. Предлагаю назвать так: "Использовать ksInvisible"
2) В меню ключи написать пора. Их становится все больше и больше ) Напротив названий пунктов по правому краю ровным столбиком. Перфекционизм нашептывает мне, что надо для поверх всех окон все-таки сделать -p, чтобы не было пустого места в меню, и вдруг кому-то не надо поверха. Схема работы такая: каждый пользователь создаст ярлык себе такой, какой нужен ему, включая -p.
3) предлагаю дописать слово "Сохранять расширения ФАЙЛОВ" (естественно маленькими буквами).
Цитата: Andreych от 19.10.18, 21:20:29
0. Все-таки нет, читать форматы из Компаса неохота, из PDF на порядок проще.

4) Я тут имел ввиду, что не форматы читать, а постранично сохранять. Компас позволяет сохранить все листы и конкретно выбранные. Можно циклом перебрать от первого до последнего листа и получить отдельные пдфки. А потом у них узнавать формат и т.д. Чтобы не делить многостраничные тем модулем пдф, если это сложно.
Это был тест предпоследней версии, где merged_0210x0297. Это я не проверял. В последней версии отображение вида А4 лучше, т.к. в голове не надо переводить цифры в форматы. Вопрос: А3v - это что? Вертикальный? Не надо так, т.к. ридер делает автоповорот. Горизонтальные и вертикальные - все в один файл надо.
Цитата: Andreych от 20.10.18, 06:45:40
Но по-прежнему, если в чертеже есть листы разных форматов, то размер определяется по первому листу в файле PDF.

Типа merged_A3 - это не факт, что там все А3? Ну это все портит тогда :`(
UPD
4') Но постранично сохранять будет медленнее, чем получить список форматов. Давайте я вам код скину получения статистики форматов одного файла компас, чтобы вам голову не греть?

DesignЯR

Отличная прога.Как чуствовал - свою подобную идею отложил в сторону - и вот она реализована. Замечу, что не все пользователи приучены к коммандной строке, поэтому как по мне было бы удобнее сделать чекбоксы на форме. А после разбивки многолистового  документа по форматам - программа станет мечтой перфекциониста.

Вират Лакх

Галочки - это альтернатива не ключам при запуске, а меню, которое вызывается на ПКМ. Да, стоит настройки вынести на окно программы и сделать галочками. А то пять раз вызывать меню не очень удобно. А ключами легко пользоваться через ярлык. Натолкал туда параметров в строку запуска и не тыкаешь их при каждом запуске.

DesignЯR

Ага! ПКМ? ну хорошо хоть без  gestures обошлись.  А так в принципе задумка с ПКМ норм., только если бы ещё запоминались настройки....

Andreych

Настройки можно запоминать, сделав ярлык запуска программы с соотв. настройками, например - "-e -f -m"

Ну вот, сделал еще маленькие кнопочки. Ну совсем уж стало разнообразно - можно 4-мя способами настройки выбирать: ключи запуска, меню, кнопочки и клавиши F1-F9. Действительно, осталось только жесты добавить :)  Но жесты не могу, у меня oldschool - Delphi 7.
Перфекционисты же одни кругом. Я уж боюсь пункты меню не так назвать или не в том порядке разместить :)

Полностью переделал алгоритм сортировки и разбиения. Сделал полное разбиение по форматам, даже внутри одного документа. Так что теперь в файле merged_A3 только А3 (но горизонтальные). Но не тестировал особо.
По кнопке F1 еще есть помощь по параметрам командной строки, чтобы не запоминать.

Напоминаю, что в программу можно также затаскивать файлы PDF, они тоже соберутся вместе, отсортируются и разложатся по форматам. Например сделали из Компаса файлы PDF, но забыли в прошлый раз нажать кнопочку слияния. Тогда можно просто полученные PDF объединить потом.


Andreych

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

DesignЯR

По версии 1.6.
- для обычного пользователя, мне кажется, было бы удобнее вместо буковок на кнопках иконки.Это у программиста ассоциации t-top, m -merge, s- sort,.. у нас-userов этого нет. Да,да знаю какой это гемор подобрать соответствующую иконку.
- в режиме поверх всех окон не добавляются файлы
- при нажатии "s" автоматом нажимается "m". Как по мне, то эта функция нужна была для печати на разных принтерах, поэтому нет необходимости объединять все в один файл сразу. Может стоит вынести вопрос на голосование: что чаще используется.
- при нажатии ПКМ на Memo вылазит менюшка, которая там не нужна
- Не понятно назначение кнопки Доб. Файлы и без неё норм. добавляются, кроме режима -t. Возможно, тут должен быть OpenDialog? - чтобы добавлять файлы из самой программы
- не хватает функции (для окончательной версии) очистки списка и удаления файлов поштучно, хотя тут уже, наверное, надо будет переходить от Memo к TreeList.
Пока не все протестировал, надо пока есть время и в огороде поработать.

Вират Лакх

Круть! До perfectum softwarus осталось рукой подать )
По кнопочкам и менюшкам по мелочи:
1) Первой сделать кнопочку "?", которая F1. Аналогично последующим кнопкам.
2) "Доб." я предлагаю изменить на "+" в соответствии со стилем ряда.
3) Соответственно и "Запустить" заменить на "►" или на худой конец ">".
4) Когда я писал про сепаратор в меню, я ожидал, что это будет горизонтальная черта, т.е. одна колонка меню. Может еще маленько переделаем? ) Если горизонтальные нет возможности, то без них уж. Сначала блок чисто по программе, потом по отношению к файлам:
помощь
инвизибл
поверх
автовыход
-----------------
сохранять в папку программы
сохранять расширения - эта функция вообще нужна кому-то? может и её выкинуть?
объединять
сортировать
распределять
5) Отсюда порядок кнопочек и в помощи такой же.
6) В помощи пропущена t поверх. А пропущена, потому что -t не существует. Добавьте, пожалуйста.
7) Изначальную ширину окна предлагаю делать ровно по ширине кнопочек, чтобы после них не оставалось место до края окна.
8) Расстояние над кнопочками есть, а под кнопками - нет, сразу идет окошко списка. Желательно, чтобы одинаково было. Этот пункт уже издевательство, да? ))
9) После включения поверха файлы не хотят закидываться в окно программы. Как уже написали ранее.
10) В справке (так её и назвать, а не только про ключи) можно написать про то, что она может принимать pdf.
11) Кнопку "Доб." можно вообще убрать и сделать добавление всегда включенным. DesignЯR, без нее список не добавляется, а замещается. Или её заменить на Очистить "х" (удалить всё накиданное из окошка). Или + оставить с окном выбора из программы, как говорит DesignЯR.
12) Если не делать очистить, то комбинацию Ctrl+A или кнопочку Выделить всё "*"
А теперь сортировки :%:
Тут надо определиться, может ли у программы быть на выходе несколько форм пересохранения или только что-то одно.
Для простоты понимания пока будем считать, что на выходе что-то одно должно быть.
13) Непонятная сортировка в режиме m + s. В какой последовательности идут листы одного формата? Допустим у нас есть отображаемый в окне список многолистовых и разноформатных файлов. В итоге должно быть все А4, все А3 и т.д. При этом А4 должны быть в том порядке, каком они идут в этом списке файлов. То есть сначала А4 из первого документа (допустим, что они там есть) в том порядке, в каком они там представлены, потом А4 из следующего и т.д. Сейчас же они перемешаны не понятно по какому принципу.
14) Одна опция s (без m) не сортирует каждый документ внутри себя. Зачем, да? ) Раз она называется Сортировать листы, должна значит сортировать то, что на выходе. Это если она независимая. Другой вариант (как сейчас реализовано) - назвать её Сортировать объединенный документ. Тогда она включает m и выключается, когда отключают m. При указании её как параметр, она как бы дописывает себе -m, т.е. с указанием одной -s создается объединенный сортированный.
-= А можно голову не греть и выкинуть вообще эту s, если мы делаем разбивку по форматам в разные файлы. Тем более, она криво сейчас работает. Предлагаю так и поступить. Сортированный объединенный не нужен никому, если есть функция разбивки на мергед_Аx =-
15) Зачем f включает m? m - это простое объединение всех в один, без сортировки. Мы можем его создать параллельно с разбитыми на форматы. Не надо перемешивать ключи, их надо бы оставить независимыми. Если Вам нужен объединенный отсортированный файл как временный при создании разбивки, то пожалуйста. Но потом его за собой удалить. А сортировать как по п.13.
16) Предлагаю всё-таки горизонтальные и вертикальные форматы одного размера не разделять на разные. Какой смысл? Любой просмотрщик, в том числе pdf reader, плюс драйверы принтеров предлагает галочку автоповорота.
17) иконки - это роскошь ) Если они будут, то, конечно, хорошо.

DesignЯR, Memo - это кто такое? Которое окошко со списком? Нормальная там менюшка. Можно выделить всё и удалить. Файлы поштучно можно удалить из списка - как в блокноте стереть.

Andreych

Цитата: DesignЯR от 21.10.18, 09:19:09
По версии 1.6.


1. Иконки будут мелкие и будет совсем непонятно, какая что значит, по буквам легче ориентироваться.
Да и не хотел добавлять иконки, чтобе не увеличивать размер exe.
2. Да, при переключении "поверх всех" и обратно слетает DropTarget почему-то, не замечал. Это поправлю.
3. Да, при нажатии s или f нажимается еще и m, т.к. сортировка файлов подразумевает их объединение в один (m).
4. Меню не помешает и на Memo. Специально и туда добавил ее.
5. Назначение кнопки Доб. именно включить режим добавления новых файлов с списку, а не только новые вносить.
6. Очистку списка сначала сделал, потом убрал. Лишняя кнопка. Можно в Memo выделить все и удалить, или удалять построчно, или даже вручную сортировать файлы. Сначала делал список как ListBox, потом переделал на Memo, так больше гибкости для пользователя.


Andreych

Цитата: Вират Лакх от 21.10.18, 10:30:55
По кнопочкам и менюшкам по мелочи:


1. Кнопку ? можно сделать. Я ее специально не делал, т.к. есть F1 - это очевидная клавиша для помощи.
2,3 Согласен, + и ► - хорошая идея.
4. Я не знаю как сделать горизонтальный сепаратор, поэтому вертикальный.
Сохранять расширения может понадобиться, если есть файлы с одинаковыми именами, но разными расширениями.
Для режима объединения я делаю сразу оба расширения, чтобы точно не дублироваллось. Все равно потом удаляется.
Возможно просто сортировать уже и не нужно, а может иногда удобно из 1 файла печатать, пусть останется
6. Опция поверх всех t пропущена, т.к. технически невозможно до показа окна переключать его состояние. Потом - пожалуйста.
7. Согласен. У меня так и было, только из-за кнопок Запустить ширина стала больше. Вот сокращу эту кнопку, будет хорошо.
8. Не обращал внимания.
9. Перетаскивание после переключения режима поверх поправлю. Как оказывается, такое переключение вызывает проблемы.
11. Кнопку Доб. можно сделать включенной по умолчанию.
12. Лишнюю кнопку для этой функции делать неохота, лучше Ctrl+A. Я полагал, Ctrl+A по умолчанию работает, оказывается нет.