Save File as PDF Example (C#)
This example shows how to save multiple drawing sheets to a PDF file.
//--------------------------------------------------------------------------
// Preconditions:
// 1. Specified drawing document to open exists.
// 2. The folder (c:\test) to which to save
// the PDF file exists. If it does not exist,
// create it or change the path to one that
// exists on your system.
//
// Postconditions:
// 1. Specified drawing document is opened.
// 2. All but the last drawing sheet are saved to an array.
// 3. The array of drawing sheets are saved to a PDF
// file called foodprocessor.pdf.
// 4. foodprocessor.pdf opens.
//---------------------------------------------------------------------------
using
System.Runtime.InteropServices;
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using
System;
namespace
ViewPDF_CSharp.csproj
{
partial
class
SolidWorksMacro
{
public
void
Main()
{
ExportPdfData
swExportPDFData = default(ExportPdfData);
ModelDoc2
swModel = default(ModelDoc2);
ModelDocExtension
swModExt = default(ModelDocExtension);
DrawingDoc
swDrawDoc = default(DrawingDoc);
Sheet
swSheet = default(Sheet);
bool
boolstatus = false;
string
filename = null;
int
errors = 0;
int
warnings = 0;
string[]
obj = null;
// Save PDF file to this
folder and filename
filename =
"c:\\test\\foodprocessor.pdf";
// Open drawing document
swModel = (ModelDoc2)swApp.OpenDoc6("C:\\Program
Files\\SolidWorks Corp\\SolidWorks\\samples\\tutorial\\advdrawings\\foodprocessor.slddrw",
(int)swDocumentTypes_e.swDocDRAWING,
(int)swOpenDocOptions_e.swOpenDocOptions_Silent,
"",
ref
errors, ref
warnings);
swModExt = (ModelDocExtension)swModel.Extension;
swExportPDFData = (ExportPdfData)swApp.GetExportFileData((int)swExportDataFileType_e.swExportPdfData);
// Get the names of the
drawing sheets in the drawing
//
to get the size of the array of drawing sheets
swDrawDoc = (DrawingDoc)swModel;
obj = (string[])swDrawDoc.GetSheetNames();
int
count = 0;
count = obj.Length;
int
i = 0;
object[]
objs = new
object[count
- 1];
// Activate each drawing
sheet, except the last drawing sheet, for
//
demonstration purposes only and add each sheet to an array
//
of drawing sheets
for
(i = 0; i < count - 1; i++)
{
boolstatus = swDrawDoc.ActivateSheet((obj[i]));
swSheet = (Sheet)swDrawDoc.GetCurrentSheet();
objs[i] = swSheet;
}
// Save the drawings sheets
to a PDF file
boolstatus =
swExportPDFData.SetSheets((int)swExportDataSheetsToExport_e.swExportData_ExportSpecifiedSheets,
(objs));
swExportPDFData.ViewPdfAfterSaving =
true;
boolstatus = swModExt.SaveAs(filename, (int)swSaveAsVersion_e.swSaveAsCurrentVersion,
(int)swSaveAsOptions_e.swSaveAsOptions_Silent,
swExportPDFData, ref
errors, ref
warnings);
}
public
SldWorks
swApp;
}
}