.NET 6 使用IText7将PDF转图片
时间: 2024-02-25 07:51:25 浏览: 283
在 .NET 6 中使用 iText7 将 PDF 转换为图片,可以使用 PdfDocumentRenderer 类和 ImageRenderInfo 类。
以下是示例代码:
```csharp
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Renderer;
using System.Drawing;
using System.Drawing.Imaging;
public void ConvertPdfToImage(string pdfFilePath, string outputDirectory)
{
using (PdfDocument pdfDocument = new PdfDocument(new PdfReader(pdfFilePath)))
{
int pageCount = pdfDocument.GetNumberOfPages();
for (int pageIndex = 1; pageIndex <= pageCount; pageIndex++)
{
PdfPage pdfPage = pdfDocument.GetPage(pageIndex);
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(false);
pdfRenderer.Document = new Document(pdfPage.GetDocument());
pdfRenderer.Render(new[] { pageIndex }, outputDirectory);
string outputFilePath = Path.Combine(outputDirectory, $"{Path.GetFileNameWithoutExtension(pdfFilePath)}_{pageIndex}.png");
ImageRenderInfo imageRenderInfo = pdfRenderer.GetImageRenderInfo(pageIndex);
using (Bitmap bitmap = new Bitmap(imageRenderInfo.GetImage(), imageRenderInfo.GetWidth(), imageRenderInfo.GetHeight()))
{
bitmap.Save(outputFilePath, ImageFormat.Png);
}
}
}
}
```
在此示例中,我们首先使用 PdfDocumentRenderer 类将 PDF 页面渲染为图像,并将其保存到指定目录中。然后,我们使用 ImageRenderInfo 类获取图像的位图并将其保存为 PNG 文件。请注意,此示例只转换了单个 PDF 页面,如果需要转换多个页面,则需要在循环中调用相应的代码。
阅读全文