PDF到bmp图像(12页= 12张图片)

时间:2014-07-09 12:28:17

标签: c# asp.net pdf bitmap converter

我必须逐页解构/提取pdf到位图图像。这将通过我已设置的网络服务在服务器上完成。我怎么做到这一点?它必须是逐页的(每个图像1页)。 我真的被困了,我知道你们中的一个天才有我一直在寻找的答案。

我尝试过:http://www.pdfsharp.net/wiki/ExportImages-sample.ashx哪些方法无效。

我正在使用C#; PDF不受密码保护; 如果这个解决方案可以将Uri作为PDF位置的参数,那就太棒了!

解决方案不应完全依赖于Acrobat PDF Reader

我一直在努力尝试使用MigraDoc和PDFSharp及其替代方案来解决上述问题。

非常感谢任何帮助/建议/代码!!

提前致谢!

1 个答案:

答案 0 :(得分:5)

LibPdf

此库将PDF文件转换为图像。支持的图像格式是PNG和BMP,但您可以轻松添加更多。

用法示例:

using (FileStream file = File.OpenRead(@"..\path\to\pdf\file.pdf")) // in file
{
    var bytes = new byte[file.Length];
    file.Read(bytes, 0, bytes.Length);
    using (var pdf = new LibPdf(bytes))
    {
        byte[] pngBytes = pdf.GetImage(0,ImageType.BMP); // image type
        using (var outFile = File.Create(@"..\path\to\pdf\file.bmp")) // out file
        {
            outFile.Write(pngBytes, 0, pngBytes.Length);
        }
    }
}

Bytescout PDF Renderer SDK

using System;

using Bytescout.PDFRenderer;


namespace PDF2BMP
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create an instance of Bytescout.PDFRenderer.RasterRenderer object and register it.
            RasterRenderer renderer = new RasterRenderer();
            renderer.RegistrationName = "demo";
            renderer.RegistrationKey = "demo";

            // Load PDF document.
            renderer.LoadDocumentFromFile("multipage.pdf");

            for (int i = 0; i < renderer.GetPageCount(); i++)
            {
                // Render first page of the document to BMP image file.
                renderer.RenderPageToFile(i, RasterOutputFormat.BMP, "image" + i + ".bmp");
            }

            // Open the first output file in default image viewer.
            System.Diagnostics.Process.Start("image0.bmp");
        }
    }
}