你不能用iText来完成这个任务,因为它无法在PDF文件中渲染或光栅化矢量图形。
选项1:
如果GPL许可证适用于您,您可以使用Imagemagick+GNU Ghostscript来将PDF文件光栅化,但据我所知,在这种情况下,您必须将输出写入文件中。
命令行示例:
convert -density 300 -depth 8 c:\temp\mydoc.pdf c:\temp\myrasterimage.png
Codeplex 上也有一个 .net 封装器,可能适合您使用:ImageMagick.NET
选项 A:
如果商业库对您来说是一个选择,您可以尝试使用 Amyuni PDF Creator .Net。您可以使用方法 IacDocument.ExportToJpg,该方法需要写入文件,或者您可以使用方法 IacDocument.DrawCurrentPage,该方法可用于将输出写入内存流。
使用 IacDocument.DrawCurrentPage
导出一页到内存流的示例代码:
const int twipsPerInch = 1440;
const int MM_ISOTROPIC = 7;
private static MemoryStream RasterizePDF(string filePath, int pageIndex, int targetDPI)
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern int SetMapMode(IntPtr hdc, int MapMode);
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern int SetWindowExtEx(IntPtr hdc, int nXExtent, int nYExtent, int not_used);
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern int SetViewportExtEx(IntPtr hdc, int nXExtent, int nYExtent, int not_used);
声明:我目前作为该库的开发人员工作