Jelölje ki a karaktert a PDF-fájlban
Bevezetés
PDF-ekkel való munka során gyakran felmerül a szöveg vagy a karakterek kiemelésének igénye – akár tanulmányi, akár szerkesztési, akár csak az olvashatóság javítása céljából. Képzeld el, hogy van egy gyönyörű dokumentumod, de szeretnél hangsúlyozni bizonyos részeket. Itt jön a képbe a kiemelés! Ebben az oktatóanyagban azt mutatjuk be, hogyan lehet karaktereket kiemelni egy PDF-fájlban a hatékony Aspose.PDF for .NET könyvtár használatával.
Előfeltételek
Mielőtt belevágnánk a kódba, győződjünk meg arról, hogy mindennel rendelkezünk, amire szükségünk van. Íme, mire lesz szüksége:
- Fejlesztői környezet: Ez az oktatóanyag azt feltételezi, hogy Visual Studio-ban vagy hasonló .NET IDE-ben dolgozik.
- Aspose.PDF for .NET Library: Ha még nem tette meg, megtehetitöltse le itt és add hozzá a projektedhez.
- Alapvető C# ismerete: A C# programozás alapozója segít a megvalósítás egyszerű megértésében.
- PDF-dokumentum: rendelkeznie kell egy PDF-mintafájllal, amely készen áll a használatra. Létrehozhat egyet, vagy felhasználhat egy meglévő dokumentumot.
Csomagok importálása
kezdéshez importálnunk kell a szükséges névtereket. Ehhez el kell helyeznie őket a C# fájl tetejére:
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Facades;
using Aspose.Pdf.Devices;
using Aspose.Pdf.Text;
using System;
using System.Drawing;
Ezek a csomagok elengedhetetlenek a PDF-dokumentumok létrehozásához, kezeléséhez és feldolgozásához az Aspose könyvtár használatával.
Most bontsuk le a folyamatot emészthető lépésekre a karakterek kiemeléséhez a PDF-ben.
1. lépés: Inicializálja a PDF-dokumentumot
Az első lépés a PDF-dokumentum inicializálása. Ez magában foglalja a PDF-fájl betöltését, amellyel dolgozni fog. Íme, hogyan kell csinálni:
string dataDir = "YOUR DOCUMENT DIRECTORY"; // Ügyeljen arra, hogy a megfelelő útvonalat állítsa be.
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");
Ebben a részletben cserélje kiYOUR DOCUMENT DIRECTORY
a gép tényleges elérési útjával, ahol a bevitt PDF-fájl található. AAspose.Pdf.Document
osztály példányosodik a PDF betöltéséhez.
2. lépés: Állítsa be a renderelési folyamatot
Ezután elő kell készítenünk a dokumentumunk megjelenítési folyamatát. Ez elengedhetetlen az oldalon szereplő karakterek pontos kiemeléséhez.
int resolution = 150; // Állítsa be a felbontást a képrögzítéshez.
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);
Az egyértelműség kedvéért meghatározunk egy felbontást, amely lehetővé teszi a szöveg megfelelő megjelenítését. APdfConverter
képekké alakítja a PDF oldalakat, hogy rajzolhassunk rájuk.
3. lépés: Hozzon létre egy grafikus objektumot a rajzoláshoz
A rajzolási folyamat beállítása után létre kell hoznunk egy grafikus objektumot, amelyben elvégezzük a kiemelést:
using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp))
{
float scale = resolution / 72f; // Skála tényező.
gr.Transform = new System.Drawing.Drawing2D.Matrix(scale, 0, 0, -scale, 0, bmp.Height);
Itt a bittérképes képből hozzuk létre a grafikus objektumot. Az átalakítás segít a renderelés megfelelő beállításában a szükséges felbontáshoz.
4. lépés: Lapozzon át minden oldalon, és jelölje ki a szöveget
Most nézzük végig a PDF minden oldalát, és keressük meg a kiemelni kívánt szövegrészleteket:
for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
Page page = pdfDocument.Pages[i + 1]; // Az oldalak 1-indexeltek Aspose-ban.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
page.Accept(textFragmentAbsorber);
Minden oldalt elérünk, és az összes szöveget a segítségével keressükTextFragmentAbsorber
. A reguláris kifejezés mintája@"[\S]+"
minden nem szóköz karaktert rögzít.
5. lépés: Szövegtöredékek kibontása és kiemelés
Most itt az ideje, hogy kivonja a szövegrészleteket, és kiemelje őket. Ez a folyamat abból áll, hogy téglalapokat rajzolunk a kiemelni kívánt karakterek köré:
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
foreach (TextFragment textFragment in textFragmentCollection)
{
// Itt a logika kiemelése
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);
}
}
}
Végighurkoljuk az egyes szövegrészleteket, szegmenseit és az egyes karaktereket, téglalapokat rajzolva köréjük a korábban létrehozott grafikai objektum segítségével.
6. lépés: Mentse el a módosított képet
A kiemelés után a kapott képet új PNG-fájlként kell mentenie:
dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);
Ez a sor a módosított bittérképes képet PNG-fájlként menti a kijelölt könyvtárba.
7. lépés: Végezzen kivételkezelést
Végül bevált gyakorlat, ha a kódot egy try-catch blokkba csomagolja, biztosítva, hogy a váratlan hibákat kecsesen kezeljük:
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://buy.aspose.com/temporary-license/).");
}
Ez a blokk felfogja a folyamat során esetlegesen előforduló kivételeket, és tájékoztató jellegű visszajelzést ad a felhasználónak.
Következtetés
És megvan! Sikeresen kiemelte a karaktereket egy PDF-fájlban az Aspose.PDF for .NET használatával. Ez a nagy teljesítményű könyvtár a PDF-kezelés végtelen lehetőségei előtt nyit ajtót – legyen szó megjegyzésekről, űrlapkitöltésről vagy akár dokumentumok konvertálásáról. Az Aspose-val folytatott utazás során ne feledje, hogy a gyakorlat kulcsfontosságú. Kísérletezzen tovább a különböző funkciókkal, és gyorsan PDF-profi lesz!
GYIK
Mi az Aspose.PDF for .NET?
Az Aspose.PDF for .NET egy olyan könyvtár, amely lehetővé teszi PDF-dokumentumok programozott létrehozását, kezelését és konvertálását .NET-alkalmazásokban.
Kiemelhetek több szövegrészletet egyszerre?
Igen, a megadott kód adaptálható több töredék kiemelésére a PDF-en belüli teljes szövegen keresztül.
Létezik az Aspose.PDF ingyenes verziója?
Igen, az Aspose ingyenes próbaverziót kínál, így vásárlás előtt tesztelheti a könyvtárat.
Szükségem van licencekre az Aspose.PDF használatához?
Igen, kereskedelmi használatra érvényes licenc szükséges, de teszteléshez 30 napos ideiglenes licencet lehet szerezni.
Hol találok további dokumentációt?
Hivatkozhat aAspose.PDF dokumentáció részletesebb információkért a megvalósításról és a funkciókról.