本帖最后由 夏生生 于 2025-2-14 08:33 编辑
***警告,请谨慎测试,会删除您的PDF***
利用了麦叔的模拟dos execute函数,需保证您有PDFTK.EXE,且其在AutoCAD的支持文件搜索路径中,功能为利用PDFtk合并某文件夹中所有PDF,并删除原有PDF
 - (defun c:tt (/ diy_dos_execute cmd file files folder1 folder2 output)
- ;此函数来自麦叔(老迈[Less is more])
- (defun diy_dos_execute (exefile win wait / exec)
- (and (setq exec (vlax-create-object "wscript.shell"))
- (progn (vlax-invoke exec
- 'run
- exefile
- (cond
- ((member win (list 2 3 5)) win)
- (5))
- (if wait
- 1
- 0))
- (vlax-release-object exec)))
- (princ))
- (setq file (findfile "PDFTK.exe")
- folder1 (vl-filename-directory file)
- file (getfiled "选择任意PDF文件" (strcat folder1 "/") "pdf" 8)
- folder2 (vl-filename-directory file)
- files (vl-directory-files folder2 "*.pdf")
- file (apply 'strcat
- (mapcar '(lambda (x) (strcat folder2 "\\" x " ")) files))
- output (strcat folder2
- "\\"
- (getstring t "\n输入合并后文件名:")
- ".pdf"))
- (setq cmd (strcat "cmd /c cd /d " folder1 " & pdftk " file "cat output " output))
- (diy_dos_execute cmd 2 1)
- (if(findfile output)(foreach n files (vl-file-delete (strcat folder2 "\\" n)))))
|