Java로 PDF를 만들었습니다.
개시하다
계산서 출력은 어떤 시스템에서도 볼 수 있지만 최근에는 무지화로 종이 출력 자체가 줄어든 것 같다.그럼에도 불구하고 장부상의 물건은 여전히 필요한 상업 습관이다.PDF 데이터를 간단하게 만듭니다.
프로그램 라이브러리
pdfbox-2.0.8
다운로드는 여기서부터 시작합니다.
공식.
일단 파일을 만들어 보도록 하겠습니다.
package pdf;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
public class PdfTest {
public static void main(String args[]) {
try {
// ドキュメントオブジェクトの作成
PDDocument document = new PDDocument();
// ページオブジェクトの作成
PDPage page = new PDPage();
document.addPage(page);
// ドキュメントを保存します
document.save("test.pdf");
document.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과
서류 한 페이지밖에 없는데.
출력 텍스트
다음은 텍스트 출력입니다.package pdf;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
public class PdfTest {
public static void main(String args[]) {
try {
// ドキュメントオブジェクトの作成
PDDocument document = new PDDocument();
// ページオブジェクトの作成
PDPage page = new PDPage();
document.addPage(page);
//文字出力処理
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
//フォント指定
PDFont font = PDType1Font.TIMES_ITALIC;
contentStream.setFont(font, 12);
//出力位置指定
contentStream.newLineAtOffset(0f, 0f);
//出力文字列
contentStream.showText( "HelloWorld" );
contentStream.endText();
contentStream.close();
// ドキュメントを保存します
document.save("test2.pdf");
document.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과
출력 위치.newLine AtOffset(0f, 0f)으로 맨 왼쪽 아래로 내보냅니다.출력 글씨체도 다양한 종류가 있다.
일본어 출력
package pdf;
import java.io.File;
import org.apache.fontbox.ttf.TrueTypeCollection;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType0Font;
public class PdfTest {
public static void main(String args[]) {
try {
// ドキュメントオブジェクトの作成
PDDocument document = new PDDocument();
// ページオブジェクトの作成
PDPage page = new PDPage();
document.addPage(page);
//文字出力処理
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
//フォント指定
File file = new File("C:/Windows/Fonts/msmincho.ttc");
TrueTypeCollection collection = new TrueTypeCollection(file);
PDFont font = PDType0Font.load(document, collection.getFontByName("MS-Mincho"), true);
contentStream.setFont(font, 12);
//出力位置指定
contentStream.newLineAtOffset(0f, 755f);
//出力文字列
contentStream.showText( "こんにちは世界" );
contentStream.endText();
contentStream.close();
// ドキュメントを保存します
document.save("test3.pdf");
document.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과
글꼴 파일.ttfttc에서 약간의 변화가 있을 수 있습니다.이번엔?ttc를 사용하고 있습니다.
파일을 만들지 않고 PDF 데이터만 저장합니다.
업무 상황에 따라 실제 파일을 만들지 않고 데이터만 저장하는 필수 조건이 있을 수 있다.문제 없어, 실현할 수 있어.package pdf;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.fontbox.ttf.TrueTypeCollection;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType0Font;
public class PdfTest {
public static void main(String args[]) {
try {
// ドキュメントオブジェクトの作成
PDDocument document = new PDDocument();
// ページオブジェクトの作成
PDPage page = new PDPage();
document.addPage(page);
//文字出力処理
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
//フォント指定
File file = new File("C:/Windows/Fonts/msmincho.ttc");
TrueTypeCollection collection = new TrueTypeCollection(file);
PDFont font = PDType0Font.load(document, collection.getFontByName("MS-Mincho"), true);
contentStream.setFont(font, 12);
//出力位置指定
contentStream.newLineAtOffset(0f, 755f);
//出力文字列
contentStream.showText( "こんにちは世界。データのみ保存。" );
contentStream.endText();
contentStream.close();
// ドキュメントデータを保存します
ByteArrayOutputStream out = new ByteArrayOutputStream();
document.save(out);
document.close();
InputStream streamData =new ByteArrayInputStream(out.toByteArray());
System.out.println("確認------------");
System.out.println("streamData" + streamData);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
blocb형 열 등에 직접 저장할 수 있습니다.
제작된 PDF에서 문자열을 추출합니다.
package pdf;
import java.io.File;
import java.io.StringWriter;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
public class GetPdfText {
public static void main(String args[]) {
try {
String pdfFile = "test3.pdf";
PDDocument document = PDDocument.load(new File(pdfFile));
StringWriter output = new StringWriter();
PDFTextStripper stripper = new PDFTextStripper();
stripper.setStartPage(1);
stripper.setEndPage(1);
stripper.setSortByPosition(false);
stripper.setShouldSeparateByBeads(true);
stripper.writeText(document, output);
String content = output.toString();
System.out.println("---------出力開始-------------");
System.out.println(content);
} catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과
------출력 시작 ------
안녕 세상
다른 것은 이미지 충전과 격선 등 다양한 기능도 있으니 다시 보충할 기회가 있을 것 같습니다.
Reference
이 문제에 관하여(Java로 PDF를 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/iwanmin/items/39e94f61fc632ab6c2e9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pdfbox-2.0.8
다운로드는 여기서부터 시작합니다.
공식.
일단 파일을 만들어 보도록 하겠습니다.
package pdf;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
public class PdfTest {
public static void main(String args[]) {
try {
// ドキュメントオブジェクトの作成
PDDocument document = new PDDocument();
// ページオブジェクトの作成
PDPage page = new PDPage();
document.addPage(page);
// ドキュメントを保存します
document.save("test.pdf");
document.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과
서류 한 페이지밖에 없는데.
출력 텍스트
다음은 텍스트 출력입니다.
package pdf;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
public class PdfTest {
public static void main(String args[]) {
try {
// ドキュメントオブジェクトの作成
PDDocument document = new PDDocument();
// ページオブジェクトの作成
PDPage page = new PDPage();
document.addPage(page);
//文字出力処理
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
//フォント指定
PDFont font = PDType1Font.TIMES_ITALIC;
contentStream.setFont(font, 12);
//出力位置指定
contentStream.newLineAtOffset(0f, 0f);
//出力文字列
contentStream.showText( "HelloWorld" );
contentStream.endText();
contentStream.close();
// ドキュメントを保存します
document.save("test2.pdf");
document.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과
출력 위치.newLine AtOffset(0f, 0f)으로 맨 왼쪽 아래로 내보냅니다.출력 글씨체도 다양한 종류가 있다.
일본어 출력
package pdf;
import java.io.File;
import org.apache.fontbox.ttf.TrueTypeCollection;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType0Font;
public class PdfTest {
public static void main(String args[]) {
try {
// ドキュメントオブジェクトの作成
PDDocument document = new PDDocument();
// ページオブジェクトの作成
PDPage page = new PDPage();
document.addPage(page);
//文字出力処理
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
//フォント指定
File file = new File("C:/Windows/Fonts/msmincho.ttc");
TrueTypeCollection collection = new TrueTypeCollection(file);
PDFont font = PDType0Font.load(document, collection.getFontByName("MS-Mincho"), true);
contentStream.setFont(font, 12);
//出力位置指定
contentStream.newLineAtOffset(0f, 755f);
//出力文字列
contentStream.showText( "こんにちは世界" );
contentStream.endText();
contentStream.close();
// ドキュメントを保存します
document.save("test3.pdf");
document.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과
글꼴 파일.ttfttc에서 약간의 변화가 있을 수 있습니다.이번엔?ttc를 사용하고 있습니다.
파일을 만들지 않고 PDF 데이터만 저장합니다.
업무 상황에 따라 실제 파일을 만들지 않고 데이터만 저장하는 필수 조건이 있을 수 있다.문제 없어, 실현할 수 있어.
package pdf;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.fontbox.ttf.TrueTypeCollection;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType0Font;
public class PdfTest {
public static void main(String args[]) {
try {
// ドキュメントオブジェクトの作成
PDDocument document = new PDDocument();
// ページオブジェクトの作成
PDPage page = new PDPage();
document.addPage(page);
//文字出力処理
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
//フォント指定
File file = new File("C:/Windows/Fonts/msmincho.ttc");
TrueTypeCollection collection = new TrueTypeCollection(file);
PDFont font = PDType0Font.load(document, collection.getFontByName("MS-Mincho"), true);
contentStream.setFont(font, 12);
//出力位置指定
contentStream.newLineAtOffset(0f, 755f);
//出力文字列
contentStream.showText( "こんにちは世界。データのみ保存。" );
contentStream.endText();
contentStream.close();
// ドキュメントデータを保存します
ByteArrayOutputStream out = new ByteArrayOutputStream();
document.save(out);
document.close();
InputStream streamData =new ByteArrayInputStream(out.toByteArray());
System.out.println("確認------------");
System.out.println("streamData" + streamData);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
blocb형 열 등에 직접 저장할 수 있습니다.제작된 PDF에서 문자열을 추출합니다.
package pdf;
import java.io.File;
import java.io.StringWriter;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
public class GetPdfText {
public static void main(String args[]) {
try {
String pdfFile = "test3.pdf";
PDDocument document = PDDocument.load(new File(pdfFile));
StringWriter output = new StringWriter();
PDFTextStripper stripper = new PDFTextStripper();
stripper.setStartPage(1);
stripper.setEndPage(1);
stripper.setSortByPosition(false);
stripper.setShouldSeparateByBeads(true);
stripper.writeText(document, output);
String content = output.toString();
System.out.println("---------出力開始-------------");
System.out.println(content);
} catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과
------출력 시작 ------
안녕 세상
다른 것은 이미지 충전과 격선 등 다양한 기능도 있으니 다시 보충할 기회가 있을 것 같습니다.
Reference
이 문제에 관하여(Java로 PDF를 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/iwanmin/items/39e94f61fc632ab6c2e9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)