Slide 1

Slide 1 text

ΧελϜϑΟʔϧυͷσʔλΛ දܗࣜͰ1%'ʹॻ͖ग़͢ํ๏

Slide 2

Slide 2 text

URL https:/ /suzulabo.com MAIL [email protected] OHTA KONATSU WEB CREATOR & FRONT END ENGINEER / a-blog cms 3

Slide 3

Slide 3 text

͓͸ͳ͢͠Δ͜ͱ wࣄྫ঺հ wQEGNBLFKTͱ͸ wBCMPHDNTͰQEGNBLFKTΛ࢖͏ʹ͸ w·ͱΊ

Slide 4

Slide 4 text

ࣄྫ঺հ

Slide 5

Slide 5 text

ࣄྫ঺հ NPO a-blog cms A B Z 
 


Slide 6

Slide 6 text

PDF ࣄྫ঺հ ͕୲౰ͨ͜͠ͱ ࢲ

Slide 7

Slide 7 text

PDF 
 PDF 2 ࣄྫ঺հ ػೳཁ݅

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

団体情報ガイドブック確認票 登録番号:29 グループ名 さんぷるぐるーぷ サンプルグループ 所管施設 市民活動分野 生涯学習分野 教育、キャリアアップ、レクリエーション、その他(あそび・ス ポーツ) ふりがな やまだ たろう ふりがな やまだ たろう 代表者名 (ガイドブックへの情報公開 可) 山田 太郎 連絡先窓口担当者 (ガイドブックへの情報公開 可) 山田 太郎 連絡先 [事務所] 電話  :000-000-0000 (ガイドブックへの情報公開 可) 携帯電話:000-0000-0000 (ガイドブックへの情報公開 不可) FAX  :000-000-0000 (ガイドブックへの情報公開 不可) メールアドレス:[email protected] (ガイドブックへの情報公開 可) 連絡先住所 [代表者] (ガイドブックへの情報公開 不可) 〒 460-0000 愛知県名古屋市中区 活動開始年 会員数 10人 活動日時 毎月第2土曜日 12:00から 活動場所 ベースキャンプ名古屋 会費・入会金 2,000円 活動内容 Webサイト制作の基礎を学べる子ども向けのイベントを開催しています。 代表者・会員のコメントなど サイト制作の楽しさをたくさんの子に知ってもらえるよう活動してまいります。 ホームページアドレス https://example.com 所属団体 WEBで情報公開 公開可 登録番号:29 グループ名 さんぷるぐるーぷ サンプルグループ 所管施設 市民活動分野 生涯学習分野 教育、キャリアアップ、レクリエーション、その他(あそび・ス ポーツ) 活動開始年 会員数 10人 活動日時 毎月第2土曜日 12:00から 活動場所 ベースキャンプ名古屋 会費・入会金 2,000円 活動内容 Webサイト制作の基礎を学べる子ども向けのイベントを開催しています。 代表者・会員のコメントなど サイト制作の楽しさをたくさんの子に知ってもらえるよう活動してまいります。 ホームページアドレス https://example.com 所属団体 代表者名 ふりがな やまだ たろう 山田 太郎 連絡先窓口担当者 ふりがな やまだ たろう 山田 太郎 連絡先 [事務所] 電話  :000-000-0000 携帯電話: FAX  : メールアドレス:[email protected] 連絡先住所 [代表者] 〒 ֬ೝ༻ҹ࡮ ΨΠυϒοΫ

Slide 11

Slide 11 text

pdfmake.js (http://pdfmake.org/)

Slide 12

Slide 12 text

QEGNBLFKTͱ͸

Slide 13

Slide 13 text

/ PDF QEGNBLFKTͱ͸

Slide 14

Slide 14 text

QEGNBLFKTͱ͸ JavaScript QEGNBLFͷ͍͍ͱ͜Ζᶃ const docDefinition = { content: [{ table: { body : [ ['⾒出し', '⾒出し', '⾒出し'], [{text: '⽂章', bold: true}, '⽂章', '⽂章'] ] } }] }; pdfMake.createPDF(docDefinition).open();

Slide 15

Slide 15 text

QEGNBLFKTͱ͸ (table) (columns) QEGNBLFͷ͍͍ͱ͜Ζᶄ const docDefinition = { content: [{ table: { widths: ['*', 'auto', 100], body : [ ['⽂章', '⽂章', ‘⽂章'] ] } }] }; pdfMake.createPDF(docDefinition).open();

Slide 16

Slide 16 text

QEGNBLFKTͱ͸ rowSpan, colSpan QEGNBLFͷ͍͍ͱ͜Ζᶅ const docDefinition = { content: [{ table: { widths: [100, 100, 100], body : [ [{text:'⽂章', rowSpan: 2}, '⽂章', '⽂章'], ['', {text:'⽂章', colSpan: 2}, ''] ] } }] }; pdfMake.createPDF(docDefinition).open();

Slide 17

Slide 17 text

QEGNBLFKTͱ͸ QEGNBLFͷ͍͍ͱ͜Ζᶆ const docDefinition = { content: [{ table: { widths: [100, 100, 100], body : [ [{text:'⽂章', style: ['sample']}, '⽂章', '⽂章'], ] } }], defaultStyle: {fontSize: 20}, styles: { sample: {color: 'red'} } }; pdfMake.createPDF(docDefinition).open();

Slide 18

Slide 18 text

QEGNBLFKTͱ͸ ͪΐͬͱ࢒೦ͳͱ͜Ζᶃ ‣ playground

Slide 19

Slide 19 text

QEGNBLFKTͱ͸ padding border ( ) ͪΐͬͱ࢒೦ͳͱ͜Ζᶄ layout: { paddingLeft: function (i) { return 8; }, paddingRight: function (i) { return 8; }, paddingTop: function (i) { return 8; }, paddingBottom: function (i) { return 8; }, hLineWidth: function (i) { return 2; }, vLineStyle: function (i) { return {dash: {length: 4, space: 3}}; }, },

Slide 20

Slide 20 text

QEGNBLFKTͱ͸ ͪΐͬͱ࢒೦ͳͱ͜Ζᶅ Roboto ‣ VFS ‣ gulp, php, 3 ‣ VFS 


Slide 21

Slide 21 text

vfs_fonts.js - base

Slide 22

Slide 22 text

QEGNBLFKTͱ͸ base ͪΐͬͱ࢒೦ͳͱ͜Ζᶆ ‣ VFS 
 OK ‣ 
 a-blog cms content: [{ image: 'data:image/jpeg;base64,...encodedContent...', }]

Slide 23

Slide 23 text

BCMPHDNTͰ QEGNBLFΛ࢖͏ʹ͸

Slide 24

Slide 24 text

BCMPHDNTͰQEGNBLFΛ࢖͏ʹ͸ pdfMake.fonts = { Aozora: { normal: 'AozoraMinchoRegular.ttf', bold: 'AozoraMinchoMedium.ttf' } }; const docDefinition = { content: [{ table: { // ⽣成するテーブルの内容 } }], defaultStyle: { font: 'Aozora' } }; pdfMake.createPDF(docDefinition).download(); 
 VFS

Slide 25

Slide 25 text

BCMPHDNTͰQEGNBLFΛ࢖͏ʹ͸ a-blog cms script 


Slide 26

Slide 26 text

BCMPHDNTͰQEGNBLFΛ࢖͏ʹ͸ pdfMake.fonts = { Aozora: { normal: 'AozoraMinchoRegular.ttf', bold: 'AozoraMinchoMedium.ttf' } }; const docDefinition = { content: [{ table: { // ⽣成するテーブルの内容 } }], defaultStyle: { font: 'Aozora' } }; pdfMake.createPDF(docDefinition).download();

Slide 27

Slide 27 text

pdfmake JS 
 ... BCMPHDNTͰQEGNBLFΛ࢖͏ʹ͸ content: [{ table: { body : [ [{text: '{hoge}', rowSpan: 2}, '{fuga}'], ['', {text: '{piyo}', bold: true}] ] } }] ???

Slide 28

Slide 28 text

BCMPHDNTͰQEGNBLFΛ࢖͏ʹ͸ content: [{ table: { body : [ [\{text: '{hoge}', rowSpan: 2\}, '{fuga}'], ['', \{text: '{piyo}', bold: true\}] ] } }]

Slide 29

Slide 29 text

BCMPHDNTͰQEGNBLFΛ࢖͏ʹ͸ pdfMake.createPDF(docDefinition).download("{title}_guide.pdf");

Slide 30

Slide 30 text

·ͱΊ ͍͍εΫϦϓτΛ͔ͭͬͯɺ
 BCMPHDNTΛ΋ͬͱָ͘͠ศརʹʂ

Slide 31

Slide 31 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ