Ok I found some code that can do this, but its in C#?
If anyone can help me convert it from C# to VB.net I would be much appreciated!!
C# code:
using System;
using System.Diagnostics;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Publishing;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.PlottingServices;
[assembly: ExtensionApplication(typeof(NET.MyApp))]
namespace NET
{
public class MyApp : IExtensionApplication
{
public static PublishEvents m_PublishEvents = null;
public void Terminate()
{
if (m_PublishEvents != null)
{
//m_PublishEvents.Undo();
m_PublishEvents = null;
}
}
public void Initialize()
{
m_PublishEvents = new PublishEvents();
}
}
public class PublishEvents
{
static private Publisher m_pb = null;
private bool m_bDone;
public PublishEvents()
{
m_bDone = false;
m_pb = Autodesk.AutoCAD.ApplicationServices.Application.Publisher;
Do();
}
public void Do()
{
// Only plant it once.
if(m_bDone == false)
{
m_bDone = true;
}
else
{
return;
}
try
{
m_pb = Autodesk.AutoCAD.ApplicationServices.Application.Publisher;
m_pb.AboutToBeginBackgroundPublishing += new AboutToBeginBackgroundPublishingEventHandler (callback_AboutToBeginBackgroundPublishingEventHandler);
m_pb.AboutToBeginPublishing += new AboutToBeginPublishingEventHandler (callback_AboutToBeginPublishingEventHandler);
m_pb.AboutToEndPublishing += new AboutToEndPublishingEventHandler (callback_AboutToEndPublishingEventHandler);
m_pb.AboutToMoveFile += new AboutToMoveFileEventHandler (callback_AboutToMoveFileHandler);
m_pb.BeginAggregation += new BeginAggregationEventHandler (callback_BeginAggregationEventHandler);
m_pb.BeginEntity += new BeginEntityEventHandler(callback_BeginEntityEventHandler);
m_pb.BeginPublishingSheet += new BeginPublishingSheetEventHandler (callback_BeginPublishingSheetEventHandler);
m_pb.BeginSheet += new BeginSheetEventHandler (callback_BeginSheetEventHandler);
m_pb.CancelledOrFailedPublishing += new CancelledOrFailedPublishingEventHandler(callback_CancelledOrFailedPublishingEventHandler);
m_pb.EndEntity += new EndEntityEventHandler (callback_EndEntityEventHandler);
m_pb.EndPublish +=new EndPublishEventHandler (callback_EndPublishEventHandler);
m_pb.EndSheet +=new EndSheetEventHandler (callback_EndSheetEventHandler);
//m_pb.InitPublishOptionsDialog += new InitPublishOptionsDialogEventHandler (callback_InitPublishOptionsDialogEventHandler);
}
catch (System.Exception ex)
{
MyPrint (string.Format("\terror = {0}",ex.Message));
}
}
public void Undo()
{
if( m_pb == null || m_bDone == false)
return;
try
{
m_pb.AboutToBeginBackgroundPublishing -= new AboutToBeginBackgroundPublishingEventHandler (callback_AboutToBeginBackgroundPublishingEventHandler);
m_pb.AboutToBeginPublishing -= new AboutToBeginPublishingEventHandler (callback_AboutToBeginPublishingEventHandler);
m_pb.AboutToEndPublishing -= new AboutToEndPublishingEventHandler (callback_AboutToEndPublishingEventHandler);
m_pb.AboutToMoveFile -= new AboutToMoveFileEventHandler (callback_AboutToMoveFileHandler);
m_pb.BeginAggregation -= new BeginAggregationEventHandler (callback_BeginAggregationEventHandler);
m_pb.BeginEntity -= new BeginEntityEventHandler(callback_BeginEntityEventHandler);
m_pb.BeginPublishingSheet -= new BeginPublishingSheetEventHandler (callback_BeginPublishingSheetEventHandler);
m_pb.BeginSheet -= new BeginSheetEventHandler (callback_BeginSheetEventHandler);
m_pb.CancelledOrFailedPublishing -= new CancelledOrFailedPublishingEventHandler(callback_CancelledOrFailedPublishingEventHandler);
m_pb.EndEntity -= new EndEntityEventHandler (callback_EndEntityEventHandler);
m_pb.EndPublish -=new EndPublishEventHandler (callback_EndPublishEventHandler);
m_pb.EndSheet -=new EndSheetEventHandler (callback_EndSheetEventHandler);
//m_pb.InitPublishOptionsDialog -+ new InitPublishOptionsDialogEventHandler (callback_InitPublishOptionsDialogEventHandler);
m_pb = null;
}
catch (System.Exception ex)
{
MyPrint (string.Format("\terror = {0}",ex.Message));
}
m_bDone = false;
}
private void callback_AboutToBeginBackgroundPublishingEventHandler(object sender, AboutToBeginBackgroundPublishingEventArgs e)
{
MyPrint("AboutToBeginBackgroundPublishingEventHandler");
Autodesk.AutoCAD.PlottingServices.DsdData dsdData = e.DsdData;
MyPrint(string.Format("\tPlotStampOn = {0}", dsdData.PlotStampOn));
}
private void callback_AboutToBeginPublishingEventHandler (object sender, AboutToBeginPublishingEventArgs e)
{
MyPrint("AboutToBeginPublishingEventHandler");
MyPrint (string.Format("\tget_JobWillPublishInBackground = {0}",e.JobWillPublishInBackground));
Autodesk.AutoCAD.PlottingServices.DsdData dsdData = e.DsdData;
MyPrint (string.Format("\tPlotStampOn = {0}",dsdData.PlotStampOn));
}
private void callback_AboutToEndPublishingEventHandler(object sender, PublishEventArgs e)
{
MyPrint("AboutToEndPublishingEventHandler");
MyPrint(string.Format("\tget_DwfFileName = {0}", e.DwfFileName));
MyPrint(string.Format("\tget_IsMultiSheetDwf = {0}", e.IsMultiSheetDwf));
MyPrint(string.Format("\tget_TemporaryDwfFileName = {0}", e.TemporaryDwfFileName));
}
private void callback_AboutToMoveFileHandler(object sender, PublishEventArgs e)
{
MyPrint("AboutToMoveFileHandler");
MyPrint (string.Format("\tget_DwfFileName = {0}",e.DwfFileName));
MyPrint (string.Format("\tget_IsMultiSheetDwf = {0}",e.IsMultiSheetDwf));
MyPrint (string.Format("\tget_TemporaryDwfFileName = {0}",e.TemporaryDwfFileName));
}
private void callback_BeginAggregationEventHandler(object sender, BeginAggregationEventArgs e)
{
MyPrint("BeginAggregationEventHandler");
e.PlotLogger.LogMessage ("From my BeginAggregationEventHandler EVENT!!");
}
private void callback_BeginEntityEventHandler (object sender, PublishEntityEventArgs e)
{
MyPrint("BeginEntityEventHandler");
MyPrint (string.Format("\tget_UniqueEntityId() = {0}",e.UniqueEntityId));
}
private void callback_BeginPublishingSheetEventHandler(object sender, BeginPublishingSheetEventArgs e)
{
MyPrint("BeginPublishingSheetEventHandler");
MyPrint (string.Format("\tDwgName = {0}",e.DsdEntry.DwgName));
e.PlotLogger.LogMessage ("From my BeginPublishingSheetEventHandler EVENT!!");
}
private void callback_BeginSheetEventHandler(object sender, PublishSheetEventArgs e)
{
MyPrint("BeginSheetEventHandler");
MyPrint (string.Format("\tget_CanonicalMediaName = {0}",e.CanonicalMediaName));
MyPrint (string.Format("\tget_Configuration = {0}",e.Configuration));
MyPrint (string.Format("\tget_DrawingScale = {0}",e.DrawingScale.ToString()));
MyPrint (string.Format("\tget_PlotLayoutId = {0}",e.PlotLayoutId.ToString()));
e.PlotLogger.LogMessage ("From my BeginSheetEventHandler EVENT!!");
}
private void callback_CancelledOrFailedPublishingEventHandler(object sender, PublishEventArgs e)
{
MyPrint("CancelledOrFailedPublishingEventHandler");
MyPrint (string.Format("\tget_DwfFileName = {0}",e.DwfFileName));
MyPrint (string.Format("\tget_IsMultiSheetDwf = {0}",e.IsMultiSheetDwf));
MyPrint (string.Format("\tget_TemporaryDwfFileName = {0}",e.TemporaryDwfFileName));
}
private void callback_EndEntityEventHandler (object sender, PublishEntityEventArgs e)
{
MyPrint("EndEntityEventHandler");
MyPrint (string.Format("\tget_UniqueEntityId() = {0}",e.UniqueEntityId));
}
private void callback_EndPublishEventHandler(object sender, PublishEventArgs e)
{
MyPrint("EndPublishEventHandler");
MyPrint (string.Format("\tget_DwfFileName = {0}",e.DwfFileName));
MyPrint (string.Format("\tget_IsMultiSheetDwf = {0}",e.IsMultiSheetDwf));
MyPrint (string.Format("\tget_TemporaryDwfFileName = {0}",e.TemporaryDwfFileName));
}
private void callback_EndSheetEventHandler(object sender, PublishSheetEventArgs e)
{
MyPrint("EndSheetEventHandler");
}
private void MyPrint(String s)
{
String strLogFileName = "c:\\test.log";
System.IO.TextWriter tw= System.IO.File.AppendText(strLogFileName);
tw.WriteLine(s);
tw.Close();
}
}
}