CDW в PDF КОМПАС V14

Автор AndreySt, 12.11.13, 15:25:41

« назад - далее »

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

#60
ЦитироватьУродует многостраничный текстовый документ.
Народ, если Вы хотите получить конкретный ответ, то формулируйте нормальный вопрос.
Уродует, как?

GkmSoft

Цитата: Sabahs от 02.12.14, 18:22:17
В V13 конвертера PDF нет, по поводу сохранения из под папок гляну.
Есть альтернативная реализация - http://store.gkmsoft.ru/pdf_plugin.html
Тестировали на 13-м, но должно работать даже и на 12-м.

Цитата: IgorRUtver от 13.11.14, 10:43:00
Моя библиотека перестала конвертировать в pdf в компас V15. Хочу попробовать заменить прежний pdf2d.pas на полученный из pdf2d.tlb. Компас v15. Но не могу найти нормальный pdf2d.tlb. На моём пк он весит 4 кБ. Поделитесь нормальным файлом пожалуйста или подскажите где его достать.
Прикрепил новый pdf2d.pas и pdf2d.tlb, хотя я думаю проблема не в них.

Sprinter500

У меня в 15.2 перестало работать. В 15-й версии работало отлично.

Пробую так. Импорт в Delphi библиотеки pdf2d в формате TLB с созданием PAS файла. Далее добавляем в проект. Пробуем запустить и ошибка. Что стало с библиотекой? Кто ни будь решил проблему?

Или дело в том что раньше была 32-битная версия, а сейчас на 64? Завтра попробую на 32 поставить обратно.

Вы внимательно предыдущее сообщение читали?
Все проблемы от лени думать.
https://yadi.sk/i/2Vr2ct2gd7kbc смотрим с 3:30 минуты и смотрим версию Компаса.

Sprinter500

Ну поздравляю что у Вас получилось. А как решили проблему - поделиться не хотите?

#66
Картинку покажите с ключом реестра:
HKEY_LOCAL_MACHINESOFTWAREASCONKOMPAS-3DConvertersPdf2d
У меня выглядит так, как на картинке, но библиотека работает из по любого запущенного Компаса V14...V16.

Sprinter500

Выкладываю скрин реестра:

Sprinter500

Вот код процедуры:

procedure SaveToPDF();
var
   pPdf2dParam : IPdf2dParam;
   Registry: TRegistry;
   pСonverter : IConverter;
   pСonverterPtr : IUnknown;
   path2 : string;
   sfname: string;
begin
Registry := TRegistry.Create;
Registry.RootKey := hkey_local_machine;
If Registry.OpenKeyReadOnly('SOFTWARE\ASCON\KOMPAS-3D\Converters\Pdf2d') then
path2 := Registry.ReadString('path');
pСonverter := KompasAPI.Converter[path2];
pСonverterPtr := pСonverter.ConverterParameters(0);
pPdf2dParam := pСonverterPtr as IPdf2dParam;
pPdf2dParam.ColorType := 3;
pPdf2dParam.GrayScale:=false;
sfname:=copy(pKompasDocument2D.Name,0,Length(pKompasDocument2D.Name)-4);
pСonverter.Convert('','D:\OutDocs\'+sfname+'.pdf',0,false);
end;

Sprinter500

Дело в том что в списке "Импорта компонент по TLB" нет этого компонента, а остальные есть. Предыдущая версия 15.0 стояла там же на диске D, но она была 32-битная и в списке эта компонента была. Попытка добавить через Add вручную по адресу выдает эту ошибку:

Sprinter500

При добавлении в проект твоего свежего PAS-файла. Происходит ошибка: причем если компилировать как 32-битное приложение то ошибка такая:

Sprinter500

А если компилировать как 64-битное приложение то процедура дает ошибку "Interface not supported".

Может надо 32-битный Компас поставить или Delphi переустановить? 

Так что где собака зарыта?

Проверьте на nil pСonverter и pСonverterPtr.
У Вас exe или dll?
+ Благодарностей: 1

Sprinter500

Да pСonverter равен nil.


Sprinter500

Вот сама программка:



Предыдущая версия под 15.0 прекрасно работала. Думаю корень проблемы что TLB не импортируется или pdf2d.dll не читается/

Выполните регистрацию компаса из папки установки, надеюсь больше установленных Компасов нет, хотя мог и мусор по оставаться от предыдущих, я определяю из какой папки был запущен Компас и реестром не пользуюсь.
KOMPAS.Exe /register
+ Благодарностей: 1

Sprinter500

Кто скачал программку - работает ли она у Вас?


#78
Собственно видео отчёт.
Ваше приложение и моя библиотека.
PS. Видео лучше скачать, а потом смотреть.
+ Благодарностей: 1

Sprinter500

Проблема решилась переустановкой Компаса - поставил 32-битную версию V15.2  - и сразу в списке импорта в Delphi появился желаемый pdf2d.tlb. После чего сделал pas-файл и прога заработала. Завтра еще проверю на работе на 64-битном Компасе.