Cómo imprimir archivos DWG a PDF usando .NET
Pasos de ejecución: abra un archivo dwg, use netload para cargar el archivo .dll donde se encuentra el siguiente código y luego ingrese el comando plottest para obtener el resultado de salida (un archivo .pdf).
Referencias a utilizar:
AcDbMgd.dll;AcMgd.dll;AutoCAD 2010 Type Library;System.Windows.Forms; AutoCAD/ObjectDBX Common 18.0 Type Library.
VB.NET:
Sistema de importaciones
Importa Autodesk.AutoCAD.Runtime
Importa Autodesk.AutoCAD.Interop
Importaciones Autodesk.AutoCAD.Interop.Common
Importa Autodesk.AutoCAD.ApplicationServices
Importa Autodesk.AutoCAD.DatabaseServices
Importa Autodesk.AutoCAD.EditorInput
Public Sub PlotToPDF()
Dim activeDoc As Document = Application.DocumentManager.MdiActiveDocument p >
Atenuar este dibujo como AcadDocument = CType(activeDoc.AcadDocument, AcadDocument)
Atenuar diseño como AcadLayout = ThisDrawing.ActiveLayout
Atenuar MediaName como cadena = diseño.CanonicalMediaName p >
Si MediaName.Equals("") Entonces
activeDoc.Editor.WriteMessage("No hay medios establecidos para el diseño activo.")
Regresar
p>
Else
activeDoc.Editor.WriteMessage(("El medio para el diseño activo es: " + MediaName))
End If
Pruebe
Dim oplot As AcadPlotConfiguration = ThisDrawing.PlotConfigurations.Add("PDF", layout.ModelType)
oplot.PaperUnits = AcPlotPaperUnits.acMillimeters
oplot.StyleSheet="monocromo.ctb"
<p> oplot.PlotWithPlotStyles = True
oplot.ConfigName = "DWG a PDF.pc3"
oplot.UseStandardScale = True
oplot.StandardScale = AcPlotScale. acScaleToFit
oplot.PlotType = AcPlotType.acExtents
oplot.CenterPlot = True
Dim oMediaNames As Object = layout.GetCanonicalMediaNames
Dim mediaNames As ArrayList = New ArrayList(CType(oMediaNames, String()))
Para cada sName como cadena en mediaNames
Si sName.Contains(MediaName) Entonces
oplot.CanonicalMediaName = sName
diseño.CopyFrom(oplot)
diseño.PlotRotation = AcPlotRotation.ac0grados
diseño.RefreshPlotDeviceInfo()
ThisDrawing.SetVariable("BACKGROUNDPLOT", 0)
ThisDrawing.Plot.QuietErrorMode = True
ThisDrawing.Plot.PlotToFile("c:/temp/d1.pdf" , "DWG a PDF.pc3")
oplot.Delete()
oplot = Nada
Volver
Finalizar si p> p>
Siguiente
Captura es como System.Exception
System.Windows.Forms.MessageBox.Show(es.ToString)
Fin Intentar
Fin
Sub