Magick.net 将 PDF 转换为图像 "unable to create temporary file '': No such file or directory @ error/pdf.c/ReadPDFImage/476"
Magick.net converting PDF to image "unable to create temporary file '': No such file or directory @ error/pdf.c/ReadPDFImage/476"
我正在尝试在控制台应用程序中使用 Magick.net 从 PDF 渲染图像,但似乎无法解决这个问题。
在调用 "MagickImageCollection.Read(byte[], settings)" 时,我总是得到一个
"unable to create temporary file '': No such file or directory @
error/pdf.c/ReadPDFImage/476"
异常。
我试过:
- 将 x86 和 64 位 Ghostscript dll 放在 bin 文件夹中。
- 使用 AnyCPU、x86、64 版本 Magick.net 与 GS 版本的组合
- 设置MagickNET.SetGhostscriptDirectory到程序文件GS bin文件夹
- 将 MagickNET.SetTempDirectory 设置到 c:/temp 中的一个文件夹,并确认我的应用程序可以通过以编程方式将文件移动到那里来访问。
- 设置 MagickAnyCPU.CacheDirectory 到 c:/temp 中的文件夹
我不知道自己可能做错了什么
using (MagickImageCollection images = new MagickImageCollection())
{
// Add all the pages of the pdf file to the collection
images.Read(file, settings);
switch (orientation)
{
case Orientation.Horizontal:
using (MagickImage image = (MagickImage)images.AppendHorizontally())
{
using (MemoryStream ms = new MemoryStream())
{
image.Write(ms);
return ms.ToArray();
}
}
case Orientation.Vertical:
using (MagickImage image = (MagickImage)images.AppendHorizontally())
{
using (MemoryStream ms = new MemoryStream())
{
image.Write(ms);
return ms.ToArray();
}
}
}
}
我终于解决了这个问题,我将错误的读取设置传递给 MagickImageCollection.Read(byte[], settings)。
我告诉 Magick 读取 PNG 格式的 PDF 而不是将结果写入 PNG...
MagickReadSettings settings = new MagickReadSettings();
settings.Format = MagickFormat.Png;
我觉得有点傻但是错误信息完全通过我关闭。
我正在尝试在控制台应用程序中使用 Magick.net 从 PDF 渲染图像,但似乎无法解决这个问题。
在调用 "MagickImageCollection.Read(byte[], settings)" 时,我总是得到一个
"unable to create temporary file '': No such file or directory @ error/pdf.c/ReadPDFImage/476"
异常。
我试过:
- 将 x86 和 64 位 Ghostscript dll 放在 bin 文件夹中。
- 使用 AnyCPU、x86、64 版本 Magick.net 与 GS 版本的组合
- 设置MagickNET.SetGhostscriptDirectory到程序文件GS bin文件夹
- 将 MagickNET.SetTempDirectory 设置到 c:/temp 中的一个文件夹,并确认我的应用程序可以通过以编程方式将文件移动到那里来访问。
- 设置 MagickAnyCPU.CacheDirectory 到 c:/temp 中的文件夹
我不知道自己可能做错了什么
using (MagickImageCollection images = new MagickImageCollection())
{
// Add all the pages of the pdf file to the collection
images.Read(file, settings);
switch (orientation)
{
case Orientation.Horizontal:
using (MagickImage image = (MagickImage)images.AppendHorizontally())
{
using (MemoryStream ms = new MemoryStream())
{
image.Write(ms);
return ms.ToArray();
}
}
case Orientation.Vertical:
using (MagickImage image = (MagickImage)images.AppendHorizontally())
{
using (MemoryStream ms = new MemoryStream())
{
image.Write(ms);
return ms.ToArray();
}
}
}
}
我终于解决了这个问题,我将错误的读取设置传递给 MagickImageCollection.Read(byte[], settings)。
我告诉 Magick 读取 PNG 格式的 PDF 而不是将结果写入 PNG...
MagickReadSettings settings = new MagickReadSettings();
settings.Format = MagickFormat.Png;
我觉得有点傻但是错误信息完全通过我关闭。