Při vkládání PDF dokumentů do webové aplikace můžete často potřebovat generovat miniatury. Při vytváření prohlížeče PDF jsou také vyžadovány miniatury stránek. Pro takové scénáře tento článek popisuje, jak generovat miniatury souboru PDF programově v C# .NET. Výslovně se budeme zabývat tím, jak vytvořit miniaturu konkrétní stránky nebo všech stránek v souboru PDF.
- .NET API pro generování miniatur PDF
- Vygenerujte miniaturu souboru PDF
- Generujte miniatury všech stránek v PDF
C# .NET API pro generování miniatur PDF
Aspose.PDF for .NET je knihovna tříd C#, která vám umožňuje vytvářet a manipulovat s dokumenty PDF v rámci aplikací .NET. Pomocí API můžete poměrně snadno provádět základní i pokročilé operace automatizace PDF. Toto API použijeme ke generování miniatur souboru PDF. API lze stáhnout jako DLL nebo nainstalovat přes NuGet.
PM> Install-Package Aspose.Pdf
Vygenerujte miniaturu souboru PDF v C# .NET
Obvykle musíte pro dokument PDF vygenerovat jeden náhledový obrázek. Stránka pro náhled může být titulní stránka nebo jakákoli jiná stránka podle vašeho výběru. Následují kroky pro vygenerování miniatury požadované stránky PDF v C#.
- Načtěte soubor PDF pomocí třídy Document.
- Získejte odkaz na požadovanou stránku z kolekce Document.Pages.
- Vytvořte nový FileStream pro soubor obrázku.
- Vytvořte instanci třídy Resolution pro nastavení rozlišení obrázku miniatury.
- Vytvořte instanci JpegDevice a nastavte výšku, šířku, rozlišení a kvalitu obrázku.
- Vygenerujte miniaturu pomocí metody JpegDevice.Process(Page, FileStream).
- Zavřete datový proud souboru.
Následující ukázka kódu ukazuje, jak vygenerovat miniaturu souboru PDF v C#.
// Otevřete dokument
Document pdfDocument = new Document("file.pdf");
int pageIndex = 0;
// Získejte stránku požadovaného indexu z kolekce
var page = pdfDocument.Pages[pageIndex];
// Vytvořit stream pro obrazový soubor
using (FileStream imageStream = new FileStream("Thumbanils_" + page.Number + ".jpg", FileMode.Create))
{
// Vytvořit objekt rozlišení
Resolution resolution = new Resolution(300);
// Vytvořte instanci JpegDevice a nastavte výšku, šířku, rozlišení a kvalitu obrázku
JpegDevice jpegDevice = new JpegDevice(45, 59, resolution, 100);
// Převeďte konkrétní stránku a uložte obrázek do streamu
jpegDevice.Process(page, imageStream);
// Zavřít stream
imageStream.Close();
}
Generovat miniatury všech stránek v PDF v C#
Následují kroky ke generování miniatur pro všechny stránky v PDF v C#.
- Načtěte soubor PDF pomocí třídy Document.
- Procházejte všechny stránky v PDF pomocí kolekce Document.Pages.
- V každé iteraci proveďte následující operace:
- Vytvořte nový FileStream pro soubor obrázku.
- Vytvořte instanci třídy Resolution pro nastavení rozlišení obrázku miniatury.
- Vytvořte instanci JpegDevice a nastavte výšku, šířku, rozlišení a kvalitu obrázku.
- Vygenerujte náhled pomocí metody JpegDevice.Process(Page, FileStream).
- Zavřete datový proud souboru.
Následující ukázka kódu ukazuje, jak generovat miniatury pro všechny stránky v PDF.
// Otevřete dokument
Document pdfDocument = new Document("file.pdf");
// Procházet stránky
for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
{
// Vytvořte stream pro každý obrázek
using (FileStream imageStream = new FileStream("Thumbanils_" + pageCount + ".jpg", FileMode.Create))
{
// Vytvořit objekt rozlišení
Resolution resolution = new Resolution(300);
// Vytvořte instanci JpegDevice a nastavte výšku, šířku, rozlišení a kvalitu obrázku
JpegDevice jpegDevice = new JpegDevice(45, 59, resolution, 100);
// Převeďte konkrétní stránku a uložte obrázek do streamu
jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
// Zavřít stream
imageStream.Close();
}
}
Získejte bezplatnou licenci
Můžete získat bezplatnou dočasnou licenci, abyste mohli používat Aspose.PDF pro .NET bez omezení hodnocení.
Závěr
V tomto článku jste se naučili, jak generovat náhledy pro soubory PDF v C#. Viděli jste, jak vygenerovat miniaturu konkrétní stránky nebo všech stránek v souboru PDF. Kromě toho můžete prozkoumat více o C# PDF API pomocí dokumentace. V případě jakýchkoli dotazů nebo dotazů nás můžete kontaktovat prostřednictvím našeho fóra.