[求助]VBA如何设置多布局打印成一个PDF文件?
<P>请大家帮帮忙,提供点思路吧</P><P>本人对CAD工具也不熟悉,但客户有要求要打印CAD文件成PDF,现在我已经可以做到,但是一个布局对应一个PDF,多个布局就有多PDF文件,我想让它一次打印成一份PDF就好了.</P>
<P>我用到ThisDrawing.Plot.PlotToDevice "Adobe PDF"</P>
<P>跟上设备名字,但是打印文件名又不能自定义,始终是"文件名 布局名称 (1).pdf",</P>
<P>怎么设置打印到设备时的文件名</P>
<P>如果不能一次打印成一份PDF文件,那么有谁知道PDF文件如何用VBA整合?</P>
<P>-----------------------</P>
<P>以上是我的问题......是挺多的....希望有高手能指点一二,实在是开发急用,又对工具不熟悉,大家帮帮忙吧,在这里谢过了</P>
<P>我把我在这里找的代码修改了贴出来,请帮忙看看</P>
<P> '--------------------------------------------------<BR> 'AutoCAD文件<BR> <BR> Dim CADApp As Variant <BR> <BR> Set CADApp = CreateObject("AutoCAD.Application") <BR> <BR> CADApp.Application.Visible =False<BR> Msgbox "CAD创建成功"<BR> <BR> CADApp.Documents.open str_FilePath<BR> Set ThisDrawing = CADApp.ActiveDocument<BR> Set Plot = ThisDrawing.Plot<BR> <BR> Msgbox "------------开始布局打印"<BR> <BR> Dim AddedLayouts() As String<BR> Dim LayoutList As Variant<BR> Dim ArraySize As Integer, BatchCount As Integer <BR> ArraySize=0<BR> Forall Layout In ThisDrawing.Layouts<BR> Msgbox "布局名称:"+Layout.name <BR> <BR> ArraySize = ArraySize + 1<BR> Redim AddedLayouts(1 To ArraySize)<BR> AddedLayouts(ArraySize) = Layout.name <BR> <BR> Plot.SetLayoutsToPlot AddedLayouts<BR> Plot.PlotToDevice "Adobe PDF"<BR> End Forall<BR> <BR> <BR> 'ThisDrawing.Plot.PlotToDevice "Adobe PDF"<BR> <BR> Msgbox "--------------------------布局打印完毕"<BR> CADApp.Documents.close<BR> CADApp.Quit</P> <P>使用虚拟打印机(我用PDF_FACTORY)!</P>
<P>遍历你的Layout,将Layout.ConfigName 设置为虚拟打印机,打印完毕后就可以生成一个PDF文件!</P>
<P> </P> <P>不太明白啊........能不能说的详细一些,非常感谢!</P>
<P>PDF_FACTORY与Adobe PDF应该没有什么区别吧.</P>设置虚拟打印机该怎么弄,我是从客户端发出请求的,所有动作都只能在请求过程中自动转换的,最大的问题是我不懂CAD.....
<P> </P> 本帖最后由 作者 于 2006-8-8 8:21:27 编辑 <br /><br /> <P>采用autoCAD 2007,里面有自带的DWG To PDF.pc3打印设备,这个是打印到文件的,所以可以在程序中决定文件名,比如ThisDrawing.Plot.PlotToFile "H:\Temp\test0.pdf",其他的打印机通通都不可以指定,不知道楼上几位是怎么弄出来的。pdfFactory Pro也做不到的在程序中指定文件名的。</P>
<P>其实如果在打印对话框中选择打印设备时,如果打印到文件那一项是置灰而且是勾选的话,那就表示是可以再编程中指定文件名的。</P> <P>谢谢<A name=24489><FONT color=#000066><B>dcount107</B></FONT></A>和<A name=27031><FONT color=#000066><B>iceberg2509</B></FONT></A>,现在我知道pdfFactory Pro是一种可以将多页面打印为一个PDF文件的虚拟打印机.程序文件名我不能指定,所以只能判断其可能打印的文件名称,然后拷贝成另一份文件.目前我是这样做的.</P>
<P> </P>
页:
[1]