【PDFtk】合并特定文件夹中的PDF
本帖最后由 kucha007 于 2024-3-3 19:19 编辑Pdftk素材来自:http://bbs.mjtd.com/plugin.php?i ... yOTUzOHwxODE2NzE%3D
(defun K:MPDF4Folder (OriPatch TgtPatch PreNam / TKPath PDFNam FlieNam BatFile)
(if
(and
(setq TKPath (findfile "pdftk.exe"));如果Pdftk存在
(vl-file-directory-p OriPatch);源文件夹存在
(vl-file-directory-p TgtPatch);目标文件夹存在
(vl-directory-files OriPatch "*.PDF" 1);源文件夹存在PDF
(setq PDFNam (strcat PreNam "-合并.pdf"));合并后的文件名
)
(progn
(if (findfile (strcat TgtPatch PDFNam))(vl-file-delete (strcat TgtPatch PDFNam)));删除旧PDF
(setq FlieNam (vl-filename-mktemp "PDF合并" nil ".BAT"))
(setq BatFile (open FlieNam "w"))
(Write-Line (strcat
"start /min \"\" "
TKPath
" "
OriPatch ;源文件路径"%cd%\\
"*.pdf"
" cat output "
TgtPatch ;储存文件路径%cd%\\
PDFNam ;文件名
)
BatFile
)
(close BatFile)
(command "Shell" FlieNam "");运行BAT
(if (findfile (strcat TgtPatch PDFNam))(vl-file-delete FlieNam));删除BAT
(vlax-invoke-method (vlax-create-object "Shell.Application") 'Open TgtPatch)
)
(if (vl-file-directory-p OriPatch)
(vlax-invoke-method (vlax-create-object "Shell.Application") 'Open OriPatch)
)
)
)
参考用法:
(setq DwgPath (getvar 'DWGPREFIX))
(setq FolderPath (strcat DwgPath "--PDF--\\"))
(K:MPDF4Folder DwgPath FolderPath (vl-filename-base (getvar 'DwgName)))
qazxswk 发表于 2024-2-8 10:25
因为用了BAT,放弃用BAT就可以了,借PDFTK工具,在纯LISP代码中可以实现合并的效果的。
怎么写呢,能不能发出来看看{:1_1:} 本帖最后由 sandyvs 于 2024-4-10 18:53 编辑
kucha007 发表于 2024-2-26 15:38
求个代码学习一下~
(setq myapp(vlax-create-object "WScript.Shell"))
(Vlax-invoke-method myapp "run" (strcat "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe " FlieNam) 0 true)
(vlax-release-object myapp)
这样可以不
这样吧
(setq myapp (vlax-create-object "Shell.Application"))
(vlax-invoke-method myapp "shellexecute" FlieNam "" "" "runas" 0)
(vlax-release-object myapp)
本帖最后由 qazxswk 于 2024-11-19 22:06 编辑
烟盒迷唇 发表于 2024-2-15 09:27
明白了,用wscript.shell就可以没有黑屏闪过了
用wscript.shell,没有黑屏闪过,只针对系统安装的软件吧,比如JPG看图软件,看PDF文档软件。好像对pdftk.exe没有效果。 下一步要整合到批打了么? 这个可以,我以前一直是使用其他单独的软件来合并的,现在方便了
很多批打都是用这个来合并PDF的 黑屏闪过怎么消除呢 本帖最后由 qazxswk 于 2024-2-8 10:30 编辑
烟盒迷唇 发表于 2024-2-7 09:19
黑屏闪过怎么消除呢
因为用了BAT,放弃用BAT就可以了,借PDFTK工具,在纯LISP代码中可以实现合并的效果的。 烟盒迷唇 发表于 2024-2-8 11:15
怎么写呢,能不能发出来看看
试试 startapp baitang36 发表于 2024-2-14 07:00
试试 startapp
明白了,用wscript.shell就可以没有黑屏闪过了 烟盒迷唇 发表于 2024-2-15 09:27
明白了,用wscript.shell就可以没有黑屏闪过了
求个代码学习一下~
页:
[1]
2