<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Problem Exporting PDF Layout from AcrMap 10 using vb.net... in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/problem-exporting-pdf-layout-from-acrmap-10-using/m-p/277903#M7163</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have some vb.net code which worked in ArcMap 9.3.1 but fails in 10.2, and was hoping someone may be able to shed some light on the matter.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using code which started its life as part of the DS Mapbook add on.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It creates a new ESRI.ArcGIS.esriSystem.CategoryFactory and sets the CategoryID to esriExportsCat.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It then loops thought the CategoryFacotry creating an exporter object for supported export file type (in this case the target is PDF).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However after, creating exporter objects for BMP, GIF and EPS, the loop crashes with the following error:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Unable to cast COM Object of type 'System._ComObject to interface type 'ESRI.ArcGIS.Output.IExport'...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]31969[/ATTACH]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can anybody help?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've posed the function below. The parameter string "PDF" is being passed to the function.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;Private Function GetTheLastExport(ByRef sExportType As String) As ESRI.ArcGIS.Output.IExport
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error GoTo ErrorHand

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pTempExport As ESRI.ArcGIS.Output.IExport
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Short
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim esriExportsCat As New ESRI.ArcGIS.esriSystem.UID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pCategoryFactory As ESRI.ArcGIS.esriSystem.ICategoryFactory
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim TempExportersCol As New Collection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSettingsInRegistry As ESRI.ArcGIS.Output.ISettingsInRegistry
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sLastUsedExporterName As String
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim lLastUsedExporterPriority As Integer

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Use a Category Factory object to create one instance of every class registered
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' in the "ESRI Exports" category.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Component Category: "ESRI Exports" = {66A7ECF7-9BE1-4E77-A8C7-42D3C62A2590}
344:&amp;nbsp;&amp;nbsp;&amp;nbsp; esriExportsCat.Value = "{66A7ECF7-9BE1-4E77-A8C7-42D3C62A2590}"
345:&amp;nbsp;&amp;nbsp;&amp;nbsp; pCategoryFactory = New ESRI.ArcGIS.esriSystem.CategoryFactory
346:&amp;nbsp;&amp;nbsp;&amp;nbsp; pCategoryFactory.CategoryID = esriExportsCat

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'As each exporter object is created, add it to a vb collection object for later use.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Use each exporter object's Priority property as a unique static key for later
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' access to each object in the collection.&amp;nbsp; Because some exporters change their file
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' extension based on settings (eg. SVG), we should read and sync the registry values
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' for each exporter after it is created.
353:&amp;nbsp;&amp;nbsp;&amp;nbsp; pTempExport = pCategoryFactory.CreateNext
354:&amp;nbsp;&amp;nbsp;&amp;nbsp; Do While Not pTempExport Is Nothing
355:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If pTempExport.Name = sExportType Then
356:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Do
357:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox(pTempExport.Name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'XXX crashing on next line (never gets to PDF) 
359:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pTempExport = pCategoryFactory.CreateNext
360:&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set the exporter properties to whatever they were for the last user
363:&amp;nbsp;&amp;nbsp;&amp;nbsp; pSettingsInRegistry = pTempExport
364:&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not pSettingsInRegistry Is Nothing Then
365:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSettingsInRegistry.RestoreForCurrentUser("Software\ESRI\Export\ExportObjectsParams")
366:&amp;nbsp;&amp;nbsp;&amp;nbsp; End If

368:&amp;nbsp;&amp;nbsp;&amp;nbsp; GetTheLastExport = pTempExport

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Function
ErrorHand:
372:&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox("DSMapBookExt_GetTheLastExport - " &amp;amp; Erl() &amp;amp; " - " &amp;amp; Err.Description)
&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 05 Mar 2014 23:48:59 GMT</pubDate>
    <dc:creator>RobertKoch</dc:creator>
    <dc:date>2014-03-05T23:48:59Z</dc:date>
    <item>
      <title>Problem Exporting PDF Layout from AcrMap 10 using vb.net...</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/problem-exporting-pdf-layout-from-acrmap-10-using/m-p/277903#M7163</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have some vb.net code which worked in ArcMap 9.3.1 but fails in 10.2, and was hoping someone may be able to shed some light on the matter.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using code which started its life as part of the DS Mapbook add on.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It creates a new ESRI.ArcGIS.esriSystem.CategoryFactory and sets the CategoryID to esriExportsCat.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It then loops thought the CategoryFacotry creating an exporter object for supported export file type (in this case the target is PDF).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However after, creating exporter objects for BMP, GIF and EPS, the loop crashes with the following error:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Unable to cast COM Object of type 'System._ComObject to interface type 'ESRI.ArcGIS.Output.IExport'...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]31969[/ATTACH]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can anybody help?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've posed the function below. The parameter string "PDF" is being passed to the function.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;Private Function GetTheLastExport(ByRef sExportType As String) As ESRI.ArcGIS.Output.IExport
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error GoTo ErrorHand

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pTempExport As ESRI.ArcGIS.Output.IExport
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Short
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim esriExportsCat As New ESRI.ArcGIS.esriSystem.UID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pCategoryFactory As ESRI.ArcGIS.esriSystem.ICategoryFactory
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim TempExportersCol As New Collection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pSettingsInRegistry As ESRI.ArcGIS.Output.ISettingsInRegistry
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sLastUsedExporterName As String
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim lLastUsedExporterPriority As Integer

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Use a Category Factory object to create one instance of every class registered
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' in the "ESRI Exports" category.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Component Category: "ESRI Exports" = {66A7ECF7-9BE1-4E77-A8C7-42D3C62A2590}
344:&amp;nbsp;&amp;nbsp;&amp;nbsp; esriExportsCat.Value = "{66A7ECF7-9BE1-4E77-A8C7-42D3C62A2590}"
345:&amp;nbsp;&amp;nbsp;&amp;nbsp; pCategoryFactory = New ESRI.ArcGIS.esriSystem.CategoryFactory
346:&amp;nbsp;&amp;nbsp;&amp;nbsp; pCategoryFactory.CategoryID = esriExportsCat

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'As each exporter object is created, add it to a vb collection object for later use.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Use each exporter object's Priority property as a unique static key for later
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' access to each object in the collection.&amp;nbsp; Because some exporters change their file
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' extension based on settings (eg. SVG), we should read and sync the registry values
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' for each exporter after it is created.
353:&amp;nbsp;&amp;nbsp;&amp;nbsp; pTempExport = pCategoryFactory.CreateNext
354:&amp;nbsp;&amp;nbsp;&amp;nbsp; Do While Not pTempExport Is Nothing
355:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If pTempExport.Name = sExportType Then
356:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Do
357:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox(pTempExport.Name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'XXX crashing on next line (never gets to PDF) 
359:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pTempExport = pCategoryFactory.CreateNext
360:&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set the exporter properties to whatever they were for the last user
363:&amp;nbsp;&amp;nbsp;&amp;nbsp; pSettingsInRegistry = pTempExport
364:&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not pSettingsInRegistry Is Nothing Then
365:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSettingsInRegistry.RestoreForCurrentUser("Software\ESRI\Export\ExportObjectsParams")
366:&amp;nbsp;&amp;nbsp;&amp;nbsp; End If

368:&amp;nbsp;&amp;nbsp;&amp;nbsp; GetTheLastExport = pTempExport

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Function
ErrorHand:
372:&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox("DSMapBookExt_GetTheLastExport - " &amp;amp; Erl() &amp;amp; " - " &amp;amp; Err.Description)
&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Mar 2014 23:48:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/problem-exporting-pdf-layout-from-acrmap-10-using/m-p/277903#M7163</guid>
      <dc:creator>RobertKoch</dc:creator>
      <dc:date>2014-03-05T23:48:59Z</dc:date>
    </item>
  </channel>
</rss>

