import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import wkc.pdf.PdfException;
import wkc.pdf.tool.Report;
import wkc.pdf.tool.ReportException;
import wkc.pdf.tool.StandardReportConfig;
import wkc.pdf.tool.Quadding;
import wkc.pdf.tool.Field;
import wkc.pdf.PdfGrayColor;
import wkc.pdf.PdfImage;
import wkc.pdf.Info;
import wkc.pdf.UserAccessPermission;
public class ViewOnly {
private static File FORM_DIRECTORY_ROOT = new File("../resources/form");
private static File OUTPUT_DIRECTORY_ROOT = new File(".");
public static void main(String[] args) throws IOException, ReportException, PdfException {
File outPdfFile = new File(OUTPUT_DIRECTORY_ROOT, "ViewOnly.pdf");
File formFile = new File(FORM_DIRECTORY_ROOT, "template2.pdf");
File datFile = new File(FORM_DIRECTORY_ROOT, "template2.dat");
FileOutputStream fout = new FileOutputStream(outPdfFile);
StandardReportConfig conf = StandardReportConfig.getDefault();
conf.setDefaultFontSize(10);
//***** セキュリティ設定 *****//
UserAccessPermission permission = new UserAccessPermission();
//***** 権限パスワードの設定 *****//
permission.setOwnerPassword("testPassword");
try {
//***** セキュリティ設定時のReportコンストラクタ *****//
Report report = new Report(formFile, datFile, fout, permission);
//お客様情報
String customerAdrs = "〒111-0051\n東京都台東区蔵前2-17-3\nJFE江戸川ビル";
String customerCName ="JFEエンターテイメント株式会社";
String customerBusyo1 = "企画部";
String customerName = "部長 渡\ue000 健二様";
//KSI情報
String ksiAdrs = "〒136-8582\n東京都江東区南砂2丁目36-11";
String ksiName = "川鉄情報システム株式会社";
String ksiBusyo1 = "システムインテグレーション事業部";
String ksiBusyo2 = "Web・オブジェクト指向事業推進部 営業Gr";
String ksiPhone = "TEL03 (5665) 6318 FAX 03 (5665) 6389";
//請求年月日
String xYMD = "2004年 6月 5日";
//お客様企業名
String ccName = "JFEエンターテイメント株式会社";
//内訳1
Object[][] uchiwake = new Object[5][5];
uchiwake[0][0] = "2003年度ネットワーク保守(第1四半期分)";
uchiwake[0][1] = new Integer(1260000);
//振込先
String furikomi = "お支払い期限 2004年07月01日\nお振込先 みずは銀行 本店 当座貯金No.00010**\n 口座名義 カワテツジョウホウシステム(カブ)";
report.createPage(1);
//会社ロゴ
//かならずページを作成してから画像オブジェクトを作る。
PdfImage rogo = report.createImage(new File("../chapter2/resources/rogo.png"));
report.putFieldData("xInfoAdrs", customerAdrs);
report.putFieldData("xInfoCName", customerCName);
report.putFieldData("xInfoBusyo.1", customerBusyo1);
Field xInfoName_phone = report.getField("xInfoName_phone");
xInfoName_phone.setIsEmbeddedFont(true);
report.putFieldData(xInfoName_phone, customerName);
report.putFieldData("xOnchu", (String)null);
report.putFieldData("xYMD", xYMD);
report.putFieldData("xNo.0", (String)null);
report.putFieldData("xNo.1", "03J90005");
report.putFieldData("xTitle", "請求書");
report.putFieldData("xCComName", ccName);
report.putFieldData("xCode.0", (String)null);
report.putFieldData("xCode.1", "5129");
report.putFieldData("xRogo", rogo);
report.putFieldData("xInfoRightAdrs", ksiAdrs);
report.putFieldData("xInfoRightBusyo.1", ksiBusyo1);
report.putFieldData("xInfoRightBusyo.2", ksiBusyo2);
report.putFieldData("xInfoRightName_phone", ksiPhone);
report.putFieldData("xAmountMes", (String)null);
report.putFieldData("xBox.0", " ");
report.putFieldData("xBox.1", " ");
report.putFieldData("xBox.2", " ");
report.putFieldData("xBox.3", " ");
report.putFieldData("xNonyusaki", ccName + "殿");
report.putFieldData("xGochumonNo", "*");
report.putFieldData("xToshaJyuchuNo", "J90C010");
report.putFieldData("xHanbaijissekiNo", "001");
report.putFieldData("xUchiwake.0", (String) uchiwake[0][0]);
report.putFieldData("xYen.0", (Integer) uchiwake[0][1]);
int xTax = (int) (((Integer) uchiwake[0][1]).intValue() * 0.05);
int xAmount0 = ((Integer) uchiwake[0][1]).intValue() + xTax;
report.putFieldData("xTax", new Integer(xTax));
report.putFieldData("xAmount.0", new Integer(xAmount0));
report.putFieldData("xAmount1", new Integer(xAmount0));
report.putFieldData("xFree", "特記事項なし");
report.putFieldData("xFurikomisaki", furikomi);
//二ページ目(検収通知書兼作業完了確認書)
report.createPage(1);
report.putFieldData("xInfoAdrs", ksiAdrs);
report.putFieldData("xInfoCName", ksiName);
report.putFieldData("xInfoBusyo.1", ksiBusyo1);
report.putFieldData("xInfoBusyo.2", ksiBusyo2);
report.putFieldData("xInfoName_phone", ksiPhone);
report.putFieldData("xYMD", xYMD);
report.putFieldData("xTitle", "検収通知書兼作業完了確認書");
report.putFieldData("xKensyuYMDMes", (String)null);
report.putFieldData("xKensyuYMD.0", (String)null);
report.putFieldData("xKensyuinMes",(String)null );
report.putFieldData("xKensyuin", (String)null);
report.putFieldData("xInfoRightAdrs", customerAdrs);
report.putFieldData("xInfoRightCName", customerCName);
report.putFieldData("xInfoRightBusyo.1", customerBusyo1);
Field xInfoRightName_phone = report.getField("xInfoRightName_phone");
xInfoRightName_phone.setIsEmbeddedFont(true);
report.putFieldData(xInfoRightName_phone, customerName);
report.putFieldData("xNonyusaki", ccName + "殿");
report.putFieldData("xGochumonNo", "*");
report.putFieldData("xToshaJyuchuNo", "J90C010");
report.putFieldData("xHanbaijissekiNo", "001");
report.putFieldData("xUchiwake.0", (String) uchiwake[0][0]);
report.putFieldData("xYen.0", (Integer) uchiwake[0][1]);
report.putFieldData("xTax", new Integer(xTax));
report.putFieldData("xAmount1", new Integer(xAmount0));
report.putFieldData("xFree", "特記事項なし");
//三ページ目(納品書兼作業完了報告書)
report.createPage(1);
report.putFieldData("xInfoAdrs", customerAdrs);
report.putFieldData("xInfoCName", customerCName);
report.putFieldData("xInfoBusyo.1", customerBusyo1);
report.putFieldData(xInfoName_phone, customerName);
report.putFieldData("xOnchu", (String)null);
report.putFieldData("xYMD", xYMD);
report.putFieldData("xNo.0", (String)null);
report.putFieldData("xNo.1", "03J90005");
report.putFieldData("xTitle", "納品書兼作業完了報告書");
report.putFieldData("xCComName", ccName);
report.putFieldData("xCode.0", (String)null);
report.putFieldData("xCode.1", "5129");
report.putFieldData("xRogo", rogo);
report.putFieldData("xInfoRightAdrs", ksiAdrs);
report.putFieldData("xInfoRightBusyo.1", ksiBusyo1);
report.putFieldData("xInfoRightBusyo.2", ksiBusyo2);
report.putFieldData("xInfoRightName_phone", ksiPhone);
Field xMessage = report.getField("xMessage");
xMessage.setQuadding(Quadding.LEFT_BOTTOM);
report.putFieldData(xMessage, "下記のとおり納品・作業完了報告いたします。\n御査収の上検収通知書兼作業完了確認書を\nご返送くださいますようお願い申し上げます。");
report.putFieldData("xBox.0", " ");
report.putFieldData("xBox.1", " ");
report.putFieldData("xBox.2", " ");
report.putFieldData("xBox.3", " ");
report.putFieldData("xNonyusaki", ccName + "殿");
report.putFieldData("xGochumonNo", "*");
report.putFieldData("xToshaJyuchuNo", "J90C010");
report.putFieldData("xHanbaijissekiNo", "001");
report.putFieldData("xUchiwake.0", (String) uchiwake[0][0]);
report.putFieldData("xYen.0", (Integer) uchiwake[0][1]);
report.putFieldData("xTax", new Integer(xTax));
report.putFieldData("xAmount1", new Integer(xAmount0));
report.putFieldData("xFree", "特記事項なし");
//***********文書情報の設定*************************
Info info = report.getDocument().getInfo();
info.setAuthor("川鉄情報システム Web/OO部 川鉄太郎");
info.setTitle("請求書");
info.setCreator("請求書生成システム");
info.setkeywords("請求書No.03J90005");
info.setSubject("検収通知書兼作業完了確認書/納品書兼作業完了報告書");
info.setCreationDate(Calendar.getInstance());
info.setModDate(Calendar.getInstance());
report.close();
} finally {
fout.close();
}
}
}