iTextを使用して会社解散の「清算結了」書類を作成するJavaのアプリケーション
iTextを使用して会社解散の「清算結了」書類を作成するJavaのアプリケーションを作成しました。
アプリケーションを実行するには下記のライブラリが必要となります。
- iTextのライブラリ(iText-2.1.7.jar、iTextAsian.jar)下記のURLよりダウンロードできます。
- http://www.lowagie.com/iText/download.html ・・・・iText-2.1.7.jar
- http://itextpdf.sourceforge.net/ ・・・・iTextAsian.jar
作成する「清算結了」の原本となる異動届出書(PDFファイル)は下記のURLよりダウンロードできます。
- http://www.tax.metro.tokyo.jp/shomei/index-z.htm#8 ・・・・ 1-2A.pdf(異動届出書.pdfに変更)東京都主税局<申請様式>
package jp.co.hoshisoft;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfWriter;public class CreatePDF1 {
public static void main(String[] args) {
CreatePDF1 main = new CreatePDF1();
main.exec1();
}
public void exec1() {
PdfReader reader = null;
BaseFont bf = null;
Document document = null;
try {
reader = new PdfReader("異動届出書.pdf");Rectangle psize = reader.getPageSize(1); // 最初のページのサイズを取得
float width = psize.getHeight();
float height = psize.getWidth();
document = new Document(new Rectangle(height, width));
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("異動届出書(清算結了).pdf"));
document.open();PdfContentByte over = writer.getDirectContent();
bf = BaseFont.createFont("HeiseiKakuGo-W5","UniJIS-UCS2-HW-H",false);
for(int i=1;i<=4;i++) {
document.newPage();
PdfImportedPage page1 = null;
if(i == 1) {
page1 = writer.getImportedPage(reader, 1);
}
else if(i == 2) {
page1 = writer.getImportedPage(reader, 2);
}
else if(i == 3) {
page1 = writer.getImportedPage(reader, 4);
}
else if(i == 4) {
page1 = writer.getImportedPage(reader, 4);
}over.addTemplate( page1, 1, 0, 0, 1, 0, 0);
over.beginText();
over.setFontAndSize(bf, 10);
over.setTextMatrix(121, 712);
over.showText("22 02 01");switch(i) {
case 1:
over.setFontAndSize(bf, 10);
over.setTextMatrix(97, 678);
over.showText("王子");
break;
case 2:
over.setFontAndSize(bf, 10);
over.setTextMatrix(92, 680);
over.showText("荒川");
break;
case 3:
over.setFontAndSize(bf, 10);
over.setTextMatrix(92, 693);
over.showText("王子");
break;
case 4:
over.setFontAndSize(bf, 10);
over.setTextMatrix(92, 677);
over.showText("荒川");
break;
}
over.setFontAndSize(bf, 10);
over.setTextMatrix(208, 730);
over.showText("レ");over.setFontAndSize(bf, 8);
over.setTextMatrix(360, 770);
over.showText("ユウゲンガイシャXXXXXX");
over.setFontAndSize(bf, 10);
over.setTextMatrix(360, 753);
over.showText("有限会社XXXXXXX");
over.setFontAndSize(bf, 8);
over.setTextMatrix(360, 738);
over.showText("トウキョウトXXXXXXXX");over.setFontAndSize(bf, 8);
over.setTextMatrix(360, 729);
over.showText("999-9999");
over.setFontAndSize(bf, 10);
over.setTextMatrix(360, 718);
over.showText("東京都XXXXXXXXXXXXXX");
over.setFontAndSize(bf, 8);
over.setTextMatrix(385, 708);
over.showText("03 9999 9999");over.setFontAndSize(bf, 8);
over.setTextMatrix(360, 697);
over.showText("999-9999");
over.setFontAndSize(bf, 10);
over.setTextMatrix(360, 686);
over.showText("東京都XXXXXXXXXX");
over.setFontAndSize(bf, 8);
over.setTextMatrix(385, 676);
over.showText("99 9999 9999");over.setFontAndSize(bf, 8);
over.setTextMatrix(360, 665);
over.showText("ニッポン タロウ");
over.setFontAndSize(bf, 10);
over.setTextMatrix(360, 648);
over.showText("日本 太郎");if(i != 2) {
over.setFontAndSize(bf, 8);
over.setTextMatrix(360, 633);
over.showText("999-9999");
over.setFontAndSize(bf, 10);
over.setTextMatrix(360, 622);
over.showText("東京都XXXXXXXXXXXXXX");
over.setFontAndSize(bf, 8);
over.setTextMatrix(385, 612);
over.showText("03 9999 9999");
}over.setFontAndSize(bf, 7);
over.setTextMatrix(145, 555);
over.showText("コンピュータソフト開発");
over.setFontAndSize(bf, 10);
over.setTextMatrix(160, 525);
over.showText("3,000,000");
over.setFontAndSize(bf, 10);
over.setTextMatrix(160, 495);
over.showText("3,000,000");over.setFontAndSize(bf, 10);
over.setTextMatrix(340, 554);
over.showText("04 01 03 31");
over.setFontAndSize(bf, 10);
over.setTextMatrix(350, 488);
over.showText("1");over.setFontAndSize(bf, 10);
over.setTextMatrix(500, 488);
over.showText("1");over.setFontAndSize(bf, 10);
over.setTextMatrix(63, 335);
over.showText("残余財産確定");over.setFontAndSize(bf, 8);
over.setTextMatrix(463, 339);
over.showText("平22 01 31");over.setFontAndSize(bf, 10);
over.setTextMatrix(63, 315);
over.showText("清算結了");
over.setFontAndSize(bf, 8);
over.setTextMatrix(463, 315);
over.showText("平22 ・02 ・01");
over.setFontAndSize(bf, 8);
over.setTextMatrix(460, 300);
over.showText("(平22 ・02 ・01)");
over.endText();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} finally {
if(document != null) {
document.close();
}
}
}
}