PDF 파일에서 문자 강조 표시
이 튜토리얼에서는 .NET용 Aspose.PDF 라이브러리를 사용하여 PDF 파일에서 문자를 강조 표시하는 방법을 설명합니다. 제공된 C# 소스 코드를 사용하여 PDF에서 문자를 강조 표시하는 단계별 프로세스를 살펴보겠습니다.
요구사항
시작하기 전에 다음 사항이 있는지 확인하세요.
- .NET 라이브러리용 Aspose.PDF가 설치되었습니다.
- C# 프로그래밍에 대한 기본적인 이해.
1단계: 문서 디렉터리 설정
먼저 입력 PDF 파일이 있는 디렉터리의 경로를 설정해야 합니다. 바꾸다"YOUR DOCUMENT DIRECTORY"
에서dataDir
변수를 PDF 파일 경로로 바꿉니다.
string dataDir = "YOUR DOCUMENT DIRECTORY";
2단계: PDF 문서 로드
다음으로, 다음을 사용하여 입력 PDF 문서를 로드합니다.Aspose.Pdf.Document
수업.
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");
3단계: PDF를 이미지로 변환
문자를 강조하기 위해 다음을 사용하여 PDF 문서를 이미지로 변환합니다.PdfConverter
수업. 변환을 위한 해상도를 설정하고 이미지를 다음과 같이 검색합니다.Bitmap
물체.
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);
4단계: 문자 강조 표시
PDF 문서의 각 페이지를 반복하고TextFragmentAbsorber
페이지에 있는 모든 단어를 찾는 개체입니다. 그런 다음 텍스트 조각, 세그먼트 및 문자를 반복하여 직사각형을 사용하여 강조 표시합니다.
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];
// 페이지의 모든 단어 찾기
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
page. Accept(textFragmentAbsorber);
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// 텍스트 조각을 통해 반복
foreach(TextFragment textFragment in textFragmentCollection)
{
if (i == 0)
{
// 문자 강조 표시
gr.DrawRectangle(
Think.Yellow,
(float)textFragment.Position.XIndent,
(float)textFragment.Position.YIndent,
(float)textFragment.Rectangle.Width,
(float)textFragment.Rectangle.Height);
// 세그먼트를 통해 루프
foreach(TextSegment segment in textFragment.Segments)
{
// 세그먼트 강조표시
gr.DrawRectangle(
Think Green,
(float)segment.Rectangle.LLX,
(float)segment.Rectangle.LLY,
(float)segment.Rectangle.Width,
(float)segment.Rectangle.Height);
// 문자를 통해 반복
foreach(CharInfo characterInfo in segment.Characters)
{
// 하이라이트 문자
gr.DrawRectangle(
Think.Black,
(float)characterInfo.Rectangle.LLx,
(float)characterInfo.Rectangle.LLY,
(float)characterInfo.Rectangle.Width,
(float)characterInfo.Rectangle.Height);
}
}
}
}
}
}
5단계: 출력 이미지 저장
마지막으로 강조 표시된 문자가 포함된 수정된 이미지를 지정된 출력 파일에 저장합니다.
dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);
.NET용 Aspose.PDF를 사용하여 PDF에서 문자 강조 표시에 대한 샘플 소스 코드
try
{
// 문서 디렉터리의 경로입니다.
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];
// 모든 단어를 찾기 위해 TextAbsorber 개체를 만듭니다.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
page.Accept(textFragmentAbsorber);
// 추출된 텍스트 조각 가져오기
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// 조각을 통해 반복
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.");
}
결론
이 튜토리얼에서는 .NET용 Aspose.PDF 라이브러리를 사용하여 PDF 문서에서 문자를 강조 표시하는 방법을 배웠습니다. 단계별 가이드를 따르고 제공된 C# 코드를 실행하면 PDF에서 문자를 강조 표시하고 출력을 이미지로 저장할 수 있습니다.
FAQ
Q: “PDF 파일에서 문자 강조 표시” 튜토리얼의 목적은 무엇입니까?
A: “PDF 파일에서 문자 강조 표시” 튜토리얼에서는 .NET용 Aspose.PDF 라이브러리를 사용하여 PDF 문서 내의 문자를 강조 표시하는 방법을 설명합니다. 이 자습서에서는 이를 달성하기 위한 단계별 가이드와 C# 소스 코드를 제공합니다.
Q: PDF 문서에서 문자를 강조표시하려는 이유는 무엇입니까?
답변: PDF 문서에서 문자를 강조 표시하면 특정 내용을 강조하거나 특정 텍스트를 더 눈에 띄고 구별하기 쉽게 만드는 등 다양한 목적에 유용할 수 있습니다.
Q: 문서 디렉터리를 어떻게 설정합니까?
A: 문서 디렉토리를 설정하려면:
- 바꾸다
"YOUR DOCUMENT DIRECTORY"
에서dataDir
변수를 입력 PDF 파일이 있는 디렉터리의 경로로 바꿉니다.
Q: PDF 문서를 어떻게 로드하고 이미지로 변환합니까?
A: 튜토리얼에서는Aspose.Pdf.Document
클래스는 입력 PDF 문서를 로드하는 데 사용됩니다. 그런 다음,PdfConverter
클래스는 PDF 문서를 이미지로 변환하는 데 사용됩니다. 이미지의 해상도가 설정되고 이미지가 다음과 같이 검색됩니다.Bitmap
물체.
Q: PDF 문서 이미지에서 문자를 어떻게 강조합니까?
답변: 튜토리얼은 PDF 문서의 각 페이지를 반복하면서 다음을 사용하여 단어를 찾는 과정을 안내합니다.TextFragmentAbsorber
, 텍스트 조각, 세그먼트 및 문자를 반복하여 직사각형을 사용하여 강조 표시합니다.
Q: 강조 표시된 문자 및 세그먼트의 모양을 사용자 정의할 수 있습니까?
A: 예, 그리기 작업에 사용된 색상과 스타일을 수정하여 강조 표시된 문자 및 세그먼트의 모양을 사용자 정의할 수 있습니다.
Q: 강조 표시된 문자가 포함된 수정된 이미지를 어떻게 저장합니까?
A: 튜토리얼에서는 다음을 사용하여 강조 표시된 문자가 포함된 수정된 이미지를 지정된 출력 파일에 저장하는 방법을 보여줍니다.Save
의 방법Bitmap
수업.
Q: 이 튜토리얼에는 유효한 Aspose 라이선스가 필요합니까?
A: 예, 이 튜토리얼이 올바르게 작동하려면 유효한 Aspose 라이선스가 필요합니다. Aspose 웹사이트에서 정식 라이선스를 구매하거나 30일 임시 라이선스를 얻을 수 있습니다.