Zvýraznit znak v souboru PDF
Zavedení
Pokud jde o práci s PDF, často vyvstává potřeba zvýraznit text nebo znaky – ať už pro akademické účely, úpravy nebo jen zlepšení čitelnosti. Představte si, že máte krásný dokument, ale chcete zdůraznit určité části. Zde přichází na scénu zvýraznění! V tomto tutoriálu se ponoříme do toho, jak zvýraznit znaky v souboru PDF pomocí výkonné knihovny Aspose.PDF for .NET.
Předpoklady
Než se pustíme do kódu, ujistěte se, že máme vše, co potřebujeme. Zde je to, co budete potřebovat:
- Vývojové prostředí: Tento kurz předpokládá, že pracujete ve Visual Studiu nebo podobném .NET IDE.
- Aspose.PDF for .NET Library: Pokud jste to ještě neudělali, můžetestáhněte si jej zde a přidejte jej do svého projektu.
- Základní znalost C#: Základní znalost programování v C# vám pomůže snadno pochopit implementaci.
- Dokument PDF: Měli byste mít připravený vzorový soubor PDF, se kterým budete pracovat. Můžete vytvořit jeden nebo použít existující dokument.
Import balíčků
Abychom mohli začít, musíme importovat potřebné jmenné prostory. Chcete-li to provést, budete je chtít zahrnout do horní části souboru C#:
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Facades;
using Aspose.Pdf.Devices;
using Aspose.Pdf.Text;
using System;
using System.Drawing;
Tyto balíčky jsou nezbytné pro vytváření, manipulaci a zpracování dokumentů PDF pomocí knihovny Aspose.
Nyní si tento proces rozdělíme na stravitelné kroky pro zvýraznění znaků ve vašem PDF.
Krok 1: Inicializujte dokument PDF
Prvním krokem je inicializace dokumentu PDF. To zahrnuje načtení souboru PDF, se kterým budete pracovat. Jak na to:
string dataDir = "YOUR DOCUMENT DIRECTORY"; // Ujistěte se, že jste nastavili správnou cestu.
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");
tomto úryvku nahraďteYOUR DOCUMENT DIRECTORY
se skutečnou cestou na vašem počítači, kde se nachází váš vstupní soubor PDF. TheAspose.Pdf.Document
třída je vytvořena pro načtení vašeho PDF.
Krok 2: Nastavte proces vykreslování
Dále musíme připravit proces vykreslování našeho dokumentu. To je nezbytné pro přesné zvýraznění znaků na stránce.
int resolution = 150; // Nastavte rozlišení pro pořizování snímků.
using (MemoryStream ms = new MemoryStream())
{
PdfConverter conv = new PdfConverter(pdfDocument);
conv.Resolution = new Resolution(resolution, resolution);
conv.GetNextImage(ms, System.Drawing.Imaging.ImageFormat.Png);
Bitmap bmp = (Bitmap)Bitmap.FromStream(ms);
Definujeme rozlišení pro srozumitelnost, umožňující správné vykreslení textu. ThePdfConverter
změní stránky PDF na obrázky, abychom na ně mohli kreslit.
Krok 3: Vytvořte grafický objekt pro kreslení
Po nastavení procesu kreslení musíme vytvořit grafický objekt, ve kterém provedeme zvýraznění:
using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp))
{
float scale = resolution / 72f; // Faktor měřítka.
gr.Transform = new System.Drawing.Drawing2D.Matrix(scale, 0, 0, -scale, 0, bmp.Height);
Zde vytvoříme grafický objekt z bitmapového obrázku. Transformace pomáhá upravit vykreslování tak, aby správně odpovídalo potřebnému rozlišení.
Krok 4: Projděte každou stránku a zvýrazněte text
Nyní projdeme každou stránku v PDF a najdeme fragmenty textu, které chceme zvýraznit:
for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
Page page = pdfDocument.Pages[i + 1]; // Stránky jsou indexovány 1 v Aspose.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
page.Accept(textFragmentAbsorber);
Přistupujeme ke každé stránce a hledáme veškerý text pomocíTextFragmentAbsorber
. Vzor regulárního výrazu@"[\S]+"
zachytí všechny znaky bez mezer.
Krok 5: Extrahujte textové fragmenty a zvýrazněte
Nyní je čas vyjmout fragmenty textu a zvýraznit je. Tento proces zahrnuje kreslení obdélníků kolem znaků, které chceme zvýraznit:
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
foreach (TextFragment textFragment in textFragmentCollection)
{
// Zde zvýrazněte logiku
for (int segNum = 1; segNum <= textFragment.Segments.Count; segNum++)
{
TextSegment segment = textFragment.Segments[segNum];
for (int charNum = 1; charNum <= segment.Characters.Count; charNum++)
{
CharInfo characterInfo = segment.Characters[charNum];
gr.DrawRectangle(Pens.Black,
(float)characterInfo.Rectangle.LLX,
(float)characterInfo.Rectangle.LLY,
(float)characterInfo.Rectangle.Width,
(float)characterInfo.Rectangle.Height);
}
}
}
Procházíme každý textový fragment, jeho segmenty a jednotlivé znaky a kreslíme kolem nich obdélníky pomocí dříve vytvořeného grafického objektu.
Krok 6: Uložte upravený obrázek
Po zvýraznění budete muset uložit výsledný obrázek jako nový soubor PNG:
dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);
Tento řádek uloží váš upravený bitmapový obrázek jako soubor PNG do určeného adresáře.
Krok 7: Zabalte se do zpracování výjimek
Nakonec je dobrým zvykem zabalit kód do bloku try-catch, který zajistí, že všechny neočekávané chyby zvládneme elegantně:
catch (Exception ex)
{
Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get a 30-day temporary license from [here](https://purchase.aspose.com/temporary-license/).");
}
Tento blok zachycuje všechny výjimky, které mohou nastat během procesu, a poskytuje informativní zpětnou vazbu pro uživatele.
Závěr
tady to máte! Úspěšně jste zvýraznili znaky v souboru PDF pomocí Aspose.PDF pro .NET. Tato výkonná knihovna otevírá dveře nekonečným možnostem manipulace s PDF – ať už pracujete s anotacemi, vyplňováním formulářů nebo dokonce převodem dokumentů. Jak budete pokračovat na své cestě s Aspose, pamatujte, že praxe je klíčová. Pokračujte v experimentování s různými funkcemi a rychle se z vás stane PDF profesionál!
FAQ
Co je Aspose.PDF pro .NET?
Aspose.PDF for .NET je knihovna, která umožňuje vytvářet, manipulovat a převádět dokumenty PDF programově v aplikacích .NET.
Mohu zvýraznit více fragmentů textu najednou?
Ano, poskytnutý kód lze upravit tak, aby zvýraznil více fragmentů procházením celého textu v PDF.
Existuje bezplatná verze Aspose.PDF?
Ano, Aspose nabízí bezplatnou zkušební verzi, takže si můžete knihovnu před zakoupením vyzkoušet.
Potřebuji nějaké licence k používání Aspose.PDF?
Ano, pro komerční použití je vyžadována platná licence, ale můžete získat 30denní dočasnou licenci pro testování.
Kde najdu další dokumentaci?
Můžete odkazovat naDokumentace Aspose.PDF pro podrobnější informace o implementaci a funkcích.