Export File as Specified File Type Example (COM native C++)
This code snippet shows how to export a file to a specified file type.
//Get IDocumentExporter object
IDocumentExporterPtr dsDocExporter =
dsDoc->GetDocumentExporter();
if(
NULL == dsDocExporter )
{
::AfxMessageBox( L"Failed to get IDocumentExporter object of the current document."
);
return;
}
//Display SaveAs dialog to export file
to the selected format
CString filesFilter = L"Bitmap
(*.bmp)|*.bmp|Windows Enhanced Metafile (*.emf)|*.emf|JPEG (*.jpg)|*.jpg|PNG (*.png)|*.png|Slide (*.sld)|*.sld|Scalable
Vector Graphics Format (*.svg)|*.svg|Tag Image Format (*.tif)|*.tif|Stereolithography
(*.stl)|*.stl||";
CStringArray strExtList;
strExtList.Add( L".bmp"
);
strExtList.Add( L".emf"
);
strExtList.Add( L".jpg"
);
strExtList.Add( L".png"
);
strExtList.Add( L".sld"
);
strExtList.Add( L".svg"
);
strExtList.Add( L".tif"
);
strExtList.Add( L".stl"
);
CFileDialog fileSaveDialog ( FALSE, NULL, L"ExportedFile",
OFN_OVERWRITEPROMPT, filesFilter );
INT_PTR result = fileSaveDialog.DoModal();
if(
IDOK == result )
{
DWORD nFilterIndex = fileSaveDialog.m_ofn.nFilterIndex;
CString fullPathName = fileSaveDialog.GetPathName() +
strExtList[nFilterIndex -1];
bstr_t expFileName ( fullPathName );
//Get export type from file name
extension
ExportType exportType =
GetExportTypeFromFileExt( GetFileExtension( fullPathName ) );
VARIANT_BOOL bSuccess = VARIANT_FALSE;
switch
(exportType)
{
case
eBMP:
{
//Export to BMP image
dsDocExporter->ExportToBmp(
fullPathName.AllocSysString(), &bSuccess );
if(
VARIANT_FALSE == bSuccess )
{
::AfxMessageBox( L"Failed
to export current document to BMP image."
);
}
break;
}
case
eEMF:
{
//Export to EMF format
dsDocExporter->ExportToEmf(
fullPathName.AllocSysString(), &bSuccess );
if(
VARIANT_FALSE == bSuccess )
{
::AfxMessageBox( L"Failed
to export current document to EMF format."
);
}
break;
}
case
eJPG:
{
//Export to JPG image
dsDocExporter->ExportToJpg(
fullPathName.AllocSysString(), &bSuccess );
if(
VARIANT_FALSE == bSuccess )
{
::AfxMessageBox( L"Failed
to export current document to JPG image."
);
}
break;
}
case
ePNG:
{
//Export to PNG image
dsDocExporter->ExportToPng(
fullPathName.AllocSysString(), &bSuccess );
if(
VARIANT_FALSE == bSuccess )
{
::AfxMessageBox( L"Failed
to export current document to PNG image."
);
}
break;
}
case
eSLD:
{
//Export to SLD format
dsDocExporter->ExportToSld(
fullPathName.AllocSysString(), &bSuccess );
if(
VARIANT_FALSE == bSuccess )
{
::AfxMessageBox( L"Failed
to export current document to SLD format."
);
}
break;
}
case
eSVG:
{
//Export to SVG format
dsDocExporter->ExportToSvg(
fullPathName.AllocSysString(), &bSuccess );
if(
VARIANT_FALSE == bSuccess )
{
::AfxMessageBox( L"Failed
to export current document to SVG format."
);
}
break;
}
case
eTIFF:
{
//Export to TIFF image
dsDocExporter->ExportToTiff(
fullPathName.AllocSysString(), &bSuccess );
if(
VARIANT_FALSE == bSuccess )
{
::AfxMessageBox( L"Failed
to export current document to TIFF image."
);
}
break;
}
case
eSTL:
{
//Export to STL format
dsDocExporter->ExportToStl(
fullPathName.AllocSysString(), &bSuccess );
if(
VARIANT_FALSE == bSuccess )
{
::AfxMessageBox( L"Failed
to export current document to STL format."
);
}
break;
}
}
}
}
//Method to get export type from file name
extension
ExportType
CExportToCommandRunner::GetExportTypeFromFileExt( CString fileExtension )
{
ExportType exportType = eUndefinedExpType;
if(
fileExtension.MakeUpper() == "BMP"
)
{
exportType = eBMP;
}
if(
fileExtension.MakeUpper() == "EMF"
)
{
exportType = eEMF;
}
if(
fileExtension.MakeUpper() == "JPG"
)
{
exportType = eJPG;
}
if(
fileExtension.MakeUpper() == "PNG"
)
{
exportType = ePNG;
}
if(
fileExtension.MakeUpper() == "SLD"
)
{
exportType = eSLD;
}
if(
fileExtension.MakeUpper() == "SVG"
)
{
exportType = eSVG;
}
if(
fileExtension.MakeUpper() == "TIF"
)
{
exportType = eTIFF;
}
if(
fileExtension.MakeUpper() == "STL"
)
{
exportType = eSTL;
}
return
exportType;
}
CString CExportToCommandRunner::GetFileExtension(
const CString &fullPath
)
{
CString fileExtension = L"";
int
position;
if(
(position = fullPath.ReverseFind( '.'
) ) != -1 )
{
fileExtension = fullPath.Right( fullPath.GetLength() - position - 1
);
}
return
fileExtension;
}