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:

  1. Fejlesztői környezet: Ez az oktatóanyag azt feltételezi, hogy Visual Studio-ban vagy hasonló .NET IDE-ben dolgozik.
  2. Aspose.PDF for .NET Library: Ha még nem tette meg, megtehetitöltse le itt és add hozzá a projektedhez.
  3. Alapvető C# ismerete: A C# programozás alapozója segít a megvalósítás egyszerű megértésében.
  4. 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. APdfConverterké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.