Преобразование PDF в изображение без использования Ghostscript DLL
Есть ли способ, я могу преобразовать HTML-документ (файл не URL) в изображение или PDF в изображение?
Я могу сделать это, используя Ghostscript DLL, есть ли другой способ, я могу это сделать, не используя Ghostscript DLL?
Я разрабатываю приложение Windows С#.
Ответы
Ответ 1
Используйте LibPdf для преобразования PDF в Image
Библиотека 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.PNG); // image type
using (var outFile = File.Create(@"..\path\to\pdf\file.png")) // out file
{
outFile.Write(pngBytes, 0, pngBytes.Length);
}
}
}
ImageMagick, вы также должны посмотреть на этот свободно доступный и мощный инструмент. Он способен делать то, что вам нужно, а также предоставляет некоторые привязки .NET(а также привязки к нескольким другим языкам).
В своей простейшей форме это точно так же, как написать команду
convert file.pdf imagefile.png
Ответ 2
Вы можете использовать ниже любой библиотеки для преобразования PDF в изображение
Используйте Aspose.pdf ссылку ниже:
http://www.aspose.com/docs/display/pdfnet/Convert+all+PDF+pages+to+JPEG+Images
пример кода:
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(MyPdfPath));
using (FileStream imageStream = new FileStream(MyOutputImage.png, FileMode.Create))
{
Resolution resolution = new Resolution(300);
PngDevice pngDevice = new PngDevice(resolution);
pngDevice.Process(pdfDocument.Pages[PageNo], MyOutputImage);
imageStream.Close();
}
Используйте ссылку Bytescout PDF Renderer ниже:
http://bytescout.com/products/developer/pdfrenderersdk/convert-pdf-to-png-basic-examples
пример кода:
MemoryStream ImageStream = new MemoryStream();
RasterRenderer renderer = new RasterRenderer();
renderer.RegistrationName = "demo";
renderer.RegistrationKey = "demo";
// Load PDF document.
renderer.LoadDocumentFromFile(FilePath);
for (int i = 0; i < renderer.GetPageCount(); i++)
{
// Render first page of the document to PNG image file.
renderer.RenderPageToStream(i, RasterOutputFormat.PNG, ImageStream);
}
Image im = Image.FromStream(ImageStream);
im.Save("MyOutputImage.png");
ImageStream.Close();