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 InputPassword { 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, "InputPassword.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"); //***** ユーザパスワードの設定(ファイルオープン時のパスワード) *****// permission.setUserPassword("openPassword"); try { //***** セキュリティ設定(印刷許可) *****// permission.enable(UserAccessPermission.HIGHEST_QUARITY_LEVEL_PRINTING); 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(); } } }