http://www-128.ibm.com/developerworks/kr/library/os-javapdf/index.html

위의 기사는 영문을 번역한 것이기 때문에 한글이 들어간 PDF파일을 만들기 위해선 수정해줘야 한다.
스크린샷과 코드를 참고할 것.
스크린샷과 코드를 참고할 것.
Tutorial: iText by Example
http://itextdocs.lowagie.com/tutorial/
http://itextdocs.lowagie.com/tutorial/
다운로드
http://prdownloads.sourceforge.net/itext/itext-1.4.jar
http://itext.sourceforge.net/downloads/iTextAsian.jar
http://prdownloads.sourceforge.net/itext/itext-1.4.jar
http://itext.sourceforge.net/downloads/iTextAsian.jar
D:temp>set classpath=d:tempitext-1.4.jar;d:tempiTextAsian.jar;%classpath%
D:temp>javac PdfTest.java
D:temp>java PdfTest
D:temp>test.pdf
*/
D:temp>javac PdfTest.java
D:temp>java PdfTest
D:temp>test.pdf
*/
import java.awt.Color;
import java.io.FileOutputStream;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
import java.io.FileOutputStream;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
public class PdfTest
{
public static void main(String[] args)
{
try
{
Document doc = new Document(PageSize.A4, 50,50,50,50); // 페이지크기와 여백
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream("test.pdf"));
{
public static void main(String[] args)
{
try
{
Document doc = new Document(PageSize.A4, 50,50,50,50); // 페이지크기와 여백
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream("test.pdf"));
doc.open();
// 가용 폰트: HYGoThic-Medium, HYSMyeongJo-Medium, HYSMyeongJoStd-Medium | UniKS-UCS2-H, UniKS-UCS2-V
BaseFont bfKorean = BaseFont.createFont("HYGoThic-Medium", "UniKS-UCS2-H", BaseFont.NOT_EMBEDDED);
Font fnNormal = new Font(bfKorean, 12);
Font fnSpecial1 = new Font(bfKorean, 18, Font.BOLDITALIC, new Color(0, 0, 255));
Font fnSpecial2 = new Font(bfKorean, 16, Font.BOLDITALIC, new Color(255, 0, 0));
// 가용 폰트: HYGoThic-Medium, HYSMyeongJo-Medium, HYSMyeongJoStd-Medium | UniKS-UCS2-H, UniKS-UCS2-V
BaseFont bfKorean = BaseFont.createFont("HYGoThic-Medium", "UniKS-UCS2-H", BaseFont.NOT_EMBEDDED);
Font fnNormal = new Font(bfKorean, 12);
Font fnSpecial1 = new Font(bfKorean, 18, Font.BOLDITALIC, new Color(0, 0, 255));
Font fnSpecial2 = new Font(bfKorean, 16, Font.BOLDITALIC, new Color(255, 0, 0));
doc.add(new Paragraph("문서의 첫 페이지의 첫번째 문단", fnNormal));
doc.add(new Paragraph("문서의 첫 페이지의 두번째 문단", fnSpecial1));
doc.add(new Paragraph("문서의 첫 페이지의 두번째 문단", fnSpecial1));
// Chapter = Section1 + Section2 + ..
Paragraph title1 = new Paragraph("첫번째 챕터", fnSpecial1);
Chapter chapter1 = new Chapter(title1, 1);
chapter1.setNumberDepth(0);
Paragraph title1 = new Paragraph("첫번째 챕터", fnSpecial1);
Chapter chapter1 = new Chapter(title1, 1);
chapter1.setNumberDepth(0);
Paragraph title11 = new Paragraph("첫번째 챕터의 첫번째 섹션", fnSpecial2);
Section section1 = chapter1.addSection(title11);
Section section1 = chapter1.addSection(title11);
Paragraph someSectionText = new Paragraph("첫번째 챕터의 첫번째 섹션내에 들어있는 텍스트임", fnNormal);
section1.add(someSectionText);
someSectionText = new Paragraph("다음은 테이블의 예이다.", fnNormal);
section1.add(someSectionText);
section1.add(someSectionText);
someSectionText = new Paragraph("다음은 테이블의 예이다.", fnNormal);
section1.add(someSectionText);
// 테이블 예제 /////////////////
Table t = new Table(3); // 3열의 테이블(열의 개수만 명시적으로 지정하면 됨)
t.setBorderWidth(1);
t.setBorderColor(new Color(0,0,255));
t.setPadding(5); // 셀내 텍스트와의 여백
t.setSpacing(5); // 테이블내 셀간의 여백
Table t = new Table(3); // 3열의 테이블(열의 개수만 명시적으로 지정하면 됨)
t.setBorderWidth(1);
t.setBorderColor(new Color(0,0,255));
t.setPadding(5); // 셀내 텍스트와의 여백
t.setSpacing(5); // 테이블내 셀간의 여백
// 첫번째 행
Cell c = new Cell(new Paragraph("헤더", fnNormal));
c.setHeader(true);
c.setColspan(3);
t.addCell(c);
t.endHeaders();
Cell c = new Cell(new Paragraph("헤더", fnNormal));
c.setHeader(true);
c.setColspan(3);
t.addCell(c);
t.endHeaders();
c = new Cell(new Paragraph("rowspan 2를 적용한 셀", fnNormal));
c.setRowspan(2);
c.setBorderColor(new Color(255,0,0));
t.addCell(c);
t.addCell("1.1");
t.addCell("2.1");
t.addCell("1.2");
t.addCell("2.2");
t.addCell(new Paragraph("강이식", fnNormal));
c = new Cell("rowspan 2, colspan 2");
c.setRowspan(2);
c.setColspan(2);
t.addCell(c);
t.addCell(new Paragraph("강감찬", fnNormal));
section1.add(t);
// 리스트 예제 /////////////////
List l = new List(true, 10); // 번호매기기, indent크기
l.add(new ListItem("리스트의 첫번째 항목", fnNormal));
l.add(new ListItem("리스트의 두번째 항목", fnNormal));
section1.add(l);
doc.add(chapter1);
doc.close();
c.setRowspan(2);
c.setBorderColor(new Color(255,0,0));
t.addCell(c);
t.addCell("1.1");
t.addCell("2.1");
t.addCell("1.2");
t.addCell("2.2");
t.addCell(new Paragraph("강이식", fnNormal));
c = new Cell("rowspan 2, colspan 2");
c.setRowspan(2);
c.setColspan(2);
t.addCell(c);
t.addCell(new Paragraph("강감찬", fnNormal));
section1.add(t);
// 리스트 예제 /////////////////
List l = new List(true, 10); // 번호매기기, indent크기
l.add(new ListItem("리스트의 첫번째 항목", fnNormal));
l.add(new ListItem("리스트의 두번째 항목", fnNormal));
section1.add(l);
doc.add(chapter1);
doc.close();
} catch(Exception e) {
System.out.println(e.getMessage());
}
}
}
System.out.println(e.getMessage());
}
}
}
'프로그래밍 > java' 카테고리의 다른 글
자바 CSV 파일 생셩 (0) | 2010.04.15 |
---|---|
Java Application, jar 압축 및 윈도우 .execute 로 래핑 (0) | 2009.12.14 |
javax.comm 이용시 Port를 못찾는 경우.. (0) | 2009.06.26 |
자바 시리얼 통신 설명 자료[펌] (0) | 2009.06.10 |
jxl (0) | 2009.06.10 |