Изображения не отображаются при использовании Interop.Excel для преобразования Excel в PDF - PullRequest
5 голосов
/ 05 июля 2011

Я использую Interop.Excel для преобразования Excel (xlsx) (2010) в PDF для приложения. На моей машине разработки он работает нормально, и изображения отображаются правильно. Однако на сервере, когда Excel преобразуется в PDF, изображения (некоторые вставляются с помощью кода, а другие в шаблон документа) не отображаются в PDF. Файл Excel в порядке при просмотре. Вот мой код, который я использую для преобразования в PDF:

Public Shared Function FromExcel(ByVal ExcelFileLocation As String, ByVal PDFFileLocation As String) As Boolean

    ' Load the new Excel file
    ' http://msdn.microsoft.com/en-us/library/bb407651(v=office.12).aspx
    Dim excelApplication As ApplicationClass = New ApplicationClass()
    Dim excelWorkbook As Workbook = Nothing

    Dim paramExportFormat As XlFixedFormatType = XlFixedFormatType.xlTypePDF
    Dim paramExportQuality As XlFixedFormatQuality = XlFixedFormatQuality.xlQualityStandard
    Dim paramOpenAfterPublish As Boolean = False
    Dim paramIncludeDocProps As Boolean = True
    Dim paramIgnorePrintAreas As Boolean = True
    Dim paramFromPage As Object = Type.Missing
    Dim paramToPage As Object = Type.Missing

    Try
        ' Open the source workbook.
        excelWorkbook = excelApplication.Workbooks.Open(ExcelFileLocation)

        ' Save it in the target format.
        If Not excelWorkbook Is Nothing Then
            excelWorkbook.ExportAsFixedFormat(paramExportFormat, _
                PDFFileLocation, paramExportQuality, _
                paramIncludeDocProps, paramIgnorePrintAreas, _
                paramFromPage, paramToPage, paramOpenAfterPublish)

            Return True

        Else
            Return False
        End If

    Catch ex As Exception
        Return False
    Finally
        ' Close the workbook object.
        If Not excelWorkbook Is Nothing Then
            excelWorkbook.Close(False)
            excelWorkbook = Nothing
        End If

        ' Quit Excel and release the ApplicationClass object.
        If Not excelApplication Is Nothing Then
            excelApplication.Quit()
            excelApplication = Nothing
        End If

        GC.Collect()
        GC.WaitForPendingFinalizers()
        GC.Collect()
        GC.WaitForPendingFinalizers()

    End Try

End Function

Вот скриншот того, как выглядит PDF при конвертации. http://it.hlbsolutions.com/uploads/Untitled-1.jpg

Обратите внимание, что изображения вверху и внизу справа не отображаются. Любые мысли будут полезны.

Спасибо

1 Ответ

1 голос
/ 16 января 2012

У меня была похожая проблема при заполнении ячеек и переключении переключателей - все изображения исчезли бы.

Мне удалось получить изображения, которые нельзя удалить, переключив служебную учетную запись на Локальная система вместо "Локальная служба", как я изначально выбрал.

Подробнее на этот вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...