2017-04-10 224 views
-3

我正在寻找免费/开放源码库,可以将PDF文件转换为一系列JPEG图像。将PDF转换为图像序列C#

我以前使用Apache PDF Box在Java中完成了这一工作,所以我正在寻找类似的ASP NET项目。

到目前为止,我已经找到了库有局限性,我没能一起工作:

  • Ghostscript的 - 需要安装单独的应用程序的服务器上
  • PDFSharp - 从PDF中提取图像,严重依赖在PDF组成,没有一些文件的工作
  • iTextSharp的 - 显然不能PDF页面转换为JPEG,类似的问题,因为PDFSharp

任何顾对于一个工作的库,使我能够将PDF转换为一系列的图像与一个工作的例子会很棒。

同时我会继续挖掘,如果有东西弹出,我会添加为答案。

+0

您可以尝试使用PdfiumViewer执行此任务。 https://github.com/pvginkel/PdfiumViewer –

+0

@UladzimirPalekh谢谢。我不知道为什么有人将这个问题投票为合法的查询。 – Aeseir

回答

1

此代码适用于我。它使用PdfiumViewer库。

private static Image GetPageImage(int pageNumber, Size size, PdfiumViewer.PdfDocument document, int dpi) 
{ 
    return document.Render(pageNumber - 1, size.Width, size.Height, dpi, dpi, PdfRenderFlags.Annotations); 
} 

private void RenderPage(string pdfPath, int pageNumber, Size size, string outputPath) 
{ 
    using (var document = PdfiumViewer.PdfDocument.Load(pdfPath)) 
    using (var stream = new FileStream(outputPath, FileMode.Create)) 
    using (var image = GetPageImage(pageNumber, size, document, 150)) 
    { 
     image.Save(stream, ImageFormat.Jpeg); 
    } 
} 
+0

感谢你们,我正努力让它现在能够正常工作,你有这样的例子要求你建议要渲染什么页面,你有什么可以统计页面数量并迭代它们吗? – Aeseir

+0

您是否试图检查'''PdfiumViewer.PdfDocument'''中有哪些属性可用?有'''PdfDocument.PageCount'''。 –

+0

现在看那个。无论如何无法正常工作,需要构建PDFium库及其随机芯片。将继续寻找选择。谢谢 – Aeseir