Где скопировать файл gsdll32.dll, чтобы конвертер PDF в изображения работал в моем приложении WPF?

Мой ПРОЕКТ дает ошибку..

* Невозможно найти точку входа с именем "gsapi_new_instance" в DLL "gsdll32.dll".*

при попытке конвертировать.pdf в формат изображения с помощью Ghost-script Interpreter dll 'gsdll32.dll'

Даже если я попытался скопировать эту dll во все нужные места, как сказано на многих форумах, как в

Win\System32 или в каталоге проекта.. Ошибка остается прежней..:(

Я использовал класс PDFConvert.cs, предоставленный Ghost-script, и написал следующий код при нажатии кнопки "Преобразовать":

private void btnConvert_Click(object sender, RoutedEventArgs e)
{
  //First We Check whether the Dll is present

    if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\gsdll32.dll"))
    {
        MessageBox.Show("The library 'gsdll32.dll' required to run this program is not present! download GhostScript and copy \"gsdll32.dll\" to this program directory");
        return;
    }
    if (string.IsNullOrEmpty(txtSingleFile.Text))
    {
        MessageBox.Show("Enter the File name");
        txtSingleFile.Focus();
        return;
    }
    else if (!File.Exists(txtSingleFile.Text))
    {
        MessageBox.Show("The File Does not exists");
        txtSingleFile.Focus();
    }

    else
        ConvertPdfToImage(txtSingleFile.Text);
}

и мой метод ConvertPdfToImage выглядит так:

//The Ghost-Script Class Object Creation:
PdfToImage.PDFConvert converter = new PdfToImage.PDFConvert();
public void ConvertPdfToImage(string filename)
{
    //bool converted = false;
    System.IO.FileInfo input = new FileInfo(filename);
    string outPut = string.Format("{0}\\{1}{2}", input.DirectoryName, input.Name, txtExtensionName.Text);

    converter.OutputFormat = txtExtensionName.Text;

    outPut = outPut.Replace(txtExtensionName.Text, string.Format("{1}{0}", txtExtensionName.Text, DateTime.Now.Ticks));
    converter.Convert(input.FullName, outPut);
    lblConvertingResult.Content = string.Format("{0}:File Converted..!!", DateTime.Now.ToShortTimeString());
}

Я полагаю, что эта ошибка происходит из-за неправильного размещения библиотеки gsdll32.dll, потому что тот же код хорошо работает с примером демонстрации, предоставленной API-интерфейсом интерпретатора Ghost-Script. Пожалуйста, предложите точное местоположение, где я должен хранить dll-gsdll32.dll.!!

2 ответа

Решение

Я знаю, что этот вопрос немного устарел, но если у кого-то есть такая проблема, я решу ее следующим образом: загрузив и установив пакет GhostScriptSharp из Visual Studio http://www.nuget.org/packages/GhostScriptSharp/

Попробуйте с полным путем DLL вместо только имени.
Например, если ваша dll хранится в D:\TestApplication\bin\gsdll32.dll,

[DllImport("gsdll32.dll", EntryPoint="gsapi_new_instance")] 

Выше заявление будет

[DllImport("D:\\TestApplication\\bin\\gsdll32.dll", EntryPoint="gsapi_new_instance")]

Я наконец-то понял. Я скачал последнюю DLL, изменил код для поиска обновленной библиотеки DLL, и это сработало.

Другие вопросы по тегам