【问题标题】:How to convert a pdf bytes to an image byte如何将pdf字节转换为图像字节
【发布时间】:2019-12-02 15:35:57
【问题描述】:

我上传了一个 PDF 文件并将其转换为字节格式并保存在数据库中。在获取 PDF 字节数组时,我需要将它们转换为图像格式,以便我可以将图像插入到新的 PDF 报告中

SqlCommand objCmd = new SqlCommand(sTSQL, con);
            objCmd.CommandType = CommandType.Text;
            object result = objCmd.ExecuteScalar();


byte[] byteArray;
                BinaryFormatter bf = new BinaryFormatter();
                MemoryStream ms = new MemoryStream();
                bf.Serialize(ms, result);
                byteArray = ms.ToArray(); // Byte Array
                ms.Close();

                ms = new MemoryStream(byteArray, 0, byteArray.Length);
                ms.Seek(0, SeekOrigin.Begin);
                System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);`enter code here`

错误声明:“参数无效”

【问题讨论】:

  • 您需要一个 PDF 渲染器。

标签: c# pdf itext image-conversion


【解决方案1】:

问题是您尝试写入图像的流是实际 PDF 的字节表示,所以这不起作用。

您可以使用诸如ImageMagick 之类的工具 - 这是库的 .NET 包装器,可让您将 PDF 转换为图像。这实际上会弄清楚 PDF 在渲染时的样子,并将其转换为图像。

ImageMagick 是一个强大的图像处理库,支持 超过 100 种主要文件格式(不包括子格式)。和 Magick.NET,您无需安装即可使用 ImageMagick 您的服务器或桌面上的 ImageMagick。访问 https://github.com/dlemstra/Magick.NET/tree/master/Documentation 在安装之前帮助您确定最佳版本。

【讨论】:

  • 但我想将 pdf 字节数组转换为图像。我一直在尝试很多代码,但错误消息似乎是一样的
  • @Phoenix 您不能以这种方式将原始字节转换为图像,因为这些字节实际上代表 PDF 内容(文本、位置、图像等)-您需要一些东西来渲染 PDF 并将其转换成图像。
  • Imagemagick 使用 Ghostscript 将 PDF 文件光栅化为图像。所以你可以只使用 Ghostscript 来进行处理而不使用 Imagemagick。
  • 在 iText 测试中,即使是 iText 也使用 ImageMagick&Ghostscript 将 PDF 文件渲染为图像(在 GitHub 上亲自查看)。
  • 我尝试使用 GhostScript : - rasterizer.Open(inputFile) 这返回页数 0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-28
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 2014-01-13
相关资源
最近更新 更多