android:pdfdocument:pdfdocument_start
pdfdocument start
문서의 이전 판입니다!
들어가며
1. 이 글의 목적
PDF Document API를 이용하여 간단하게 PDF를 만드는 방법에 대하여 알아보자.
2. 용지의 크기
PDF 문서를 만들려면 가장 먼저, 용지의 크기를 정해야 한다. 이는 당연할 것이다. 포토샵으로 따지면 캔버스의 크기를 말한다.
통상 우리가 문서를 만들때에는 A4용지를 쓴다. 그런데 A4용지의 크기는 다음과 같다.
가로 210mm = 8.26Inch 세로 297mm = 11.69Inch
그런데 안드로이드에서 제공하는 PDF Document의 단위는 1포인트인데, 이 포인트는 1인치를 기준으로 72포인트라고 한다. 따라서 용지의 크기를 정할 떄에는 인치를 기준으로 포인트를 정하는 것이 좋다. 따라서 위의 인치를 기준으로 한 A4 용지의 크기를 포인트로 환산하면 다음과 같다.
가로 : 8.26Inch = 594.72point ≒ 595point 세로 : 11.69Inch = 841.68point ≒ 842point
A4용지의 크리는 인치를 기준으로 하면 정확하게 포인트가 정수형으로 떨어지지 않는다. 따라서 반올림을 하여 가로 595포인트, 세로 824포인트로 정하면 A4용지의 크기를 정할 수 있다.
/**Dimension For A4 Size Paper (1 inch = 72 points)**/ val PDF_PAGE_WIDTH = 595 //8.26 Inch val PDF_PAGE_HEIGHT = 842 //11.69 Inch
Starting Page
용지 중앙에 글자를 그리는 예시는 다음과 같다.
fun generatePDFStart() { /**Dimension For A4 Size Paper (1 inch = 72 points)**/ val PDF_PAGE_WIDTH = 595 //8.26 Inch val PDF_PAGE_HEIGHT = 842 //11.69 Inch // creating a PDF Document instance val pdfDocument: PdfDocument = PdfDocument() // Page Information : Page's Width, Height, and PageNumber val myPageInfo: PdfDocument.PageInfo? = PdfDocument.PageInfo.Builder(PDF_PAGE_WIDTH, PDF_PAGE_HEIGHT, 1).create() // Page val myPage: PdfDocument.Page = pdfDocument.startPage(myPageInfo) // creating a variable for canvas from our page of PDF. val canvas: Canvas = myPage.canvas // Variable to make a drawing(Text) val title: Paint = Paint() // Draw Text canvas.drawText("Hello, PDF Document!", 209F, 100F, title) pdfDocument.finishPage(myPage) savePdfFileExternalStorage("StartPDF.pdf", pdfDocument) pdfDocument.close() }
PDF Font Change
1. Paint API
PDFDocument API에서는 글자나 그림이나 모두 android.graphics.Paint API(이하에서는 Paint API로 약칭하겠다)를 사용한다.
제트팩컴퍼즈에서 사용하는 text API는 사용할 수 없으니, Paint API를 사용하여 텍스트를 그려야 한다.
나는 고령딸기체와 떡볶이체를 폰트로 사용할 것이다. 따라서 다음과 같이 두개의 Paint object를 만든다.
// Paint object to make a Text val title: Paint = Paint() // Title paint, Goryoengstrawberry font val ttoppokki : Paint = Paint() // text in the center of page, ttoppokki font
android/pdfdocument/pdfdocument_start.1733149914.txt.gz · 마지막으로 수정됨: 2024/12/02 23:31 저자 이거니맨
로그인