사용자 도구

사이트 도구


android:pdfdocument:sectioning
sectioning

문서의 이전 판입니다!


목적

다음의 그림을 다시 보자

pdf page구조

통상의 문서를 머리말과 꼬리말, 본문, 그리고 좌우여백으로 이루어진다.

지금까지는 위의 구역을 나누지 않고 전체 페이지를 기준으로 좌표를 정해 왔는데, 이건 페이지가 1장일 때에나 가능하다.

왜냐하면 페이지가 여러장인 경우, 머리말과 꼬리말은 여러페이지에 반복해서 인쇄되어야 할 것이고, 페이지를 나눌떄의 기준점을 페이지의 마지막 좌표가 아니라 본문의 마지막 좌표를 기준으로 해야 하기 때문이다.

따라서 각 구역을 기준으로 상대좌표를 정하는게 합리적이다.

구역화하기

1. 각 구역의 절대 좌표 기억하기

일단 각 구역을 기준으로 상대좌표로 인쇄하기로 하였으면, 일단은 각 구역이 페이지 내에서 어느 지점에 위치하는지를 정해야 할 것이다. 따라서 다음과 같은 코드가 필요하다.

    // 각 구역 좌표
    val headerSection = Rect(0, 0, PDF_PAGE_WIDTH, marginTop)  // 머리말 부분 위치
    val footerSection = Rect(0, PDF_PAGE_HEIGHT - marginBottom, PDF_PAGE_WIDTH, PDF_PAGE_HEIGHT)  // 꼬리말 부분 위치
    val bodySection = Rect(marginLeft, marginTop, PDF_PAGE_WIDTH - marginLeft, PDF_PAGE_HEIGHT - marginBottom)  // 본문
    val leftSection = Rect(0, marginTop, marginLeft, PDF_PAGE_HEIGHT - marginBottom) // 왼쪽 여백
    val rightSection = Rect(PDF_PAGE_WIDTH - marginRight, marginTop, PDF_PAGE_WIDTH, PDF_PAGE_HEIGHT - marginBottom) // 오른쪽 여백
로그인하면 댓글을 남길 수 있습니다.

android/pdfdocument/sectioning.1733850824.txt.gz · 마지막으로 수정됨: 2024/12/11 02:13 저자 이거니맨