DWG to PDF через PDFCreator - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > DWG to PDF через PDFCreator

DWG to PDF через PDFCreator

Ответ
Поиск в этой теме
Непрочитано 21.12.2011, 15:07
DWG to PDF через PDFCreator
OSIP
 
Тюмень
Регистрация: 21.12.2011
Сообщений: 39

Всем привет!
В общем есть программа на лиспе, которая переводит (с помощью Адоб Дистиллера) из DWG в PDF.
Сейчас пытаюсь всё переделать под PDFCreator (удобно и бесплатно)
В общем не могу справиться в лиспе с этим криэйтором! незнаю как запустить его с правильными параметрами!

Вот так запускается Дистиллер:
Код:
[Выделить все]
 
(defun MTMDDISTPDF(inname outname)
  (startapp "C:\\Program Files\\Adobe\\Acrobat 9.0\\Acrobat\\acrodist.exe"
    (strcat "/j \"C:/Program Files/Adobe/Acrobat 9.0/Acrobat/Settings/standard.joboptions\" "
      "/n /q /o \"" outname "\" \"" inname "\""))
)
Просмотров: 15504
 
Непрочитано 27.12.2011, 15:06
#21
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


OSIP, все просто.

По делу, последовательность такая (проверена мной по крайней мере):
1. Перед отправкой на печать нужно запускать следующие команды:
1.1. Создать указатель на объект PDFCreator.clsPDFCreator;
1.2. Применить cStart с опцией /NoProcessingAtStartup;
1.3. Задать опции для подобъекта cOption, а именно сохранять ли файл автоматически, или выводить диалоговое окно и проч.
// См. опции UseAutosave, UseAutosaveDirectory, AutosaveDirectory, AutosaveFilename, AutosaveFormat. //
1.4. cClearCache.

2. Посылать на креэйтор с помощью PlotToDevice.
3. После печати передать указателю на объект PDFCreator.clsPDFCreator свойство cPrinterStop в значении True, т.к. документы по умолчанию стоят в очереди при программной печати.

Последний раз редактировалось 5hev, 27.12.2011 в 15:19.
5hev вне форума  
 
Автор темы   Непрочитано 27.12.2011, 15:22
#22
OSIP


 
Регистрация: 21.12.2011
Тюмень
Сообщений: 39
<phrase 1=


Цитата:
Сообщение от 5hev[ru] Посмотреть сообщение
OSIP,

Ну а так, по делу, последовательность такая (проверена мной по крайней мере):
1. Перед отправкой на печать нужно запускать следующие команды:
1.1. Создать указатель на объект PDFCreator.clsPDFCreator;
1.2. Применить cStart с опцией /NoProcessingAtStartup;
1.3. Задать опции для подобъекта cOption, а именно сохранять ли файл автоматически, или выводить диалоговое окно и проч.
// См. опции UseAutosave, UseAutosaveDirectory, AutosaveDirectory, AutosaveFilename, AutosaveFormat. //
1.4. cClearCache.

2. Посылать на креэйтор с помощью PlotToDevice.
3. После печати передать указателю на объект PDFCreator.clsPDFCreator свойство cPrinterStop в значении True, т.к. документы по умолчанию стоят в очереди при программной печати.
Просто я и на Lisp и на VB пишу!
Все эти пункты выполняются, но почему то ничего не выходит
Ладно, буду пилить дальше, может что нибудь напилю! =)

Последний раз редактировалось OSIP, 11.01.2012 в 08:53.
OSIP вне форума  
 
Автор темы   Непрочитано 11.01.2012, 08:52
#23
OSIP


 
Регистрация: 21.12.2011
Тюмень
Сообщений: 39
<phrase 1=


Что то ничего не пилится =(

вот полный код модуля на лиспе:

Код:
[Выделить все]
 
 
(vl-load-com)

(defun MTMDGETPLOTSTYLE( / attvalues)
  (setq attvalues (totpdmgetattvalues (totpdmgetobjid (totpdmgetverid))))
	(caddr (assoc "100000001300000" attvalues))
);defun

;-----------------------------------------------------------
; печать через Acrobat Distiller
(defun MTMDDISTPDF(inname outname)
  (startapp "C:\\Program Files\\Adobe\\Acrobat 9.0\\Acrobat\\acrodist.exe"
    (strcat "/j \"C:/Program Files/Adobe/Acrobat 9.0/Acrobat/Settings/standard.joboptions\" "
      "/n /q /o \"" outname "\" \"" inname "\""))
);defun

;-----------------------------------------------------------
; печать через PDFCreator
(defun MTMDPDFCreator(inname outname)
	(setq *com-pdfc* (vlax-get-or-create-object "PDFCreator.clsPDFCreator"))
	(vlax-invoke-method *com-pdfc* "cStart" "/NoProcessingAtStartup" :vlax-false)
	(vlax-put-property *com-pdfc* "cOption" "UseAutosave" (vlax-make-variant 1))
	(vlax-put-property *com-pdfc* "cOption" "UseAutosaveDirectory" (vlax-make-variant 1))
	(vlax-put-property *com-pdfc* "cOption" "AutosaveDirectory" (vlax-make-variant <outname>))
	(vlax-put-property *com-pdfc* "cOption" "AutosaveFilename" (vlax-make-variant <outname>))
	(vlax-put-property *com-pdfc* "cOption" "AutosaveFormat" (vlax-make-variant 0))
;????	(vlax-invoke-method *com-pdfc* "cClearCache" :vlax-false)
  	(command "_PlotToDevice")
;  (startapp "C:\\Program Files\\PDFCreator\\PDFCreator.exe"
;    (strcat "/j \"C:/Program Files/PDFCreator/useroptions.ini\" "
;      "/n /q /o \"" outname "\" \"" inname "\""))
);defun

;-----------------------------------------------------------
(defun MTMDPLOTLAYOUT(DeviceName PaperSize PlotStyle FileName / pw ph orient)
  (setq orient (vla-get-PlotRotation (vla-get-ActiveLayout (vla-get-ActiveDocument (vlax-get-Acad-Object)))))
  (command "_-PLOT" "y" "" DeviceName PaperSize "m" (if (= orient 1) "l" "p") "n" "e" "1" "c" "y" PlotStyle "y" "n" "n" "n" "y" FileName "n" "y")
;  (vla-GetPaperSize (vla-get-ActiveLayout (vla-get-ActiveDocument (vlax-get-Acad-Object))) 'pw 'ph) 
;  (command "_-PLOT" "y" "" DeviceName PaperSize "m" (if (> pw ph) "l" "p") "n" "e" "f" "c" "y" PlotStyle "y" "n" "n" "n" "y" FileName "n" "y")
;  (command "_-PLOT" "y" "" DeviceName PaperSize "m" "l" "n" "e" "f" "c" "y" PlotStyle "y" "n" "n" "n" "y" FileName "y" "n")
;  (command "_-PLOT" "y" "" DeviceName PaperSize "m" "l" "n" "e" "f" "c" "y" PlotStyle "y" "n" "n" "n" "y" FileName "y" "y")
);defun

;-----------------------------------------------------------
;(PLOTALLPDF "Adobe PDF" "A3" "C.ctb" "D:/001015RK.pdf")
(defun PLOTALLPDF(device papersize plotstyle pdfname / outfolder psname adoc layout pltname lcount i f layouts)
  (setq outfolder (vl-string-right-trim "/\\" (vl-filename-directory pdfname)))
  (setq psname (strcat outfolder "/" "runex.plt"))
  (setq adoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
  (setq layouts (vla-get-Layouts adoc))
  (setq lcount (vla-get-Count layouts))
  (setq i 0)
  (setq f (open psname "w"))
  (write-line "/prun { /mysave save def" f)
  (write-line "dup = flush" f)
  (write-line "RunFile" f)
  (write-line "clear cleardictstack" f)
  (write-line "mysave restore" f)
  (write-line "} def" f)
  (repeat (1- lcount)
    (setq i (1+ i))
    (vlax-for item layouts (if (= (vla-get-Taborder item) i) (vla-put-ActiveLayout adoc item)))
    (setq layout (vla-get-ActiveLayout adoc))
    (setq pltname (strcat outfolder "/" (vl-filename-base (getvar "DWGNAME")) "-" (vla-get-Name layout) ".PLT"))
    (MTMDPLOTLAYOUT device papersize plotstyle pltname)
    (write-line (strcat "(" pltname ") prun") f)
  )
  (close f)

;	выбор программы для печати
;	(if (= "PDFCreator" device) (MTMDPDFCreator psname pdfname) (MTMDDISTPDF psname pdfname) )
  
  (MTMDDISTPDF psname pdfname)

  ;(vl-file-delete psfile)
  (princ)
);defun

;-----------------------------------------------------------
(defun C:MTMDTESTPLOT()
;	(PLOTALLPDF "Adobe PDF.pc3" "A3" (MTMDGETPLOTSTYLE) "D:/testplot.pdf")
	(PLOTALLPDF "Adobe PDF.pc3" "A3" "E.ctb" "D:/testplot.pdf")
);defun

;-----------------------------------------------------------
(defun C:MTMDPLOTPDF()  
	(PLOTALLPDF (getString T "\nDevice name: ")
	            (getString T "\nPaper size: ")
		    (getString T "\nPlot style: ")
		    (getString T "\nFile name: ")
	  )
);defun
;-----------------------------------------------------------

(princ)
может кто то ошибку увидит, я не сомневаюсь, что она там есть!
OSIP вне форума  
 
Непрочитано 11.01.2012, 08:55
#24
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


OSIP, а вот теперь объясни разницу между #22 и #23.
---
Пока я просматривал код, ты изменил #22. Ай молодца...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.01.2012, 13:32
1 | #25
ilya_kaz


 
Регистрация: 11.01.2012
Сообщений: 1


Не знаю, поможет ли...

Делал как-то на Delphi программку, которая автоматом перебирает интернет-страницы и печатает их в pdf-файлы через PDFCreator.
Имена файлов задаются из программы автоматически.

Толкового описания функций принтера нигде не нашел - так методом тыка и делал.
Вроде работало.

Во вложении - фрагменты той программки (печать из procedure TMainForm.ExportWebToPdf).
Вложения
Тип файла: rar печать в PDF.rar (1.5 Кб, 143 просмотров)
ilya_kaz вне форума  
 
Непрочитано 11.01.2012, 13:57
#26
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Цитата:
Сообщение от pan PDFCreator глючный
Сильное заявление. Аргументировать можно?
Проблемы, как правило, возникают со сложными чертежами, содержащими растры, OLE, поля и т.д.
Пример сейчас затрудняюсь предоставить, если снова попадется, выложу.
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума  
 
Непрочитано 11.01.2012, 20:12
#27
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
PDFCreator глючный
Не глючней других PDF-принтеров. Есть проблемы со специфичными файлами - некоторые лучше печатает PDFCreator, некоторые - DoPDF. А иногда наоборот.

Если же программировать с PDFCreator, то надо ознакомиться с содержимым его папки в ProgramFiles - там масса примеров. Собственно печать выполняет gsdll32.dll.

Кроме того, есть исходники - всё, включая DeveloperTool, TLBs и прочее.
ShaggyDoc вне форума  
 
Непрочитано 13.01.2012, 19:22
1 | #28
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


OSIP,
1. Закомментирован cClearCache (для порядку)
2. Нет такой команды _PlottoDevice, есть такой метод
3. (setq pltname (strcat outfolder "/" (vl-filename-base (getvar "DWGNAME")) "-" (vla-get-Name layout) ".PLT"))
4. Нет вызова MTMDPDFCreator! Непонято что там за переменная в <скобках>, их быть не должно!
5hev вне форума  
 
Непрочитано 25.07.2012, 15:49
#29
Sirius2w

Проектировщик ТХ
 
Регистрация: 16.11.2009
Сообщений: 139
Отправить сообщение для Sirius2w с помощью Skype™


Вопрос немного не в тему разгоревшейся дискуссии но зато очень важный
Итак имеем: 1) несколько чертежей разного формата, например 12 шт А4, затем 4 шт А3, 8 шт А1 и 20 шт. А4.
2) часть чертежей выполнены в автокаде и уже распечатаны PDF Creatorом каждый чччертеж (простите заиккаюсь) распечатан в отдельный PDF файл соответственно
3) остальная часть - пояснительные записки и спeцификации которые выполнены в экселе и ворде тоже распечатаны но уже всего в двух многостраничных файлах PDF с листами одинакового формата (один файл с листами А4, другой с листами А3)

Необходимо все соединить в один PDF в строгом порядке (пользовательском) с сохранением размеров и ориентации всех исходных листов как это сделать?
Сейчас получается - в ККкреаторе забиваю несколько исходных ПДФ, объединяю, но они все приводятся к одному виду - к листам А4


Ответ - не собирать разные PDF в одну кучу, а открывать исходные файлы, начинать печать через PDF однако в диалоговом окне нажимаем кнопку "подождать собрание" далее уже в окне PDF Креатора объединяем все задания в одну задачу и вуаля - все как нужно.
Спасибо за то что помогли разобраться

Последний раз редактировалось Sirius2w, 25.07.2012 в 16:25.
Sirius2w вне форума  
 
Непрочитано 26.07.2012, 08:48
#30
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 427
<phrase 1=


1. В 2011 акаде можно всё распечатать в один пдф файл.
2. Собрать все можно с помощью программки AdolixSplitMergePDF.

Применительно к пункту 1 - я теперь все стараюсь делать в акаде. Пусть сначала это будет дольше и не так удобно (таблицы), но зато потом, когда вносятся многочисленные изменения, распечатка происходит нажатием нескольких клавиш.
Применительно к пункту 2 - до 50 листов можно использовать бесплатно, более 50 листов в одном файле - нужна коммерческая версия.
Alexeipost вне форума  
 
Непрочитано 26.07.2012, 08:55
#31
JohnSmith


 
Регистрация: 28.02.2009
Оренбург
Сообщений: 248


Для сшивки используем на работе полностью бесплатную программу PDF binder
JohnSmith вне форума  
 
Непрочитано 26.07.2012, 09:55
#32
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


я в своё время тоже утилитку сделал для простеньких операций с пдф.
Спец. странички для утилиты не создавал, по-этому просто ссылка на архив
На всякий случай ссылка на downloads проекта, мало ли я когда-нибудь её обновлю, тогда ссылка выше будет не актуальна.
Я так понимаю, подобных программ - легион
bargool вне форума  
 
Непрочитано 12.02.2013, 13:30
#33
Largo GT

Архитектор
 
Регистрация: 11.03.2009
Новороссийск
Сообщений: 99


А как в PDFCreator напечатать не стандартный лист например A4x3 (297x630)??
Largo GT вне форума  
 
Непрочитано 12.02.2013, 13:37
1 | #34
Apollo


 
Регистрация: 12.11.2010
Сообщений: 182
Отправить сообщение для Apollo с помощью Skype™


Largo GT, смотри скрин
Миниатюры
Нажмите на изображение для увеличения
Название: 12-02-2013 11-34-59.jpg
Просмотров: 182
Размер:	218.8 Кб
ID:	96555  
__________________
Perfect Project
Apollo вне форума  
 
Непрочитано 12.02.2013, 19:32
#35
Largo GT

Архитектор
 
Регистрация: 11.03.2009
Новороссийск
Сообщений: 99


Цитата:
Сообщение от Apollo Посмотреть сообщение
смотри скрин
Спасибо !

Последний раз редактировалось Largo GT, 13.02.2013 в 12:14.
Largo GT вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > DWG to PDF через PDFCreator



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Публикация dwg в pdf постранично Sharnir AutoCAD 30 20.09.2022 12:06
Проблемма с DWG TrueView 2010 при экспорте DWG в PDF aponom AutoCAD 5 04.01.2015 00:25
Помогите перевести файл DWG в формат PDF tomicos AutoCAD 5 21.09.2011 12:59
Линии при конвертации из DWG в PDF теряют свойства klava_lesnaya AutoCAD 7 13.06.2010 11:59
фаилы формата dwg (формат Autocad) в формат pdf Zilot AutoCAD 4 02.12.2003 03:02