콘텐츠 작업

콘텐츠 작업

콘텐츠 작업

PDF 페이지는 콘텐츠 스트림에 저장된 연산자 시퀀스로 렌더링됩니다.
Aspose.PDF FOSS for .NET은 각 Page에서 이러한 연산자를 OperatorCollection을 통해 노출하고, 새로운 콘텐츠를 프로그래밍 방식으로 구성하기 위해 ContentStreamBuilder을 제공합니다.


콘텐츠 스트림 연산자 읽기

모든 PageContents 속성을 가지고 있으며, 이는 OperatorCollection을 반환합니다. 각 연산자를 검사하려면 이를 반복하십시오.

using var doc = Document.Open(pdfBytes);
var page = doc.Pages[1];

foreach (var op in page.Contents)
{
    Console.WriteLine(op.ToString());
}

콘텐츠 스트림 구축

ContentStreamBuilder은 그래픽 상태 관리, 경로 구성, 텍스트 출력 및 색상 설정을 포함한 콘텐츠 스트림 연산자 시퀀스를 구성하기 위한 유창한 API를 제공합니다.

var builder = new ContentStreamBuilder();
builder.SaveState();
builder.SetFillColor(1.0, 0.0, 0.0);  // Red fill
builder.SetMatrix(1, 0, 0, 1, 72, 700); // Translate
// ... add drawing or text operators
builder.RestoreState();

그래픽 상태

GraphicsState는 연산자가 실행되는 동안 현재 변환 행렬, 텍스트 상태 및 색상 값을 추적합니다. 주요 연산:

var gs = new GraphicsState();
gs.Save();
gs.ConcatMatrix(new Matrix(1, 0, 0, 1, 100, 200));
gs.Restore();

색 연산자

SetColorSetColorStroke는 각각 채우기 색상과 스트로크 색상을 설정합니다. 이들은 RGB, CMYK 또는 그레이스케일 구성 요소를 허용합니다.

// RGB fill color (blue)
var fill = new SetColor(0, 0, 1);

// RGB stroke color (red)
var stroke = new SetColorStroke(1, 0, 0);

텍스트 연산자

ShowText는 그래픽 상태의 현재 글꼴 및 크기를 사용하여 현재 텍스트 위치에 텍스트 문자열을 렌더링합니다.

var textOp = new ShowText("Hello, PDF!");

SetTextMatrix 텍스트 공간에 대한 변환 행렬을 정의하여 텍스트를 배치합니다.


확장 그래픽 상태

ExtGState은(는) 채우기 및 스트로크 알파(투명도)와 블렌드 모드와 같은 고급 렌더링 속성을 제어합니다.


팁 및 모범 사례

  • 항상 SaveState / RestoreState (또는 q / Q 연산자)를 짝지어 그래픽 상태 스택이 손상되는 것을 방지하십시오.
  • 새 콘텐츠에는 연산자 객체를 수동으로 구성하는 대신 ContentStreamBuilder를 사용하십시오.
  • 수정하기 전에 OperatorCollection를 읽기 전용으로 검사하십시오 — 예상치 못한 연산자 시퀀스가 렌더링 문제를 일으킬 수 있습니다.
  • 색상 연산자는 현재 색상 공간(RGB, CMYK, 또는 grayscale)과 일치해야 합니다.
  • 패턴 및 ICC 기반 색상 공간에는 SetAdvancedColor를 사용하십시오.

일반적인 문제

IssueCauseFix
연산자를 추가한 후 텍스트가 보이지 않음텍스트 상태에 폰트가 설정되지 않음SetFont 연산자를 ShowText 앞에 추가하십시오
색상이 잘못 표시됨색상 공간 불일치 (RGB와 CMYK)활성 색상 공간에 맞는 연산자를 사용하십시오
그래픽 상태 스택 오버플로우Save / Restore 쌍이 균형이 맞지 않음SaveState에 대응되는 RestoreState가 있는지 확인하십시오
콘텐츠가 잘못된 위치에 표시됨행렬 변환이 없거나 잘못됨SetMatrix 또는 ConcatMatrix 값을 확인하십시오

자주 묻는 질문

PDF 콘텐츠 스트림이란 무엇입니까?

콘텐츠 스트림은 페이지를 렌더링하는 방법을 설명하는 연산자들의 시퀀스로—경로 그리기, 텍스트 배치, 색상 설정 및 그래픽 상태 관리.

기존 페이지에 새 콘텐츠를 추가할 수 있나요?

예. page.Contents에 접근하고 새 연산자를 추가하거나
ContentStreamBuilder를 사용하여 시퀀스를 구성하고 추가합니다.

텍스트를 투명하게 만들려면 어떻게 해야 하나요?

ExtGState를 사용하여 채우기 알파(ca)를 0(완전 투명)에서 1(완전 불투명) 사이의 값으로 설정합니다.


API 참조 요약

Class / MethodDescription
OperatorCollection페이지의 콘텐츠 스트림 연산자 시퀀스
ContentStreamBuilder연산자 시퀀스를 구성하기 위한 유창한 빌더
ContentStreamBuilder.SaveState현재 그래픽 상태를 스택에 푸시
ContentStreamBuilder.RestoreState스택에서 그래픽 상태를 팝
ContentStreamBuilder.SetFillColor현재 색상 공간에서 채우기 색상을 설정
ContentStreamBuilder.SetMatrix좌표 변환 적용
GraphicsState변환 행렬, 색상 및 텍스트 상태를 추적
SetColor비스트로크(채우기) 색상을 설정하는 연산자
SetColorStroke스트로크 색상을 설정하는 연산자
SetAdvancedColor패턴 / ICC 기반 색상 공간을 위한 연산자
ShowText텍스트 문자열을 렌더링하는 연산자
SetTextMatrix행렬을 통해 텍스트 위치를 지정하는 연산자
ExtGState확장 그래픽 상태(알파, 블렌드 모드)

또 보기

 한국어