Questa pagina può contenere testo tradotto automaticamente.

Converti PDF in immagini in C# e VB.NET

Ci sono casi in cui è necessario convertire i PDF in immagini. Ad esempio, potrebbe essere necessario creare immagini in miniatura da PDF o eseguire il riconoscimento ottico dei caratteri (OCR) su alcuni documenti PDF.

È possibile utilizzare la libreria Docotic.Pdf per convertire documenti PDF in immagini in progetti C# e VB.NET. La libreria è gestita al 100% senza dipendenze esterne. Non utilizza System.Drawing.dll e GDI+ per la rasterizzazione dei PDF. Pertanto, otterrai un output coerente su Windows, Linux, macOS, iOS e Android.

Libreria Docotic.Pdf 9.3.17036-dev Test di regressione Ne sono passati 14,665 Download totali di NuGet 4,191,515

È possibile scaricare i binari della libreria o utilizzare il relativo pacchetto NuGet. Per provare Docotic.Pdf senza restrizioni sulla modalità di valutazione, puoi ottenere la chiave di licenza gratuita a tempo limitato utilizzando il modulo qui.

Docotic.Pdf fornisce molte opzioni per la conversione da PDF a immagine. E può anche renderizzare e stampare documenti PDF. Diamo un'occhiata a come convertire PDF in immagini utilizzando la libreria Docotic.Pdf.

Da PDF a immagine in C# e VB.NET

Salva la pagina PDF come immagine PNG, JPG o TIFF

La libreria Docotic.Pdf ti consente di convertire pagine PDF in immagini PNG, JPEG o TIFF. È possibile scrivere le immagini risultanti in uno stream o in un file. Questo snippet C# salva le pagine PDF in immagini PNG con uno sfondo bianco e una risoluzione di 300x300 dpi:

using BitMiracle.Docotic.Pdf;

using (var pdf = new PdfDocument("your_document.pdf"))
{
    PdfDrawOptions options = PdfDrawOptions.Create();
    options.BackgroundColor = new PdfRgbColor(255, 255, 255);
    options.HorizontalResolution = 300;
    options.VerticalResolution = 300;

    for (int i = 0; i < pdf.PageCount; ++i)
        pdf.Pages[i].Save($"page_{i}.png", options);
}

Puoi indicare alla libreria di produrre immagini JPEG o TIFF anziché PNG utilizzando la proprietà PdfDrawOptions.Compression. Il seguente frammento mostra come passare alla creazione di immagini JPEG:

PdfDrawOptions options = ..;
options.Compression = ImageCompressionOptions.CreateJpeg();

Gli esempi C# e VB.NET correlati sono disponibili su GitHub.

Documento PDF in TIFF multipagina in .NET

È possibile salvare l'intero documento in un'immagine TIFF multipagina utilizzando il metodo PdfDocument.SaveAsTiff. Ecco un esempio C# per la conversione da PDF a TIFF:

using (var pdf = new PdfDocument("document.pdf"))
{
    PdfDrawOptions options = PdfDrawOptions.Create();
    options.BackgroundColor = new PdfRgbColor(255, 255, 255);

    pdf.SaveAsTiff("result.tiff", options);
}

Scarica e prova il codice di esempio Salva PDF come TIFF multipagina da GitHub. Qui sono disponibili entrambe le versioni C# e VB.NET.

Crea miniature da PDF

Con l'aiuto della libreria Docotic.Pdf, puoi generare miniature da pagine PDF. Questo esempio C# crea una miniatura di 200x200 pixel dalla prima pagina del PDF specificato e scrive la miniatura in un flusso di memoria:

using (var pdf = new PdfDocument("document.pdf"))
{
    PdfDrawOptions options = PdfDrawOptions.CreateFitSize(new PdfSize(200, 200), false);
    options.BackgroundColor = new PdfGrayColor(100);
    
    using (var stream = new MemoryStream())
    {
        pdf.Pages[0].Save(stream, options);
        ..
    }
}

È inoltre possibile utilizzare il metodo PdfDrawOptions.CreateFitWidth o PdfDrawOptions.CreateFitHeight per produrre immagini in miniatura della larghezza o altezza specificata.

Converti PDF in immagini bitonali o in scala di grigi in .NET

La libreria può convertire documenti PDF in immagini TIFF bitonali (bianco e nero). Questo esempio mostra come produrre un'immagine TIFF bitonale da un documento PDF in C#:

using (var pdf = new PdfDocument("colored.pdf"))
{
    PdfDrawOptions options = PdfDrawOptions.Create();
    options.BackgroundColor = new PdfRgbColor(255, 255, 255);
    options.Compression = ImageCompressionOptions.CreateTiff().SetBitonal();

    pdf.SaveAsTiff("bitonal.tiff", options);
}

È inoltre possibile specificare un livello di soglia quando si utilizza il metodo TiffImageCompressionOptions.SetBitonalThreshold. Il livello di soglia definisce come trasformare i colori in scala di grigi, RGB o CMYK in bianco e nero.

Docotic.Pdf supporta anche la conversione di immagini da PDF a PNG, JPG o TIFF in scala di grigi. Basta usare uno dei PngImageCompressionOptions.SetGrayscale, JpegImageCompressionOptions.SetGrayscale, TiffImageCompressionOptions.SetGrayscale come nel seguente snippet:

PdfDrawOptions options = ..;
options.Compression = ImageCompressionOptions.CreatePng().SetGrayscale();

Ingrandisci il PDF

Il metodo PdfDrawOptions.CreateZoom consente di ottenere un'immagine di una pagina PDF con un livello di zoom specificato. Questo esempio C# converte una pagina PDF in un'immagine con un livello di zoom del 400%:

using (var pdf = new PdfDocument(@"document.pdf"))
{
    PdfDrawOptions options = PdfDrawOptions.CreateZoom(400);
    pdf.Pages[0].Save("zoomed.png", options);
}

PDF parziale per il rendering dell'immagine

Potrebbe essere necessario convertire solo una parte di una pagina PDF in immagine. Ad esempio, per dividere una pagina PDF di grandi dimensioni in riquadri. O per ritagliare alcuni contenuti indesiderati.

Questo codice C# salva un'immagine di un'area di punti 256x256 nell'angolo in alto a sinistra di una pagina PDF:

using (var pdf = new PdfDocument("large.pdf"))
{
    PdfDrawOptions options = PdfDrawOptions.Create();
    options.BackgroundColor = new PdfRgbColor(255, 255, 255);

    PdfPage page = pdf.Pages[0];
    PdfBox cropBoxBefore = page.CropBox;

    page.CropBox = new PdfBox(0, cropBoxBefore.Height - 256, 256, cropBoxBefore.Height);
    page.Save("part.png", options);

    page.CropBox = cropBoxBefore;
}

PDF affiancato per il rendering di immagini

Docotic.Pdf fornisce il supporto integrato per il rendering affiancato di PDF in TIFF. Questo metodo è utile quando è necessario elaborare pagine PDF di grandi dimensioni utilizzando una quantità fissa di memoria.

Ad esempio, il tuo documento PDF contiene una pagina che ha una dimensione di 10000x10000 punti. La conversione regolare di questa pagina in un'immagine RGB con una risoluzione di 300 DPI richiede oltre 1 Gb (= 10000 * 10000 * 3 * 300 / 72,0 byte) di memoria per i dati immagine RGB intermedi non compressi. Utilizzando il rendering affiancato con riquadri 1024x1024, è possibile limitare il consumo di memoria per i dati immagine RGB non compressi a 12 Mb (= 1024 * 1024 * 3 * 300 / 72,0 byte).

Tieni presente che la conversione da PDF affiancato a immagine è più lenta della conversione normale. Per ogni riquadro, la libreria deve elaborare tutte le operazioni della pagina PDF, anche se alcune di esse non influiscono sul riquadro corrente.

Questo esempio C# mostra come convertire PDF in immagine utilizzando riquadri 512x512:

using (var pdf = new PdfDocument("large.pdf"))
{
    PdfDrawOptions options = PdfDrawOptions.Create();
    options.Compression = ImageCompressionOptions.CreateTiff().SetTileSize(512, 512);
    options.BackgroundColor = new PdfGrayColor(100);
    options.HorizontalResolution = 300;
    options.VerticalResolution = 300;

    pdf.Pages[0].Save("tiled.tiff", options);
}

Conclusione

Libreria Docotic.Pdf fornisce diverse opzioni per la conversione da PDF a immagine in .NET. Puoi convertire le pagine PDF in immagini a dimensione intera o in miniatura nei formati PNG, TIFF e JPEG. Inoltre, puoi salvare i documenti PDF come file TIFF multipagina. La libreria può anche produrre immagini bitonali e in scala di grigi.

Scarica e prova gli esempi da PDF a immagine da GitHub.

Contattaci se hai domande sulla conversione da PDF a immagine.