В этом примере мы растеризуем/сохраним 1-ю и 2-ю страницы PDF-документа как изображения PNG и JPEG.
Полный код
using System;
using System.IO;
using SautinSoft.Document;
using SkiaSharp;
namespace Example
{
class Program
{
static void Main(string[] args)
{
// Get your free 100-day key here:
// https://sautinsoft.com/start-for-free/
RasterizePdfToPicture();
}
/// <summary>
/// Rasterizing - save PDF document as PNG and JPEG images.
/// </summary>
/// <remarks>
/// Details: https://www.sautinsoft.com/products/document/help/net/developer-guide/rasterize-save-pdf-document-as-png-jpeg-images-net-csharp-vb.php
/// </remarks>
static void RasterizePdfToPicture()
{
// In this example we'll how rasterize/save 1st and 2nd pages of PDF document
// as PNG and JPEG images.
string inputFile = @"..\..\..\example.pdf";
string jpegFile = "Result.jpg";
string pngFile = "Result.png";
DocumentCore dc = DocumentCore.Load(inputFile, new PdfLoadOptions()
{
DetectTables = false,
ConversionMode = PdfConversionMode.Exact
});
DocumentPaginator documentPaginator = dc.GetPaginator(new PaginatorOptions() { UpdateFields = true });
int dpi = 300;
int pagesToRasterize = 2;
int currentPage = 1;
foreach (DocumentPage page in documentPaginator.Pages)
{
// Save the page into Bitmap image with specified dpi and background.
var DPI = new ImageSaveOptions();
DPI.DpiX = 300;
DPI.DpiY = 300;
// Save the 1st document page to the file in PNG format.
SkiaSharp.SKBitmap picture = page.Rasterize(DPI, SautinSoft.Document.Color.White);
// Save the Bitmap to a PNG file.
if (currentPage == 1)
picture.Encode(new FileStream(pngFile, FileMode.Create), SkiaSharp.SKEncodedImageFormat.Png, 100);
else if (currentPage == 2)
// Save the Bitmap to a JPEG file.
picture.Encode(new FileStream(jpegFile, FileMode.Create), SkiaSharp.SKEncodedImageFormat.Jpeg, 100);
currentPage++;
if (currentPage > pagesToRasterize)
break;
}
// Open the results for demonstration purposes.
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(pngFile) { UseShellExecute = true });
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(jpegFile) { UseShellExecute = true });
}
}
}
Imports System
Imports System.IO
Imports SautinSoft.Document
Imports SkiaSharp
Namespace Example
Friend Class Program
Shared Sub Main(ByVal args() As String)
RasterizePdfToPicture()
End Sub
''' Get your free 100-day key here:
''' https://sautinsoft.com/start-for-free/
''' <summary>
''' Rasterizing - save PDF document as PNG and JPEG images.
''' </summary>
''' <remarks>
''' Details: https://www.sautinsoft.com/products/document/help/net/developer-guide/rasterize-save-pdf-document-as-png-jpeg-images-net-csharp-vb.php
''' </remarks>
Private Shared Sub RasterizePdfToPicture()
' In this example we'll how rasterize/save 1st and 2nd pages of PDF document
' as PNG and JPEG images.
Dim inputFile As String = "..\..\..\example.pdf"
Dim jpegFile As String = "Result.jpg"
Dim pngFile As String = "Result.png"
Dim dc As DocumentCore = DocumentCore.Load(inputFile, New PdfLoadOptions() With {
.DetectTables = False,
.ConversionMode = PdfConversionMode.Exact
})
Dim documentPaginator As DocumentPaginator = dc.GetPaginator(New PaginatorOptions() With {.UpdateFields = True})
Dim pagesToRasterize As Integer = 2
Dim currentPage As Integer = 1
For Each page As DocumentPage In documentPaginator.Pages
' Save the page into Bitmap image with specified dpi and background.
Dim dpi As ImageSaveOptions = New ImageSaveOptions
dpi.DpiX = 72
dpi.DpiY = 72
Dim picture As SKBitmap = page.Rasterize(dpi, SautinSoft.Document.Color.White)
' Save the Bitmap to a PNG file.
If currentPage = 1 Then
picture.Encode(New FileStream(pngFile, FileMode.Create), SkiaSharp.SKEncodedImageFormat.Png, 100)
ElseIf currentPage = 2 Then
' Save the Bitmap to a JPEG file.
picture.Encode(New FileStream(jpegFile, FileMode.Create), SkiaSharp.SKEncodedImageFormat.Jpeg, 100)
End If
currentPage += 1
If currentPage > pagesToRasterize Then
Exit For
End If
Next page
' Open the results for demonstration purposes.
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(pngFile) With {.UseShellExecute = True})
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(jpegFile) With {.UseShellExecute = True})
End Sub
End Class
End Namespace
Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.com или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже: