PDF Dosyasındaki Karakteri Vurgula
Bu eğitimde, .NET için Aspose.PDF kütüphanesini kullanarak bir PDF dosyasındaki karakterlerin nasıl vurgulanacağını açıklayacağız. Sağlanan C# kaynak kodunu kullanarak bir PDF’deki karakterleri vurgulama işlemini adım adım gerçekleştireceğiz.
Gereksinimler
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
- Aspose.PDF for .NET kütüphanesi kuruldu.
- C# programlamanın temel anlayışı.
1. Adım: Belge Dizinini Ayarlayın
Öncelikle, giriş PDF dosyanızın bulunduğu dizinin yolunu ayarlamanız gerekir. Yer değiştirmek"YOUR DOCUMENT DIRECTORY"
içindedataDir
PDF dosyanızın yolunu içeren değişken.
string dataDir = "YOUR DOCUMENT DIRECTORY";
Adım 2: PDF Belgesini Yükleyin
Daha sonra, giriş PDF belgesini kullanarak yükleriz.Aspose.Pdf.Document
sınıf.
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");
3. Adım: PDF’yi Görüntüye Dönüştürün
Karakterleri vurgulamak için PDF belgesini,PdfConverter
sınıf. Dönüşümün çözünürlüğünü ayarlıyoruz ve görüntüyü birBitmap
nesne.
int resolution = 150;
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);
Adım 4: Karakterleri Vurgulayın
PDF belgesinin her sayfasında döngü yaparız veTextFragmentAbsorber
sayfadaki tüm kelimeleri bulmak için nesne. Daha sonra dikdörtgenler kullanarak bunları vurgulamak için metin parçalarını, bölümleri ve karakterleri yineliyoruz.
using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp))
{
//Ölçeği ayarlayın ve dönüştürün
float scale = resolution / 72f;
gr.Transform = new System.Drawing.Drawing2D.Matrix(scale, 0, 0, -scale, 0, bmp.Height);
// Sayfalar arasında dolaş
for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
Page page = pdfDocument.Pages[1];
// Sayfadaki tüm kelimeleri bulun
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
page. Accept(textFragmentAbsorber);
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Metin parçaları arasında döngü yapın
foreach(TextFragment textFragment in textFragmentCollection)
{
if (i == 0)
{
// Karakterleri vurgula
gr.DrawRectangle(
Think.Yellow,
(float)textFragment.Position.XIndent,
(float)textFragment.Position.YIndent,
(float)textFragment.Rectangle.Width,
(float)textFragment.Rectangle.Height);
// Segmentler arasında döngü yapın
foreach(TextSegment segment in textFragment.Segments)
{
// Segmenti vurgula
gr.DrawRectangle(
Think Green,
(float)segment.Rectangle.LLX,
(float)segment.Rectangle.LLY,
(float)segment.Rectangle.Width,
(float)segment.Rectangle.Height);
// Karakterler arasında döngü yap
foreach(CharInfo characterInfo in segment.Characters)
{
// Karakteri vurgula
gr.DrawRectangle(
Think.Black,
(float)characterInfo.Rectangle.LLx,
(float)characterInfo.Rectangle.LLY,
(float)characterInfo.Rectangle.Width,
(float)characterInfo.Rectangle.Height);
}
}
}
}
}
}
Adım 5: Çıktı Görüntüsünü Kaydedin
Son olarak, vurgulanan karakterlerle değiştirilen görüntüyü belirtilen çıktı dosyasına kaydediyoruz.
dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);
Aspose.PDF for .NET kullanarak PDF’de Karakteri Vurgulama için örnek kaynak kodu
try
{
// Belgeler dizininin yolu.
string dataDir = "YOUR DOCUMENT DIRECTORY";
int resolution = 150;
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");
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);
using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp))
{
float scale = resolution / 72f;
gr.Transform = new System.Drawing.Drawing2D.Matrix(scale, 0, 0, -scale, 0, bmp.Height);
for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
Page page = pdfDocument.Pages[1];
// Tüm kelimeleri bulmak için TextAbsorber nesnesi oluşturun
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
page.Accept(textFragmentAbsorber);
// Çıkarılan metin parçalarını alın
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Parçalar arasında döngü yapın
foreach (TextFragment textFragment in textFragmentCollection)
{
if (i == 0)
{
gr.DrawRectangle(
Pens.Yellow,
(float)textFragment.Position.XIndent,
(float)textFragment.Position.YIndent,
(float)textFragment.Rectangle.Width,
(float)textFragment.Rectangle.Height);
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];
Aspose.Pdf.Rectangle rect = page.GetPageRect(true);
Console.WriteLine("TextFragment = " + textFragment.Text + " Page URY = " + rect.URY +
" TextFragment URY = " + textFragment.Rectangle.URY);
gr.DrawRectangle(
Pens.Black,
(float)characterInfo.Rectangle.LLX,
(float)characterInfo.Rectangle.LLY,
(float)characterInfo.Rectangle.Width,
(float)characterInfo.Rectangle.Height);
}
gr.DrawRectangle(
Pens.Green,
(float)segment.Rectangle.LLX,
(float)segment.Rectangle.LLY,
(float)segment.Rectangle.Width,
(float)segment.Rectangle.Height);
}
}
}
}
}
dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);
}
Console.WriteLine("\nCharacters highlighted successfully in pdf document.\nFile saved at " + dataDir);
}
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 30 day temporary license from http:// Www.aspose.com/purchase/default.aspx.");
}
Çözüm
Bu eğitimde, .NET için Aspose.PDF kütüphanesini kullanarak bir PDF belgesindeki karakterleri nasıl vurgulayacağınızı öğrendiniz. Adım adım kılavuzu izleyerek ve verilen C# kodunu çalıştırarak, PDF’deki karakterleri vurgulayabilir ve çıktıyı resim olarak kaydedebilirsiniz.
SSS’ler
S: “PDF Dosyasındaki Karakteri Vurgula” eğitiminin amacı nedir?
C: “PDF Dosyasındaki Karakteri Vurgula” eğitimi, bir PDF belgesindeki karakterleri vurgulamak için .NET için Aspose.PDF kütüphanesinin nasıl kullanılacağını açıklar. Öğreticide bunu başarmak için adım adım kılavuz ve C# kaynak kodu sağlanır.
S: Bir PDF belgesindeki karakterleri neden vurgulamak isteyeyim?
C: Bir PDF belgesindeki karakterleri vurgulamak, belirli içeriği vurgulamak veya belirli metni daha görünür ve ayırt edilebilir kılmak gibi çeşitli amaçlar için yararlı olabilir.
S: Belge dizinini nasıl ayarlarım?
C: Belge dizinini ayarlamak için:
- Yer değiştirmek
"YOUR DOCUMENT DIRECTORY"
içindedataDir
giriş PDF dosyanızın bulunduğu dizinin yolunu içeren değişken.
S: PDF belgesini nasıl yükleyebilirim ve onu bir görüntüye nasıl dönüştürebilirim?
C: Eğitimde,Aspose.Pdf.Document
sınıfı, giriş PDF belgesini yüklemek için kullanılır. SonraPdfConverter
PDF belgesini bir görüntüye dönüştürmek için sınıf kullanılır. Görüntünün çözünürlüğü ayarlanır ve görüntü birBitmap
nesne.
S: PDF belge görüntüsündeki karakterleri nasıl vurgularım?
C: Eğitim, PDF belgesinin her sayfasında döngü yaparak kelimeleri bulma sürecinde size rehberlik eder.TextFragmentAbsorber
ve metin parçalarını, bölümleri ve karakterleri yineleyerek dikdörtgenler kullanarak bunları vurgulayın.
S: Vurgulanan karakterlerin ve bölümlerin görünümünü özelleştirebilir miyim?
C: Evet, çizim işlemlerinde kullanılan renkleri ve stilleri değiştirerek vurgulanan karakterlerin ve bölümlerin görünümünü özelleştirebilirsiniz.
S: Değiştirilen görüntüyü vurgulanan karakterlerle nasıl kaydederim?
C: Eğitimde, vurgulanan karakterlerle değiştirilen görüntünün belirtilen çıktı dosyasına nasıl kaydedileceği gösterilmektedir.Save
yöntemiBitmap
sınıf.
S: Bu eğitim için geçerli bir Aspose Lisansı gerekli mi?
C: Evet, bu eğitimin düzgün çalışması için geçerli bir Aspose Lisansı gereklidir. Aspose web sitesinden tam lisans satın alabilir veya 30 günlük geçici lisans alabilirsiniz.