android:pdfdocument:measuringparagraph
measuringparagraph
문서의 이전 판입니다!
목적
문구가 좌표상에서 어떻게 위치하는지를 파악하도록 할 것이다.
글자가 페이지상의 어느 좌표에 위치하는지를 알면, 페이지를 나누는 것이 가능해질 것이다.
좌표화 하기
1. 2차원 좌표계 클래스 만들기
다음과 같이 2차원 좌표계 클래스를 만들었다.
// 2차원 위치 POS data class POS(private val x : Int = 0, private val y : Int = 0) { var X: Int = x var Y: Int = y operator fun plus(increment : POS) : POS { return POS(X + increment.Y, Y + increment.Y) } operator fun minus(decrease : POS) : POS { return POS(X - decrease.Y, Y - decrease.Y) } }
연산자에 대한 오버로딩은 앞에 operator를 붙이면 된다. 연사자 오버로딩을 통하여 2차원 좌표계의 덧셈을 편하게 만들었다. 위의 코드를 참조하라.
2. 좌표 정의
이전 포스팅에서는 A4 용지의 크기를 포인트 단위로 정했었다. 이러한 A4의 크기 내에서 머리말, 꼬리말, 좌우여백을 다음과 같이 만들었다. 그리고 글을 쓸 시작 시점은 당연히 본문 부분의 좌측 최상단일 것이다. 본문부분의 좌측 최상단은 머리말과 좌측 여백만큼 오프셋을 계산하면 될 것이다.
// 여백 val marginTop = 42 val marginBottom = 50 val marginLeft = 47 val marginRight = 48 // 좌표 위치 private var totalPOS = POS(marginLeft, marginTop) private var currentPOS = POS(marginLeft, marginTop)
totalPOS은 페이지 내의 상대위치가 아닌 절대 위치를 말한다. 그리고 currentPOS은 페이지 내에서의 상대위치를 가리키는 좌표이다.
android/pdfdocument/measuringparagraph.1733530432.txt.gz · 마지막으로 수정됨: 2024/12/07 09:13 저자 이거니맨
로그인