Oszlopok szövegének kibontása PDF-fájlban
Bevezetés
PDF fájlokkal dolgozik, és szöveget kell kivonnia egy adott oszlopformátumban? Függetlenül attól, hogy számlákat, jelentéseket vagy bármilyen strukturált dokumentumot dolgoz fel, a szöveg pontos kinyerése a PDF-ből bonyolult feladat lehet. Itt lép be az Aspose.PDF for .NET a folyamat egyszerűsítésére. Ebben az oktatóanyagban végigvezetjük, hogyan bonthat ki könnyedén szövegoszlopokat egy PDF-fájlból.
Előfeltételek
Mielőtt belemerülnénk a kódba, fedjük le azokat a lényeges dolgokat, amelyekre szüksége lesz:
- Aspose.PDF for .NET: Győződjön meg arról, hogy az Aspose.PDF for .NET legújabb verziója telepítve van. Ha nem, akkor megtehetitöltse le itt.
- Fejlesztői környezet: A kóddal való együttműködéshez Visual Studio vagy más .NET fejlesztői környezet szükséges.
- PDF-dokumentum: Legyen kéznél egy minta PDF-dokumentum, lehetőleg egy szövegoszlopokkal, mivel abból fogunk szöveget kivonni.
Ha még nem telepítette az Aspose.PDF for .NET fájlt, megragadhatja aingyenes próbaverzió vagyvásároljon licencet a teljes funkciókért. Jelentkezni is lehet aideiglenes engedély ha szükséges.
Névterek importálása
Az Aspose.PDF for .NET projektben való használatához a következő névtereket kell importálnia:
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;
Útmutató lépésről lépésre: Szövegoszlopok kibontása PDF-ből
Most bontsuk fel a kód minden részét, hogy jobban megértsük, hogyan működik. Kövesse lépésről lépésre, és magyarázza el a folyamat egyes szakaszait.
1. lépés: Töltse be a PDF-dokumentumot
Az első dolog, amit meg kell tennie, hogy betöltse a PDF fájlt aDocument
objektum. Az Aspose.PDF így működik együtt a dokumentummal.
string dataDir = "YOUR DOCUMENT DIRECTORY";
Document pdfDocument = new Document(dataDir + "ExtractTextPage.pdf");
Ebben a lépésben egyszerűen meghatározzuk azt a könyvtárat, ahol a PDF-dokumentumot tároljuk. Cserélje ki"YOUR DOCUMENT DIRECTORY"
a helyi PDF-fájl elérési útjával. ADocument
objektum betölti a PDF-fájlt a memóriába, így elérhetővé teszi a további feldolgozáshoz.
2. lépés: Állítsa be a szövegtöredék-elnyelőt
Ezután használjuk aTextFragmentAbsorber
a PDF-fájl teljes szövegének befogadásához vagy rögzítéséhez. Ezt az elnyelő osztályt arra tervezték, hogy szövegtöredékeket vonjon ki a PDF-ben meghatározott területekről, ami ideálissá teszi szövegoszlopok kinyerésére.
TextFragmentAbsorber tfa = new TextFragmentAbsorber();
pdfDocument.Pages.Accept(tfa);
TextFragmentCollection tfc = tfa.TextFragments;
Itt létrehozunk egy példánytTextFragmentAbsorber
és alkalmazza a PDF összes oldalára a használatávalAccept()
. ATextFragmentCollection
tárolja a kivont szöveget, és ebből a gyűjteményből szükség szerint módosíthatjuk vagy kivonhatjuk a szöveget.
3. lépés: Állítsa be a kivont szöveg betűméretét
A szövegrészletek rögzítése után érdemes lehet csökkenteni a betűméretüket, különösen akkor, ha az eredeti szöveg túl nagy. Ebben a példában a betűméretet 70%-kal csökkentjük.
foreach (TextFragment tf in tfc)
{
// Csökkentse a betűméretet 70%-kal
tf.TextState.FontSize = tf.TextState.FontSize * 0.7f;
}
Ez a kód mindegyiken áthaladTextFragment
a gyűjteményben, és 70%-kal csökkenti a betűméretet. A betűméret módosítása megkönnyítheti a kivonatolt szöveg kezelését, különösen, ha különböző célokra formázza.
4. lépés: Mentse el a dokumentumot memóriafolyamba
A szöveg módosítása után a PDF-et elmentjük aMemoryStream
. Ez lehetővé teszi számunkra, hogy a dokumentumot a memóriában tartsuk további feldolgozáshoz anélkül, hogy vissza kellene írnia a lemezre.
Stream st = new MemoryStream();
pdfDocument.Save(st);
pdfDocument = new Document(st);
Itt elmentjük a PDF-fájlt egy memóriafolyamba, majd újratöltjük a dokumentumot. Ez a módszer akkor hasznos, ha nagy fájlokkal dolgozik, és szeretné elkerülni a szükségtelen lemezműveleteket.
5. lépés: Az összes szöveg kibontása a szövegabszorber segítségével
Most, hogy elkészítettük a PDF-fájlt, ideje kivonatolni a szöveget. HasználjukTextAbsorber
hogy az összes szöveget megkapja a dokumentumból.
TextAbsorber textAbsorber = new TextAbsorber();
pdfDocument.Pages.Accept(textAbsorber);
String extractedText = textAbsorber.Text;
Ebben a lépésben aTextAbsorber
elnyeli az összes szöveget a PDF-ből, és a kivont szöveget a rendszer tároljaextractedText
húr. Itt történik a varázslat – a szövegoszlopai mostantól egyszerű szöveges formátumban vannak!
6. lépés: Mentse el a kicsomagolt szöveget egy fájlba
Végül a kinyert szöveget elmentjük a.txt
fájl a könnyű hozzáférés és a további használat érdekében.
dataDir = dataDir + "ExtractColumnsText_out.txt";
System.IO.File.WriteAllText(dataDir, extractedText);
Console.WriteLine("\nColumns text extracted successfully from Pages of PDF Document.\nFile saved at " + dataDir);
Ez a kód a kibontott szöveget egy újba írja.txt
fájlt, és elmenti a megadott könyvtárba. Egy üzenet jelenik meg a konzolon, amely megerősíti, hogy a folyamat sikeres volt.
Következtetés
Megvan! A szövegoszlopok kinyerése egy PDF-fájlból az Aspose.PDF for .NET segítségével egyszerűbb, mint gondolná. Mindössze néhány sornyi kóddal betölthet egy PDF-fájlt, kivonhat adott szöveget, módosíthatja a formázást, és az eredményeket szövegfájlba mentheti.
Ez a technika hihetetlenül hasznos strukturált dokumentumok, például táblázatok, jelentések vagy bármilyen oszlopokba rendezett tartalom feldolgozásához. Függetlenül attól, hogy automatizálnia kell az adatkinyerést vagy a tömeges dokumentumok feldolgozását, az Aspose.PDF biztosítja az eszközöket a hatékony megvalósításhoz.
GYIK
Kivonhatok szöveget a PDF adott oldalairól?
Igen! Módosíthatja aTextFragmentAbsorber
adott oldalak megcélzásához apdfDocument.Pages[pageIndex].Accept(tfa);
módszer.
Lehetséges-e csak egy oszlopból szöveget kivonni egy többoszlopos PDF-fájlból?
Igen, de a szövegrészletek koordinátáival kell dolgozniTextFragment.Rectangle
a dokumentum meghatározott területeinek megcélzásához.
Hogyan javíthatom a szövegkivonás pontosságát?
A nagyobb pontosság érdekében ügyeljen arra, hogy a PDF szerkezete jól meghatározott legyen, és kerülje az összetett elrendezésű dokumentumokat. Finomhangolhatja is aTextFragmentAbsorber
szöveg kinyeréséhez betűstílusok, -méretek vagy régiók alapján.
Támogatja az Aspose.PDF a beolvasott dokumentumokból a szöveg kinyerését?
Igen, de OCR (optikai karakterfelismerő) technológiát kell használnia. Az Aspose ehhez is biztosít eszközöket.
Hogyan kezelhetek nagy, több ezer oldalas PDF fájlokat?
Nagyméretű PDF-fájlok esetén a nagy memóriahasználat elkerülése érdekében a dokumentumot darabokban dolgozza fel úgy, hogy egyszerre néhány oldalról bontja ki a szöveget.