중화사전망 - 자전 검색 - Java 구성 요소 itext 를 사용하여 pdf 를 생성하는 방법
Java 구성 요소 itext 를 사용하여 pdf 를 생성하는 방법
하나. IText 소개
IText 는 유명한 오픈 소스 웹 사이트인 SourceForge 의 프로젝트로, PDF 문서를 생성하는 데 사용되는 Java 클래스 라이브러리입니다. IText 는 PDF 또는 rtf 문서를 생성할 수 있을 뿐만 아니라 XML 및 Html 파일을 PDF 파일로 변환할 수 있습니다.
IText 설치는 매우 편리하며 /iText/download.html-download 에서 찾을 수 있습니다.
웹 사이트에서 iText.jar 파일을 다운로드한 후 iText.jar 의 경로를 시스템의 클래스 경로에 추가하기만 하면 프로그램에서 iText 클래스 라이브러리를 사용할 수 있습니다.
그런 다음 첫 번째 PDF 문서를 작성합니다
IText 를 사용하여 PDF 문서를 생성하는 5 단계는 다음과 같습니다.
(1) com.lowagie.text.Document 객체의 인스턴스를 만듭니다.
문서 문서 = 새 문서 ();
(2) Writer 를 문서 객체와 연결하면 문서는 Writer 를 통해 디스크에 쓸 수 있습니다.
Pdf writer. getinstance(document, new file output stream ("hello world. Pdf "));
③ 문서를 엽니 다.
Document.open ();
④ 문서에 내용을 추가하십시오.
Document.add ("hello world");
⑤ 문서를 닫다.
Document.close () 를 참조하십시오.
위의 다섯 단계를 통해 "Hello World" 를 내용으로 하는 Helloworld.PDF 파일을 만들 수 있습니다.
Com.lowagie.text.Document 객체의 인스턴스를 작성합니다.
Com.lowagie.text.Document 객체에는 다음과 같은 세 가지 생성자가 있습니다.
공개 문서 ();
공용 문서 (사각형 페이지 크기);
공용 문서 (사각형 페이지 크기,
Int marginLeft,
중간 여백 Right,
Int marginTop,
Int margin bottom);
생성자의 매개 변수인 pageSize 는 문서의 페이지 크기입니다. 첫 번째 생성자의 경우 페이지 크기는 A4 로 Document(PageSize) 와 같은 효과를 냅니다. A4).
세 번째 생성자의 경우 marginLeft, marginRight, marginTop 및 marginBottom 매개 변수는 각각 왼쪽, 오른쪽, 위쪽 및 아래쪽 여백입니다.
PageSize 매개 변수를 통해 페이지 크기, 전면 배경색 및 페이지 가로/세로 속성을 설정할 수 있습니다. IText 는 A0-A 10, AL, LETTER 를 정의합니다.
HALFLETTER, _ 1 1x 17, LEDGER, NOTE, B0-B5, arch _;
및 FLSE 또는 직사각형 pagesize = 새 직사각형 (144,
720); 맞춤형 용지. Rectangle 메서드 rotate () 는 페이지를 가로로 설정합니다.
작성자 객체
문서 객체를 만든 후에는 하나 이상의 Writer 객체를 연결해야 합니다. 작성기 객체는 특정 문서를 전송하는 데 사용할 수 있습니다.
원하는 형식으로 저장합니다. 예를 들어 com.lowagie.text.PDF.PDFWriter 는 문서를 PDF 파일로 저장할 수 있습니다.
Com 입니다. Lowagie.text.html.htmlwriter 는 문서를 html 파일로 저장합니다.
문서 등록 정보 설정
문서를 열기 전에 문서의 제목, 주제, 작성자, 키워드, 바인딩 방법, 작성자, 제작자, 만든 날짜 및 기타 속성을 설정할 수 있습니다. 호출 메서드는 다음과 같습니다.
공통 부울 addTitle (문자열 제목)
공용 부울 addSubject (문자열 주제)
공용 부울 addKeywords (문자열 키워드)
공용 부울 addAuthor (문자열 작성자)
공용 부울 addCreator (문자열 생성자)
공용 부울 addProducer ()
공용 부울 addCreationDate ()
공용 부울 addHeader (문자열 이름, 문자열 내용)
여기서 addHeader 메서드는 PDF 문서에 유효하지 않으며 addHeader 는 html 문서에만 유효하며 문서의 제목 정보를 추가하는 데 사용됩니다.
새 페이지를 생성하기 전에 페이지 크기, 책갈피, 머리글 바닥글 및 기타 정보를 설정할 수 있습니다. 호출 메서드는 다음과 같습니다.
공통 부울 setPageSize (직사각형 PageSize)
공용 부울 추가 (워터마크 워터마크)
공용 void removeWatermark ()
공용 void set 헤더 (header footer header)
공용 void resetHeader ()
공용 빈 설정 바닥글 (머리글 바닥글)
Public void resetFooter ()
Public void resetPageCount ()
공용 void setPageCount(int pageN)
첫 페이지의 페이지 속성을 설정하려면 문서를 열기 전에 이러한 메서드를 호출해야 합니다.
PDF 문서의 경우 iText 는 문서의 표시 속성도 제공합니다. Writer 의 setViewerPreferences 메서드를 호출하여 문서를 열 때 Acrobat Reader 의 표시 속성 (예: 한 페이지 표시 여부, 전체 화면 표시 여부, 상태 표시줄 숨기기 여부 및 기타 속성) 을 제어할 수 있습니다.
또한 iText 는 Writer 의 setEncryption 메서드를 통해 문서의 사용자 암호, 읽기 전용, 인쇄 가능 등의 속성을 설정할 수 있는 PDF 파일에 보안을 제공합니다.
문서 컨텐트 추가
문서에 추가하는 모든 내용은 구문, 단락, 표, 그래픽 객체 등과 같은 객체를 기반으로 합니다. 단락 객체는 일반적으로 문서에 단락을 추가하는 데 사용됩니다.
셋째, 텍스트 처리
IText 에서 블록, 구 및 단락을 사용하여 텍스트를 처리합니다.
텍스트 블록은 처리되는 텍스트의 최소 단위이며 글꼴, 색상, 크기 등의 서식이 있는 문자열로 구성됩니다. 예를 들어, 다음 코드는 10 크기의 헬베티카 글꼴로 밑줄이 그어진 문자열을 생성합니다.
Chunk chunk 1 = new Chunk ("이 텍스트에 밑줄", fontfactory.getfont (font factory) 가 있음. 헬베티카, 12 글꼴. 밑줄));
구는 하나 이상의 텍스트 블록으로 구성되며 구에 글꼴을 설정할 수 있지만 글꼴이 설정된 텍스트 블록의 경우 ,
(블록) 이 잘못되었습니다. 텍스트 블록은 구문 멤버 함수 add 를 통해 구에 추가할 수 있습니다.
예: phrase6.add (chunk);
단락은 하나 이상의 블록이나 구로 구성됩니다.
WORD 문서에 있는 단락의 개념과 마찬가지로 단락의 크기, 색상 등의 속성을 설정할 수 있습니다. 또한 단락의 첫 줄 들여쓰기 및 정렬 (왼쪽, 오른쪽 및 가운데) 을 설정할 수 있습니다.
단락 정렬은 setAlignment 함수를 통해 설정할 수 있습니다. SetAlignment 의 매개변수는 가운데 정렬, 2 오른쪽 정렬, 3 왼쪽 정렬이며 기본값은 왼쪽 정렬입니다.
넷째, 양식 처리
IText 에서 양식을 처리하는 클래스는 com.lowagie.text.Table 과 com. lowa gie. text. pdf. pdf table 입니다.
간단한 테이블 처리에는 com.lowagie.text.Table 을 사용할 수 있지만 복잡한 테이블로 작업하는 경우에는 필요합니다.
처리를 위한 com. lowa gie. text. pdf. pdf 양식. 다음은 com.lowagie.text.Table 클래스에 대한 설명입니다
Com.lowagie.text.Table 클래스에는 다음과 같은 세 가지 생성자가 있습니다.
① 양식 (가운데 열)
② 표 (정수 열, 정수 행)
③ 양식 (속성 속성)
Columns, rows 및 attributes 매개 변수는 각각 테이블의 열 수, 행 수 및 테이블 속성입니다. 테이블을 만들 때 테이블의 열 수를 지정해야 하지만 행 수는 지정할 필요가 없습니다.
표를 만든 후 테두리 너비, 테두리 색상 및 채우기 공간과 같은 표 속성을 설정할 수 있습니다. 이 표를 사용하는 방법을 보여 주는 간단한 예가 있습니다. 코드는 다음과 같습니다.
1:Table 테이블 = 새 테이블 (3);
2: table.setborderwidth (1);
3:table.setBorderColor (새 색상 (0,0,255));
4: table.set padding (5);
5: table.set spacing (5);
6: 셀 = 새 셀 ("헤더");
7: cell.setheader (true);
8: cell.set colspan (3) :
9:table.addCell (셀);
10: table.endheaders ();
1 1:cell = 새 셀 ("열 범위가 1 이고 행 범위가 2 인 샘플 셀");
12: cell.set rowspan (2);
13:cell.setBorderColor (새 색상 (255,0,0));
14: table.addcell (cell);
15: table.addcell ("1.1");
16: table.addcell ("2.1");
17: table.addcell ("1.2");
18: table.addcell ("2.2");
19: table.addcell ("celltest1");
20: 셀 = 새 셀 ("큰 셀");
21:cell.set rowspan (2);
22: cell.set colspan (2) :
23:table.addCell (셀);
24: table.addcell ("celltest2");
실행 결과는 다음과 같습니다.
머리글
열 범위 1, 행 범위 21..12.1에 대한 셀 예
1.2 2.2
배터리 테스트 1 대형 배터리
세포 실험 2
코드의 1-5 행은 새 테이블을 만드는 데 사용됩니다. 코드에 표시된 대로 테두리 너비가 1, 색상이 파란색, 채우기가 5 로 설정된 3 열 테이블이 만들어집니다.
코드 6- 10 행은 테이블 헤더 설정, 7 행 cell.setheader (true); 예, 셀이 머리글 정보로 표시됩니다. 여덟 번째 줄
Cell.set colspan (3); 셀이 3 열을 차지하도록 지정합니다. 테이블에 제목 정보를 추가할 때 제목 정보를 추가한 후에는 호출해야 한다는 점에 유의해야 합니다.
10 행과 같은 EndHeaders () 메서드, 그렇지 않으면 표를 확장할 때 제목 정보가 표시되지 않습니다.
코드 1 1- 14 line 은 폭이 1 열이고 길이가 2 행인 셀을 테이블에 추가하는 것입니다.
셀이 표에 추가되면 왼쪽에서 오른쪽으로, 위에서 아래로 추가됩니다. 예를 들어 1 1 행 코드를 실행한 후 테이블의 오른쪽 아래에 두 개의 행과 두 개의 열이 나타납니다. 즉, 표에 셀을 추가할 때 먼저 이 공백을 채운 다음 새 행을 시작합니다. 15-24 코드 행은 이러한 추가 순서를 보여줍니다.
동사 (verb 의 약어) 이미지 처리
IText 에서 테이블을 처리하는 클래스는 com.lowagie.text.Image 입니다. 현재 iText 에서 지원하는 이미지 형식은 GIF, Jpeg, PNG,
Wmf 와 같은 형식의 경우 iText 는 서로 다른 이미지 형식에 대해 동일한 생성자를 사용하여 이미지 형식을 자동으로 인식합니다. 다음 코드를 사용하여 각각 gif, jpg 및 png 이미지의 예를 가져옵니다.
Imagegif = image.getinstance ("vonnegut.gif");
Imagejpeg = image.getinstance ("mykids.jpg");
Imagepng = image.getinstance ("hitchcock.png");
이미지 위치
이미지의 위치는 주로 문서에서 이미지가 정렬되는 방식과 이미지와 텍스트 사이의 위치 관계를 나타냅니다. IText 에서 공용 void set alignment(int
정렬) 처리, 매개변수 정렬은 이미지입니다. 네, 이미지. 중간 및 이미지. 왼쪽, 오른쪽 정렬, 가운데 정렬,
왼쪽 정렬 매개변수 정렬이 이미지일 때. 텍스트 줄바꿈 및 이미지. 텍스트는 그래픽 주위에 표시되고 그래픽은 텍스트의 배경으로 표시됩니다. 이것은
두 개의 매개변수를 결합하여 원하는 효과를 얻을 수 있습니다. 예를 들어 정렬 표시 효과 (이미지) 를 설정합니다. 오른쪽 | 이미지. Textwrap) 은 이미지를 오른쪽으로 정렬하고 텍스트를 표시하는 것입니다.
이미지 주위에 표시됩니다.
이미지 크기 및 회전
이미지가 문서에 원래 크기로 표시되지 않는 경우 다음 기능을 사용하여 설정할 수 있습니다.
Public void scaleabsolute (int new width, int newHeight)
공개 공석 비율 (int 백분율)
공용 void scale percent(int percentX, int percentY)
함수 public void scaleabsolute (int new width, int).
NewHeight) 직접 표시 크기를 설정합니다. 함수 공용 void scale percent(int
Percent) 는 표시 배율을 설정합니다. 예를 들어 scale percent(50) 는 표시 크기가 원래 크기의 50% 임을 의미합니다. 및 함수 scale percent(int
PercentX, int percentY) 는 이미지 높이와 너비의 표시 비율입니다.
이미지를 특정 각도로 회전한 후 문서에 표시해야 하는 경우 public void set rotation(double r) 함수를 통해 설정할 수 있습니다. 매개변수 r 은 라디안입니다. 회전 각도가 30 도인 경우 매개변수 r = Math.PI/6.
여섯째, 중국어 처리
기본 iText 글꼴 설정은 중국어 글꼴을 지원하지 않습니다. 극동 글꼴 패키지 iTextAsian.jar 를 다운로드해야 합니다. 그렇지 않으면 중국어 글꼴을 PDF 문서로 출력할 수 없습니다. 다음 코드를 사용하여 문서에 중국어를 사용할 수 있습니다.
Base font BF Chinese = basefont.createfont ("stsong-light", "UniGB-UCS2-H", basefont. Not _ embed);
Com.lowagie.text.fontfontchinese = newcom.lowagie.text.font (bfchinese, 12,)
Paragraph = 새 단락 ("hello", fontchinese);