Képelhelyezések

Bevezetés

PDF-fájlokban lévő képekkel való munka trükkös lehet, de az Aspose.PDF for .NET segítségével könnyedén manipulálhatja és kivonhatja a kép tulajdonságait anélkül, hogy izzadna. Akár képméreteket szeretne lekérni, akár ki szeretné bontani őket, vagy más tulajdonságokat, például felbontást szeretne lekérni, az Aspose.PDF rendelkezik a szükséges eszközökkel. Ez az oktatóanyag lépésről lépésre végigvezeti Önt egy PDF-dokumentumban lévő képelhelyezések kibontásához az Aspose.PDF for .NET használatával. A csomagok importálásától a képtulajdonságok, például a szélesség, magasság és felbontás lekéréséig mindenre kiterjedünk.

Előfeltételek

Mielőtt belevágnánk az oktatóanyagba, néhány dolgot meg kell tennie. Íme egy gyors ellenőrző lista:

  1. Aspose.PDF for .NET: Győződjön meg arról, hogy telepítette az Aspose.PDF for .NET könyvtárat. Letölthetiitt.
  2. Fejlesztési környezet: A Visual Studio vagy bármely más .NET által támogatott IDE telepítve kell lennie a gépére.
  3. PDF-dokumentum: Készítsen PDF-mintát, amely képeket tartalmaz. Ebben a példában egy nevű fájlt fogunk használniImagePlacement.pdf.
  4. Alapvető C#-ismeretek: Bár ez az útmutató kezdők számára készült, a C# alapvető ismeretei segítenek jobban megérteni a kódrészleteket.

Csomagok importálása

Mielőtt belevágnánk a kód apró részleteibe, az első dolog, amit meg kell tennie, hogy importálja a szükséges névtereket. Ezek a csomagok elengedhetetlenek a PDF-dokumentumokkal való munkavégzéshez és a képkezeléshez az Aspose.PDF for .NET-ben.

using System.IO;
using Aspose.Pdf;
using System;
using System.Drawing;

Ezekkel a csomagokkal PDF-ekkel dolgozhat (Aspose.Pdf), manipulálja a képelhelyezéseket (Aspose.Pdf.ImagePlacement), és kezeli a képfolyamokat és a grafikákat (System.Drawing ésSystem.IO).

Most, hogy megvannak az előfeltételek és a csomagok, bontsuk le az oktatóanyag minden részét egy egyszerű, könnyen követhető útmutatóban.

1. lépés: Töltse be a PDF-dokumentumot

Az első lépés a PDF dokumentum betöltése a projektbe. Ez lesz a PDF-fájlon belüli képekkel való munka alapja.

string dataDir = "YOUR DOCUMENT DIRECTORY"; 
Aspose.Pdf.Document doc = new Aspose.Pdf.Document(dataDir + "ImagePlacement.pdf");

Ebben a lépésben meghatározzuk a PDF-dokumentum fájl elérési útjátdataDirmajd létrehoz egy új példányt aAspose.Pdf.Document osztály. Ez lehetővé teszi, hogy a PDF fájlt betöltsük programunkba. Egyszerű, igaz? Csakúgy, mint amikor kinyitunk egy könyvet az olvasás megkezdéséhez, most készen állunk a tartalom felfedezésére.

2. lépés: Inicializálja az Image Placement Absorbert

A képek kinyeréséhez szükségünk van valami úgynevezett “Képelhelyezés-elnyelőre”. Gondoljon rá, mint egy olyan eszközre, amely elnyeli az összes képinformációt egy adott oldalon.

ImagePlacementAbsorber abs = new ImagePlacementAbsorber();

Itt egy példányt hozunk létreImagePlacementAbsorber. Ez az objektum információkat gyűjt és tárol az összes képelhelyezésről egy adott PDF-oldalon. Képzeld el, mintha nagyítóval szkennelnél egy oldalt, és azonosítanád az összes rajta lévő képet!

3. lépés: Fogadja el az Absorbert az első oldalon

Ezután meg kell mondanunk az elnyelőnek, hogy a PDF melyik oldalát kell beolvasni. Ebben a példában az első oldalra fogunk összpontosítani.

doc.Pages[1].Accept(abs);

AAccept metódus beszkenneli a PDF-dokumentum első oldalát az esetleges képekért, és az eredményeket a dokumentumban tároljaImagePlacementAbsorberEz olyan, mintha megmondaná a nagyítónak, hogy hol keressen képeket.

4. lépés: Hurok át minden képelhelyezésen

Most, hogy beszkenneltük az oldalt, végig kell lapoznunk az oldalon talált képeket, és le kell kérnünk a tulajdonságait.

foreach (ImagePlacement imagePlacement in abs.ImagePlacements)
{
    Console.Out.WriteLine("image width:" + imagePlacement.Rectangle.Width);
    Console.Out.WriteLine("image height:" + imagePlacement.Rectangle.Height);
    Console.Out.WriteLine("image LLX:" + imagePlacement.Rectangle.LLX);
    Console.Out.WriteLine("image LLY:" + imagePlacement.Rectangle.LLY);
    Console.Out.WriteLine("image horizontal resolution:" + imagePlacement.Resolution.X);
    Console.Out.WriteLine("image vertical resolution:" + imagePlacement.Resolution.Y);
}

Ez a hurok végigmegy az oldalon található összes képen. Kinyomtatjuk a kép szélességét, magasságát, bal alsó x (LLX), bal alsó y (LLY) értékét, valamint a kép felbontását (vízszintes és függőleges). Ezek a részletek segítenek megérteni az egyes képek méretét és elhelyezkedését a PDF-ben.

5. lépés: Bontsa ki a képet látható méretekkel

Miután összegyűjtötte az információkat a képekről, érdemes kivonatolni a tényleges képet a méreteivel együtt. Így teheti meg.

Bitmap scaledImage;
using (MemoryStream imageStream = new MemoryStream())
{
    imagePlacement.Image.Save(imageStream, System.Drawing.Imaging.ImageFormat.Png);
    Bitmap resourceImage = (Bitmap)Bitmap.FromStream(imageStream);
    scaledImage = new Bitmap(resourceImage, (int)imagePlacement.Rectangle.Width, (int)imagePlacement.Rectangle.Height);
}

Ez a kódrészlet lekéri a képet a PDF-ből, és átméretezi azt a tényleges méretekre, amint azt aImagePlacement objektum. A kép memóriafolyamba mentésével és méretezésével biztosítja, hogy a kivonatolt kép pontosan a PDF-ben megjelenített méretben maradjon.

Következtetés

képelhelyezések kinyerése egy PDF-dokumentumból az Aspose.PDF for .NET használatával nagyon egyszerű, ha lépésről lépésre lebontja. A PDF betöltésétől a kép tulajdonságainak lekéréséig és a képek tényleges méretekkel való kibontásáig mindenre kiterjedtünk. Az Aspose.PDF hihetetlenül egyszerűvé teszi a PDF-ekkel való munkát és a tartalomkezelést, lehetővé téve a hatékony munkavégzést képekkel, szöveggel és még sok mással.

GYIK

Kivonhatok képeket a PDF egy adott oldaláról?

Igen, az oldalszám megadásával aAccept módszerrel bármelyik oldalra összpontosíthat.

Milyen képformátumok támogatottak a kinyeréshez?

Az Aspose.PDF különféle formátumokat támogat, beleértve a PNG, JPEG, BMP és még sok más formátumot.

Lehetséges-e manipulálni a kivont képet?

Teljesen! A kibontás után használhatja aSystem.Drawing névtér a kép manipulálásához.

Kivonhatok képeket jelszóval védett PDF-ekből?

Igen, megteheti, de a képek kibontása előtt fel kell oldania a PDF zárolását a megfelelő hitelesítő adatokkal.

Az Aspose.PDF for .NET minden .NET-keretrendszeren működik?

Igen, támogatja a .NET-keretrendszert, a .NET Core-t, valamint a .NET 5-ös és újabb verzióit.