diff --git a/award.php b/award.php index a30fd2f..062ee5c 100644 --- a/award.php +++ b/award.php @@ -15,14 +15,15 @@ use PhpOffice\PhpPresentation\Shape\Drawing; use PhpOffice\PhpPresentation\Style\Border; +$year = date('Y'); //新規プレゼンテーション作成 $phpPres = new PhpPresentation(); //ドキュメントのプロパティ設定 $phpPres->getDocumentProperties() ->setCreator('@IPSJ') ->setCompany('一般社団法人情報処理学会') - ->setTitle('インタラクション2023表彰状') - ->setDescription('インタラクション2023表彰状'); + ->setTitle("インタラクション{$year}表彰状") + ->setDescription("インタラクション{$year}表彰状"); // 印刷用(A4)なら1、16x9なら2を選択 echo "印刷用(A4)なら 1 、クロージング用(16x9)なら 2 を入力してください。\n"; @@ -71,9 +72,9 @@ $img->setName('Image File') ->setDescription('Image File') ->setPath('template1.jpg') - ->setHeight($height + round($hamidasi*2*1.4)) + ->setHeight($height + round($hamidasi * 2 * 1.4)) ->setOffsetX(($width - $a4width) / 2 - $hamidasi) - ->setOffsetY(round(-$hamidasi*1.4)); + ->setOffsetY(round(-$hamidasi * 1.4)); $img->getBorder()->setColor(new Color('FFffffff'))->setDashStyle(Border::DASH_SOLID)->setLineStyle(Border::LINE_SINGLE); $oMasterSlide->addShape($img); // 紙のまわりの枠線(画像の縁よりも、すこし内側に表示する) @@ -87,9 +88,9 @@ // $img の左ボーダーが消えないので、白い矩形を置く $kesi = $oMasterSlide->createRichTextShape() - ->setHeight($height + $hamidasi*2) + ->setHeight($height + $hamidasi * 2) ->setWidth(20) - ->setOffsetX(($width - $a4width) / 2 - $hamidasi -10) + ->setOffsetX(($width - $a4width) / 2 - $hamidasi - 10) ->setOffsetY(-$hamidasi); $kesi->getFill()->setFillType(Fill::FILL_SOLID)->setRotation(90)->setStartColor(new Color('FFffffff'))->setEndColor(new Color('FFffffff')); // $kesi->getBorder()->setColor(new Color('FFffffff'))->setDashStyle(Border::DASH_SOLID)->setLineStyle(Border::LINE_SINGLE); @@ -104,29 +105,96 @@ /////////////////////////////////////////////////////////// -// 投稿システムからの読み込み(採択分のみ) -// https://confman.interaction-ipsj.org/awards/json_booth_title_author +// 差し込み +$baseary["year"] = $year; +$baseary["date"] = "令和7年3月2日"; -define("YEAR",2023); -define("AWARDNAME","インタラクティブ発表賞(PC推薦)"); -define("DATE","令和5年3月10日"); +$baseary["awardname"] = "優秀論文賞"; +$baseary["eventname"] = "インタラクション{$baseary['year']}"; +$baseary["content"] = "貴殿が情報処理学会{$baseary['eventname']}にて発表された「[:TITLE:]」" . + "は特に優秀な論文であり論文賞を授与するにふさわしいものであると認めます。\r\nよってここに表彰いたします。"; +$baseary["presenter"] = $baseary["date"] . "\r\n" . + "一般社団法人 情報処理学会\r\n" . + "インタラクション{$year}"."\r\n" . + "大会委員長 三武 裕玄\r\n" . + "プログラム委員長 伊藤 雄一\r\n" . + "インタラクティブ発表委員長 橋本 直 "; -$url = "https://confman.interaction-ipsj.org/awards/json_booth_title_author"; +/** + * TODO: 毎年変わるダウンロードキーをURL末尾に設定してください。 + */ +$url = "https://confmanex.interaction-ipsj.org/awards/json_booth_title_author/xxxxxx"; +if (strpos($url, "xxxxxx") > 0) { + echo "ダウンロードキーを入力してください。(またはaward.php 126行目付近で設定)\n"; + $type = trim(fgets(STDIN)); + echo "「{$type}」が入力されました。\n"; + $url = str_replace("xxxxxx", $type, $url); + sleep(1); +} $json = file_get_contents($url); $obj = json_decode($json, true); -// var_dump($obj); // 確認表示 -// 全部出力する場合 -// foreach($obj as $booth=>$ary){ +// var_dump($obj); // JSON内容を確認するとき +$awards = [ + "優秀論文賞" => "貴殿が情報処理学会{$baseary['eventname']}にて発表された「[:TITLE:]」" . + "は本シンポジウムプログラム委員会にて厳正な審査を行った結果新たなインタラクション研究の方向性を示すものであり" . + "今後の情報処理分野の発展に寄与する優秀な発表として認められました\r\nよってここに表彰いたします", + "インタラクティブ発表賞(PC推薦)" => "貴殿が本学会シンポジウム インタラクション{$year}において発表された" . + "「[:TITLE:]」" . + "は本シンポジウムプログラム委員会にて厳正な審査を行った結果新たなインタラクション研究の方向性を示すものであり" . + "今後の情報処理分野の発展に寄与する優秀な発表として認められました\r\nよってここに表彰いたします", +]; +/** + * TODO: ここで、受賞者の論文のブース、発表番号を 半角スペース区切り で入れてください。 + * 空文字列にすると、すべての論文を出力します。 + */ +$winners = [ + "優秀論文賞" => "01 03 05", //"1-1 1-2", + "インタラクティブ発表賞(PC推薦)" => "1A01 2A01", // "1A01 2A01", //"1-3", +]; + +foreach ($awards as $award => $body) { + $baseary["awardname"] = $award; // 〜〜賞 + $baseary["content"] = str_replace("hoge", "[:TITLE:]", $body); // 貴殿が... (hogeを[:TITLE:]に差し替える) + $booth_list = $winners[$award]; + if (strlen($booth_list) > 1) { + $booth_list_ary = explode(" ", trim($booth_list)); + foreach ($booth_list_ary as $b) { + $ary = $obj[$b]; + $ary = array_merge($ary, $baseary); + addHSJ($phpPres, $ary); + } + } else { + // 全部出力する場合 + foreach ($obj as $booth => $ary) { + $ary = array_merge($ary, $baseary); + addHSJ($phpPres, $ary); + } + } + echo $award . " を出力しました。\n"; +} + +$phpPres->removeSlideByIndex(0); // 最初のスライドを削除する + +// define("YEAR",2025); +// define("AWARDNAME",); +// define("DATE",); + +// $json = file_get_contents($url); +// $obj = json_decode($json, true); +// // var_dump($obj); // 確認表示 + +// // 全部出力する場合 +// // foreach($obj as $booth=>$ary){ +// // addHSJ($phpPres, $ary); +// // } +// // 一部の【ブース番号】(not paper id)だけを出力する場合 半角スペース区切り +// $booth_list = "1 2 3 4 5 "; +// $booth_list_ary = explode(" ", trim($booth_list)); +// foreach ($booth_list_ary as $b) { +// $ary = $obj[$b]; // addHSJ($phpPres, $ary); // } -// 一部の【ブース番号】(not paper id)だけを出力する場合 半角スペース区切り -$booth_list = "1 2 3 4 5 "; -$booth_list_ary = explode(" ", trim($booth_list)); -foreach($booth_list_ary as $b){ - $ary = $obj[$b]; - addHSJ($phpPres, $ary); -} // $ary = [ // "title" => "PHPPresentationを利用した表彰状の作成", @@ -135,7 +203,7 @@ // addHSJ($phpPres, $ary); -$phpPres->removeSlideByIndex(0); // 最初のスライドを削除する +// $phpPres->removeSlideByIndex(0); // 最初のスライドを削除する $oWriterPPTX = IOFactory::createWriter($phpPres, 'PowerPoint2007'); diff --git a/lib_16x9.php b/lib_16x9.php index e9c2c8a..b28725b 100644 --- a/lib_16x9.php +++ b/lib_16x9.php @@ -62,12 +62,12 @@ $pres->setActiveSlideIndex($pres->getSlideCount() - 1); $slide = $pres->getActiveSlide(); - $w600 = (int)(382*600/794); - $w576 = (int)(382*576/794); - $w520 = (int)(382*520/794); + $w600 = (int)(382 * 600 / 794); + $w576 = (int)(382 * 576 / 794); + $w520 = (int)(382 * 520 / 794); - addRTShape($pres, $slide, $w600, 12, "インタラクション".YEAR, 11); - addRTShape($pres, $slide, $w600, 17, AWARDNAME, 12); + addRTShape($pres, $slide, $w600, 12, $ary["eventname"], 11); + addRTShape($pres, $slide, $w600, 17, $ary["awardname"], 12); $authors = ""; //著者名 $aindex = 0; @@ -86,20 +86,15 @@ // echo "additional " . $additionalline . "\n"; } addRTShape($pres, $slide, $w600, 22 + $additionalline * 0.5, $authors, 10, Alignment::HORIZONTAL_CENTER, Alignment::VERTICAL_CENTER); - addRTShape($pres, $slide, $w576, 34 + $additionalline * 2, "貴殿が本学会シンポジウム インタラクション".YEAR."において発表された" . - "「{$ary['title']}」" . - "は本シンポジウムプログラム委員会にて厳正な審査を行った結果新たなインタラクション研究の方向性を示すものであり" . - "今後の情報処理分野の発展に寄与する優秀な発表として認められました\r\nよってここに表彰いたします", 9, Alignment::HORIZONTAL_GENERAL); - // タイトルの長さによって、すこし下げる - $title_additionalline = (mb_strlen($ary['title'])/20) ; + $ary["content"] = str_replace("[:TITLE:]", $ary["title"], $ary["content"]); - addRTShape($pres, $slide, $w520, 65 + $additionalline + $title_additionalline*1.7, DATE."\r\n" . - "一般社団法人 情報処理学会\r\n" . - "インタラクション".YEAR."\r\n" . - "大会委員長 寺田 努 \r\n" . - "プログラム委員長 竹川 佳成\r\n" . - "インタラクティブ発表委員長 生田 泰章\r\n", 9, Alignment::HORIZONTAL_RIGHT); + addRTShape($pres, $slide, $w576, 34 + $additionalline * 2, $ary["content"], 9, Alignment::HORIZONTAL_GENERAL); + + // タイトルの長さによって、すこし下げる + $title_additionalline = (mb_strlen($ary['title']) / 20); + + addRTShape($pres, $slide, $w520, 65 + $additionalline + $title_additionalline * 1.7, $ary['presenter'], 9, Alignment::HORIZONTAL_RIGHT); return $slide; //あとで使うことがなければ、必要ない } diff --git a/lib_a4.php b/lib_a4.php index cbfe8d1..c5549e0 100644 --- a/lib_a4.php +++ b/lib_a4.php @@ -62,8 +62,8 @@ $pres->setActiveSlideIndex($pres->getSlideCount() - 1); $slide = $pres->getActiveSlide(); - addRTShape($pres, $slide, 600, 15, "インタラクション".YEAR, 23); - addRTShape($pres, $slide, 600, 20, AWARDNAME, 26); + addRTShape($pres, $slide, 600, 15, $ary["eventname"], 23); + addRTShape($pres, $slide, 600, 20, $ary["awardname"], 26); $authors = ""; //著者名 $aindex = 0; @@ -82,17 +82,26 @@ // echo "additional " . $additionalline . "\n"; } addRTShape($pres, $slide, 600, 18.5 + $additionalline * 1.2, $authors, 24, Alignment::HORIZONTAL_CENTER, Alignment::VERTICAL_CENTER); - addRTShape($pres, $slide, 576, 36.5 + $additionalline * 2, "貴殿が本学会シンポジウム インタラクション".YEAR."において発表された" . - "「{$ary['title']}」" . - "は本シンポジウムプログラム委員会にて厳正な審査を行った結果新たなインタラクション研究の方向性を示すものであり" . - "今後の情報処理分野の発展に寄与する優秀な発表として認められました\r\nよってここに表彰いたします", 18, Alignment::HORIZONTAL_GENERAL); - addRTShape($pres, $slide, 520, 67 + $additionalline, DATE."\r\n" . - "一般社団法人 情報処理学会\r\n" . - "インタラクション".YEAR."\r\n" . - "大会委員長 寺田 努 \r\n" . - "プログラム委員長 竹川 佳成\r\n" . - "インタラクティブ発表委員長 生田 泰章\r\n", 18, Alignment::HORIZONTAL_RIGHT); + $ary["content"] = str_replace("[:TITLE:]", $ary["title"], $ary["content"]); + addRTShape($pres, $slide, 576, 36.5 + $additionalline * 2, $ary["content"], 18, Alignment::HORIZONTAL_GENERAL); + + addRTShape( + $pres, + $slide, + 520, + 67 + $additionalline, + $ary['presenter'], + 18, + Alignment::HORIZONTAL_RIGHT + ); + + // DATE."\r\n" . + // "一般社団法人 情報処理学会\r\n" . + // "インタラクション".YEAR."\r\n" . + // "大会委員長 寺田 努 \r\n" . + // "プログラム委員長 竹川 佳成\r\n" . + // "インタラクティブ発表委員長 生田 泰章\r\n", return $slide; //あとで使うことがなければ、必要ない }