Podświetl znak w pliku PDF
Wstęp
Jeśli chodzi o pracę z plikami PDF, często pojawia się potrzeba wyróżnienia tekstu lub znaków — czy to w celach akademickich, edycji, czy po prostu poprawy czytelności. Wyobraź sobie, że masz piękny dokument, ale chcesz podkreślić pewne części. Właśnie tutaj wkracza wyróżnienie! W tym samouczku zagłębimy się w to, jak wyróżnić znaki w pliku PDF przy użyciu potężnej biblioteki Aspose.PDF dla .NET.
Wymagania wstępne
Zanim przejdziemy do kodu, upewnijmy się, że mamy wszystko, czego potrzebujemy. Oto, czego będziesz potrzebować:
- Środowisko programistyczne: W tym samouczku założono, że pracujesz w programie Visual Studio lub podobnym środowisku IDE platformy .NET.
- Aspose.PDF dla biblioteki .NET: Jeśli jeszcze tego nie zrobiłeś, możesz to zrobićpobierz tutaj i dodaj do swojego projektu.
- Podstawowa wiedza o języku C#: Wprowadzenie do programowania w języku C# pomoże Ci łatwo zrozumieć implementację.
- Dokument PDF: Powinieneś mieć przykładowy plik PDF gotowy do pracy. Możesz go utworzyć lub wykorzystać istniejący dokument.
Importowanie pakietów
Aby zacząć, musimy zaimportować niezbędne przestrzenie nazw. Aby to zrobić, należy je uwzględnić na górze pliku C#:
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Facades;
using Aspose.Pdf.Devices;
using Aspose.Pdf.Text;
using System;
using System.Drawing;
Pakiety te są niezbędne do tworzenia, edytowania i przetwarzania dokumentów PDF za pomocą biblioteki Aspose.
Teraz podzielimy ten proces na łatwiejsze do zrozumienia kroki, dzięki którym wyróżnisz znaki w pliku PDF.
Krok 1: Zainicjuj dokument PDF
Pierwszym krokiem jest zainicjowanie dokumentu PDF. Wiąże się to z załadowaniem pliku PDF, z którym będziesz pracować. Oto jak to zrobić:
string dataDir = "YOUR DOCUMENT DIRECTORY"; // Upewnij się, że ścieżka jest prawidłowa.
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");
tym fragmencie kodu zamieńYOUR DOCUMENT DIRECTORY
z rzeczywistą ścieżką na twoim komputerze, gdzie znajduje się twój plik wejściowy PDF.Aspose.Pdf.Document
Klasa jest tworzona w celu załadowania pliku PDF.
Krok 2: Skonfiguruj proces renderowania
Następnie musimy przygotować proces renderowania dla naszego dokumentu. Jest to niezbędne do dokładnego wyróżnienia znaków na stronie.
int resolution = 150; // Ustaw rozdzielczość przechwytywania obrazu.
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);
Definiujemy rozdzielczość dla przejrzystości, umożliwiającą prawidłowe renderowanie tekstu.PdfConverter
zamienia strony PDF-u w obrazy, dzięki czemu możemy na nich rysować.
Krok 3: Utwórz obiekt graficzny do rysowania
Po skonfigurowaniu procesu rysowania musimy utworzyć obiekt graficzny, w którym wykonamy podświetlenie:
using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp))
{
float scale = resolution / 72f; // Współczynnik skali.
gr.Transform = new System.Drawing.Drawing2D.Matrix(scale, 0, 0, -scale, 0, bmp.Height);
Tutaj tworzymy obiekt graficzny z obrazu bitmapowego. Transformacja pomaga dostosować renderowanie, aby poprawnie dopasować potrzebną rozdzielczość.
Krok 4: Przejrzyj każdą stronę i zaznacz tekst
Teraz przejrzyjmy każdą stronę pliku PDF i znajdźmy fragmenty tekstu, które chcemy wyróżnić:
for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
Page page = pdfDocument.Pages[i + 1]; // Strony mają indeks 1 w Aspose.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
page.Accept(textFragmentAbsorber);
Uzyskujemy dostęp do każdej strony i szukamy całego tekstu za pomocąTextFragmentAbsorber
. Wzorzec wyrażenia regularnego@"[\S]+"
wychwytuje wszystkie znaki inne niż spacje.
Krok 5: Wyodrębnij fragmenty tekstu i wyróżnij je
Teraz czas wyodrębnić fragmenty tekstu i je podświetlić. Ten proces obejmuje narysowanie prostokątów wokół znaków, które chcemy podświetlić:
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
foreach (TextFragment textFragment in textFragmentCollection)
{
// Tutaj podkreślamy logikę
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);
}
}
}
Przeglądamy każdy fragment tekstu, jego segmenty i poszczególne znaki, rysując wokół nich prostokąty za pomocą wcześniej utworzonego obiektu graficznego.
Krok 6: Zapisz zmodyfikowany obraz
Po zaznaczeniu musisz zapisać powstały obraz jako nowy plik PNG:
dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);
Ten wiersz zapisuje zmodyfikowany obraz bitmapowy jako plik PNG w wyznaczonym katalogu.
Krok 7: Podsumowanie obsługi wyjątków
Na koniec, dobrą praktyką jest umieszczenie kodu w bloku try-catch, co pozwoli na prawidłową obsługę wszelkich nieoczekiwanych błędów:
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://zakup.aspose.com/tymczasowa-licencja/).");
}
Blok ten wychwytuje wszelkie wyjątki, które mogą wystąpić w trakcie procesu, i przekazuje użytkownikowi informacje zwrotne.
Wniosek
masz to! Udało Ci się wyróżnić znaki w pliku PDF za pomocą Aspose.PDF dla .NET. Ta potężna biblioteka otwiera drzwi do nieograniczonych możliwości w zakresie manipulacji plikami PDF — niezależnie od tego, czy pracujesz z adnotacjami, wypełnianiem formularzy, czy nawet konwersją dokumentów. Kontynuując swoją podróż z Aspose, pamiętaj, że praktyka jest kluczowa. Eksperymentuj z różnymi funkcjami, a szybko staniesz się profesjonalistą PDF!
Najczęściej zadawane pytania
Czym jest Aspose.PDF dla .NET?
Aspose.PDF dla platformy .NET to biblioteka umożliwiająca programowe tworzenie, modyfikowanie i konwertowanie dokumentów PDF w aplikacjach .NET.
Czy mogę zaznaczyć wiele fragmentów tekstu jednocześnie?
Tak, udostępniony kod można dostosować tak, aby wyróżniał wiele fragmentów, poprzez pętlenie po całym tekście w pliku PDF.
Czy istnieje darmowa wersja Aspose.PDF?
Tak, Aspose oferuje bezpłatną wersję próbną, dzięki czemu możesz przetestować bibliotekę przed zakupem.
Czy potrzebuję licencji, aby korzystać z Aspose.PDF?
Tak, do użytku komercyjnego wymagana jest ważna licencja, ale można nabyć 30-dniową licencję tymczasową w celach testowych.
Gdzie mogę znaleźć więcej dokumentacji?
Możesz zapoznać się zDokumentacja Aspose.PDF aby uzyskać bardziej szczegółowe informacje na temat implementacji i funkcji.