Originally Posted by
NalkCZ
Hi there,
I'm adjusting tool for printing of PDFs. I am forced to use (per department standard) Adobe PDF printer. Is there a way to fill/avoid that pop-up window and instead fill this information via LISP?
I have Page Setups for every size layout and one for PDF for each of them as well with " PDF" added to the name so "11×17" for the hardcopy and "11×17 PDF" for the PDF file.
Checked and even with Page Setup set to Adobe PDF I do not get any dialog box plotting the current layout to PDF in the drawing's folder using macro ^C^C^P(pdfPlot) using the following code as long as it's not already open in Adobe:
Code:
(defun getCurrentPagesetup (layout / lst PSname PSdim data)
(setq lst (dictsearch (namedobjdict) "acad_layout")
lst (dictsearch (cdar lst) layout)
)
(setq
PSname (cdr(assoc 1 lst))
lst (member '(100 . "AcDbPlotSettings") lst)
data (cadr lst)
PSdim (PaperSize)
)
(princ "\nPSdim = ")(princ PSdim)
(princ "\n")
(cond
((= PSdim "8½×11")
(Steal (strcat (vl-filename-directory (getenv "QnewTemplate")) (chr 92) "AutoCAD Template" (chr 92) "Templates.dwt") (list (list "Page Setups" (list "8½×11" "8½×11 PDF")))); .regen
)
((= PSdim "11×8½")
(Steal (strcat (vl-filename-directory (getenv "QnewTemplate")) (chr 92) "AutoCAD Template" (chr 92) "Templates.dwt") (list (list "Page Setups" (list "11×8½" "11×8½ PDF")))); .regen
)
((= PSdim "8½×14")
(Steal (strcat (vl-filename-directory (getenv "QnewTemplate")) (chr 92) "AutoCAD Template" (chr 92) "Templates.dwt") (list (list "Page Setups" (list "8½×14" "8½×14 PDF")))); .regen
)
((= PSdim "14×8½")
(Steal (strcat (vl-filename-directory (getenv "QnewTemplate")) (chr 92) "AutoCAD Template" (chr 92) "Templates.dwt") (list (list "Page Setups" (list "14×8½" "14×8½ PDF")))); .regen
)
((= PSdim "11×17")
(Steal (strcat (vl-filename-directory (getenv "QnewTemplate")) (chr 92) "AutoCAD Template" (chr 92) "Templates.dwt") (list (list "Page Setups" (list "11×17" "11×17 PDF")))); .regen
)
((= PSdim "18×24")
(Steal (strcat (vl-filename-directory (getenv "QnewTemplate")) (chr 92) "AutoCAD Template" (chr 92) "Templates.dwt") (list (list "Page Setups" (list "18×24" "18×24 PDF")))); .regen
)
((= PSdim "24×36")
(Steal (strcat (vl-filename-directory (getenv "QnewTemplate")) (chr 92) "AutoCAD Template" (chr 92) "Templates.dwt") (list (list "Page Setups" (list "24×36" "24×36 PDF")))); .regen
)
((= PSdim "22×34")
(Steal (strcat (vl-filename-directory (getenv "QnewTemplate")) (chr 92) "AutoCAD Template" (chr 92) "Templates.dwt") (list (list "Page Setups" (list "22×34" "22×34 PDF")))); .regen
)
((= PSdim "34×22")
(Steal (strcat (vl-filename-directory (getenv "QnewTemplate")) (chr 92) "AutoCAD Template" (chr 92) "Templates.dwt") (list (list "Page Setups" (list "34×22" "34×22 PDF")))); .regen
)
((= PSdim "36×48")
(Steal (strcat (vl-filename-directory (getenv "QnewTemplate")) (chr 92) "AutoCAD Template" (chr 92) "Templates.dwt") (list (list "Page Setups" (list "36×48" "36×48 PDF")))); .regen
)
(T (princ "\nDrawing not saved!"))
)
(SetCurrentPageSetup (vla-get-activedocument (vlax-get-acad-object)) PSdim)
(PaperSize)
)
(defun QuickPlot ( / CPgSetup pathPDF)
(setq CPgSetup(getCurrentPagesetup (getvar "ctab"))
pathPDF (strcat (getvar "DWGPREFIX")(vl-filename-base (getvar "dwgname"))" - "(getvar "ctab"))
)
(if CPgSetup
(progn
(vl-file-delete (strcat CPgSetup)) ;http://forums.augi.com/showthread.php?173337-Check-if-PDF-is-open-Delete-if-not&p=1341076&viewfull=1#post1341076
(command "_.-PLOT" "No" "" "" "" "" "" "Yes")
(if (> (getvar "cmdactive") 0)
(progn
(command "No")
(princ (alert (strcat pathPDF " cannot be plotted because it's Open in Adobe Acrobat!")))
)
(princ (strcat pathPDF " saved."))
)
)
)
(princ)
)
(defun pdfPlot ( / CPgSetup pathPDF)
(setq CPgSetup(getCurrentPagesetup (getvar "ctab"))
pathPDF (strcat (getvar "DWGPREFIX")(vl-filename-base (getvar "dwgname"))" - "(getvar "ctab"))
)
(if CPgSetup
(progn
(vl-file-delete (strcat CPgSetup " PDF")) ;http://forums.augi.com/showthread.php?173337-Check-if-PDF-is-open-Delete-if-not&p=1341076&viewfull=1#post1341076
(or(vl-string-search " PDF" CPgSetup)(setq CPgSetup(strcat CPgSetup " PDF")))
(command "_.-PLOT" "No" "" CPgSetup "" pathPDF "No" "Yes")
(if (> (getvar "cmdactive") 0)
(progn
(command "No")
(princ (alert (strcat pathPDF " cannot be plotted because it's Open in Adobe Acrobat!")))
)
(princ (strcat pathPDF " saved."))
)
)
)
(princ)
)
While it includes calls to Lee Mac's Steal from Drawing to import Page Setups from my template drawing it's not required if the Page Setups are already in the drawing.