콘텐츠 스트림 연산자

콘텐츠 스트림 연산자

이 가이드는 Aspose.PDF FOSS for Java에서 ContentStreamParser와 ContentStreamBuilder을 사용하여 PDF 콘텐츠 스트림 연산자에 접근하고 조작하는 방법을 보여줍니다. 원시 페이지 콘텐츠 바이트를 읽고 파서를 사용하여 그리기 명령을 검사하는 방법을 배울 수 있습니다.

콘텐츠 스트림

PDF 페이지 콘텐츠는 콘텐츠 스트림 내의 연산자 시퀀스로 인코딩됩니다. 각 Page은 getContents() 속성을 통해 해당 콘텐츠 연산자에 접근할 수 있게 합니다.

ContentStreamParser

ContentStreamParser은(는) 원시 콘텐츠 스트림 바이트를 연산자 객체로 파싱하여 페이지 그리기 명령을 프로그래밍 방식으로 검사할 수 있게 합니다. page.getContents().toByteArray()에서 얻은 원시 바이트를 파서 생성자에 전달하십시오:

try (Document doc = new Document("input.pdf")) {
    PageCollection pages = doc.getPages();
    Page page = pages.get(1);
    byte[] contentBytes = page.getContents().toByteArray();
    ContentStreamParser parser = new ContentStreamParser(contentBytes);
    // Iterate over parsed operators
}

ContentStreamBuilder

ContentStreamBuilder은(는) Page에 삽입하기 위한 새로운 콘텐츠 스트림을 생성합니다. 기존 스트림을 수정하는 대신 프로그래밍 방식으로 페이지 콘텐츠를 구성할 때는 ContentStreamBuilder를 사용하십시오. 스트림을 구축한 후에는 이를 페이지에 다시 할당하고 문서를 저장합니다.

연산자 레퍼런스

PDF 콘텐츠 스트림 연산자는 ISO 32000-1:2008, 표 A.1에 정의되어 있습니다. 일반적인 연산자에는 텍스트 연산자(BT, ET, Tf, Tj), 그래픽 상태 연산자(q, Q, cm), 그리고 경로 연산자(m, l, h, f, S)가 포함됩니다.

콘텐츠 스트림 연산자는 PDF 사양(ISO 32000-1:2008, §8)을 따릅니다. 기존 스트림의 연산자를 반복하려면 ContentStreamParser을(를) 사용하십시오.

원시 페이지 콘텐츠 접근

페이지 콘텐츠 스트림의 원시 바이트를 읽으려면 page.getContents().toByteArray()을 호출하십시오. 그런 다음 바이트를 검사하거나, 디코딩하거나, ContentStreamParser에 전달할 수 있습니다:

try (Document doc = new Document("input.pdf")) {
    PageCollection pages = doc.getPages();
    Page page = pages.get(1);
    byte[] contentBytes = page.getContents().toByteArray();
    System.out.println("Content stream size: " + contentBytes.length + " bytes");
}

참조

 한국어