├── .gitignore ├── AozoraEpub3.ico ├── LICENSE.txt ├── README.md ├── README_Changes.txt ├── chuki_alt.txt ├── chuki_ivs.txt ├── chuki_latin.txt ├── chuki_tag.txt ├── chuki_tag_suf.txt ├── chuki_utf.txt ├── gaiji ├── README.txt ├── convert.pe └── dakuten │ ├── u303b-u3099.ttf │ ├── u3041-u3099.ttf │ ├── u3041-u309a.ttf │ ├── u3042-u3099.ttf │ ├── u3042-u309a.ttf │ ├── u3043-u3099.ttf │ ├── u3043-u309a.ttf │ ├── u3044-u3099.ttf │ ├── u3044-u309a.ttf │ ├── u3045-u3099.ttf │ ├── u3045-u309a.ttf │ ├── u3046-u309a.ttf │ ├── u3047-u3099.ttf │ ├── u3047-u309a.ttf │ ├── u3048-u3099.ttf │ ├── u3048-u309a.ttf │ ├── u3049-u3099.ttf │ ├── u3049-u309a.ttf │ ├── u304a-u3099.ttf │ ├── u304a-u309a.ttf │ ├── u304b-u309a.ttf │ ├── u304d-u309a.ttf │ ├── u304f-u309a.ttf │ ├── u3051-u309a.ttf │ ├── u3053-u309a.ttf │ ├── u3055-u309a.ttf │ ├── u3057-u309a.ttf │ ├── u3059-u309a.ttf │ ├── u305b-u309a.ttf │ ├── u305d-u309a.ttf │ ├── u305f-u309a.ttf │ ├── u3061-u309a.ttf │ ├── u3063-u3099.ttf │ ├── u3063-u309a.ttf │ ├── u3064-u309a.ttf │ ├── u3066-u309a.ttf │ ├── u3068-u309a.ttf │ ├── u306a-u3099.ttf │ ├── u306a-u309a.ttf │ ├── u306b-u3099.ttf │ ├── u306b-u309a.ttf │ ├── u306c-u3099.ttf │ ├── u306c-u309a.ttf │ ├── u306d-u3099.ttf │ ├── u306d-u309a.ttf │ ├── u306e-u3099.ttf │ ├── u306e-u309a.ttf │ ├── u307e-u3099.ttf │ ├── u307e-u309a.ttf │ ├── u307f-u3099.ttf │ ├── u307f-u309a.ttf │ ├── u3080-u3099.ttf │ ├── u3080-u309a.ttf │ ├── u3081-u3099.ttf │ ├── u3081-u309a.ttf │ ├── u3082-u3099.ttf │ ├── u3082-u309a.ttf │ ├── u3083-u3099.ttf │ ├── u3083-u309a.ttf │ ├── u3084-u3099.ttf │ ├── u3084-u309a.ttf │ ├── u3085-u3099.ttf │ ├── u3085-u309a.ttf │ ├── u3086-u3099.ttf │ ├── u3086-u309a.ttf │ ├── u3087-u3099.ttf │ ├── u3087-u309a.ttf │ ├── u3088-u3099.ttf │ ├── u3088-u309a.ttf │ ├── u3089-u3099.ttf │ ├── u3089-u309a.ttf │ ├── u308a-u3099.ttf │ ├── u308a-u309a.ttf │ ├── u308b-u3099.ttf │ ├── u308b-u309a.ttf │ ├── u308c-u3099.ttf │ ├── u308c-u309a.ttf │ ├── u308d-u3099.ttf │ ├── u308d-u309a.ttf │ ├── u308e-u3099.ttf │ ├── u308e-u309a.ttf │ ├── u308f-u3099.ttf │ ├── u308f-u309a.ttf │ ├── u3090-u3099.ttf │ ├── u3090-u309a.ttf │ ├── u3091-u3099.ttf │ ├── u3091-u309a.ttf │ ├── u3092-u3099.ttf │ ├── u3092-u309a.ttf │ ├── u3093-u3099.ttf │ ├── u3093-u309a.ttf │ ├── u3095-u3099.ttf │ ├── u3095-u309a.ttf │ ├── u3096-u3099.ttf │ ├── u3096-u309a.ttf │ ├── u309d-u309a.ttf │ ├── u30a1-u3099.ttf │ ├── u30a1-u309a.ttf │ ├── u30a2-u3099.ttf │ ├── u30a2-u309a.ttf │ ├── u30a3-u3099.ttf │ ├── u30a3-u309a.ttf │ ├── u30a4-u3099.ttf │ ├── u30a4-u309a.ttf │ ├── u30a5-u3099.ttf │ ├── u30a5-u309a.ttf │ ├── u30a6-u309a.ttf │ ├── u30a7-u3099.ttf │ ├── u30a7-u309a.ttf │ ├── u30a8-u3099.ttf │ ├── u30a8-u309a.ttf │ ├── u30a9-u3099.ttf │ ├── u30a9-u309a.ttf │ ├── u30aa-u3099.ttf │ ├── u30aa-u309a.ttf │ ├── u30ab-u309a.ttf │ ├── u30ad-u309a.ttf │ ├── u30af-u309a.ttf │ ├── u30b1-u309a.ttf │ ├── u30b3-u309a.ttf │ ├── u30b5-u309a.ttf │ ├── u30b7-u309a.ttf │ ├── u30b9-u309a.ttf │ ├── u30bb-u309a.ttf │ ├── u30bd-u309a.ttf │ ├── u30bf-u309a.ttf │ ├── u30c1-u309a.ttf │ ├── u30c3-u3099.ttf │ ├── u30c3-u309a.ttf │ ├── u30c4-u309a.ttf │ ├── u30c6-u309a.ttf │ ├── u30c8-u309a.ttf │ ├── u30ca-u3099.ttf │ ├── u30ca-u309a.ttf │ ├── u30cb-u3099.ttf │ ├── u30cb-u309a.ttf │ ├── u30cc-u3099.ttf │ ├── u30cc-u309a.ttf │ ├── u30cd-u3099.ttf │ ├── u30cd-u309a.ttf │ ├── u30ce-u3099.ttf │ ├── u30ce-u309a.ttf │ ├── u30de-u3099.ttf │ ├── u30de-u309a.ttf │ ├── u30df-u3099.ttf │ ├── u30df-u309a.ttf │ ├── u30e0-u3099.ttf │ ├── u30e0-u309a.ttf │ ├── u30e1-u3099.ttf │ ├── u30e1-u309a.ttf │ ├── u30e2-u3099.ttf │ ├── u30e2-u309a.ttf │ ├── u30e3-u3099.ttf │ ├── u30e3-u309a.ttf │ ├── u30e4-u3099.ttf │ ├── u30e4-u309a.ttf │ ├── u30e5-u3099.ttf │ ├── u30e5-u309a.ttf │ ├── u30e6-u3099.ttf │ ├── u30e6-u309a.ttf │ ├── u30e7-u3099.ttf │ ├── u30e7-u309a.ttf │ ├── u30e8-u3099.ttf │ ├── u30e8-u309a.ttf │ ├── u30e9-u3099.ttf │ ├── u30e9-u309a.ttf │ ├── u30ea-u3099.ttf │ ├── u30ea-u309a.ttf │ ├── u30eb-u3099.ttf │ ├── u30eb-u309a.ttf │ ├── u30ec-u3099.ttf │ ├── u30ec-u309a.ttf │ ├── u30ed-u3099.ttf │ ├── u30ed-u309a.ttf │ ├── u30ee-u3099.ttf │ ├── u30ee-u309a.ttf │ ├── u30ef-u309a.ttf │ ├── u30f0-u309a.ttf │ ├── u30f1-u309a.ttf │ ├── u30f2-u309a.ttf │ ├── u30f3-u3099.ttf │ ├── u30f3-u309a.ttf │ ├── u30f5-u3099.ttf │ ├── u30f5-u309a.ttf │ ├── u30f6-u3099.ttf │ ├── u30f6-u309a.ttf │ ├── u30fc-u3099.ttf │ ├── u30fc-u309a.ttf │ ├── u30fd-u309a.ttf │ ├── u31f0-u3099.ttf │ ├── u31f0-u309a.ttf │ ├── u31f1-u3099.ttf │ ├── u31f1-u309a.ttf │ ├── u31f2-u3099.ttf │ ├── u31f2-u309a.ttf │ ├── u31f3-u3099.ttf │ ├── u31f3-u309a.ttf │ ├── u31f4-u3099.ttf │ ├── u31f4-u309a.ttf │ ├── u31f5-u3099.ttf │ ├── u31f5-u309a.ttf │ ├── u31f6-u3099.ttf │ ├── u31f6-u309a.ttf │ ├── u31f7-u3099.ttf │ ├── u31f7-u309a.ttf │ ├── u31f8-u3099.ttf │ ├── u31f8-u309a.ttf │ ├── u31f9-u3099.ttf │ ├── u31f9-u309a.ttf │ ├── u31fa-u3099.ttf │ ├── u31fa-u309a.ttf │ ├── u31fb-u3099.ttf │ ├── u31fb-u309a.ttf │ ├── u31fc-u3099.ttf │ ├── u31fc-u309a.ttf │ ├── u31fd-u3099.ttf │ ├── u31fd-u309a.ttf │ ├── u31fe-u3099.ttf │ ├── u31fe-u309a.ttf │ ├── u31ff-u3099.ttf │ ├── u31ff-u309a.ttf │ └── u3b9-u3099.ttf ├── gpl.txt ├── lib ├── LICENSE │ ├── commons.txt │ ├── jai.txt │ ├── jsoup.txt │ ├── junrar.txt │ └── velocity.txt ├── commons-cli-1.2.jar ├── commons-collections-3.2.1.jar ├── commons-compress-1.0.jar ├── commons-lang-2.4.jar ├── commons-logging-api-1.0.4.jar ├── jai_codec.jar ├── jai_core.jar ├── jsoup-1.7.1.jar ├── junrar-0.7.jar └── velocity-1.7.jar ├── presets ├── kindle_pw.ini ├── kobo__full.ini ├── kobo_glo.ini ├── kobo_touch.ini ├── reader.ini └── reader_t3.ini ├── replace_sample.txt ├── src ├── AozoraEpub3.java ├── AozoraEpub3Applet.java ├── META-INF │ └── MANIFEST.MF ├── com │ └── github │ │ └── hmdev │ │ ├── converter │ │ ├── AozoraEpub3Converter.java │ │ ├── AozoraGaijiConverter.java │ │ ├── GlyphConverter.java │ │ ├── JisConverter.java │ │ ├── LatinConverter.java │ │ ├── PageBreakType.java │ │ └── RubyCharType.java │ │ ├── image │ │ ├── ImageInfoReader.java │ │ └── ImageUtils.java │ │ ├── info │ │ ├── BookInfo.java │ │ ├── BookInfoHistory.java │ │ ├── ChapterInfo.java │ │ ├── ChapterLineInfo.java │ │ ├── CoverEditInfo.java │ │ ├── GaijiInfo.java │ │ ├── ImageInfo.java │ │ ├── ProfileInfo.java │ │ └── SectionInfo.java │ │ ├── swing │ │ ├── JConfirmDialog.java │ │ ├── JCoverImagePanel.java │ │ ├── JProfileDialog.java │ │ ├── JTocTable.java │ │ └── NarrowTitledBorder.java │ │ ├── util │ │ ├── CharUtils.java │ │ ├── FileNameComparator.java │ │ └── LogAppender.java │ │ ├── web │ │ ├── ExtractInfo.java │ │ └── WebAozoraConverter.java │ │ └── writer │ │ ├── Epub3ImageWriter.java │ │ └── Epub3Writer.java └── images │ ├── add.png │ ├── apply.png │ ├── arrow_down.png │ ├── arrow_horizontal.png │ ├── arrow_out.png │ ├── arrow_up.png │ ├── arrow_vertical.png │ ├── cancel.png │ ├── char.png │ ├── convert.png │ ├── copy.png │ ├── cover.png │ ├── cover_full.png │ ├── cover_narrow.png │ ├── cover_wide.png │ ├── cross.png │ ├── del_cut.png │ ├── delete.png │ ├── dst_path.png │ ├── edit.png │ ├── epub.png │ ├── filename_copy.png │ ├── first.png │ ├── icon.png │ ├── image.png │ ├── kindle.png │ ├── kobo.png │ ├── last.png │ ├── next.png │ ├── page.png │ ├── page_horizontal.png │ ├── page_setting.png │ ├── page_vertical.png │ ├── paste.png │ ├── prev.png │ ├── reader.png │ ├── reader_app.png │ ├── replace.png │ ├── skip.png │ ├── spin_down.png │ ├── spin_up.png │ ├── style.png │ ├── title_reload.png │ ├── toc.png │ ├── viewer.png │ ├── web.png │ ├── zoomin.png │ └── zoomout.png ├── template ├── META-INF │ └── container.xml ├── OPS │ ├── css │ │ ├── horizontal.css │ │ ├── horizontal_font.css │ │ ├── horizontal_image.css │ │ ├── horizontal_middle.css │ │ ├── horizontal_text.vm │ │ ├── kindle_image.css │ │ ├── svg_image.css │ │ ├── vertical.css │ │ ├── vertical_font.css │ │ ├── vertical_image.css │ │ ├── vertical_middle.css │ │ └── vertical_text.vm │ ├── css_custom │ │ ├── horizontal_font_reader.css │ │ ├── horizontal_font_sample.css │ │ ├── vertical_font_reader.css │ │ └── vertical_font_sample.css │ ├── package.vm │ ├── toc.ncx.vm │ └── xhtml │ │ ├── cover.vm │ │ ├── svg_image.vm │ │ ├── title_horizontal.vm │ │ ├── title_middle.vm │ │ ├── xhtml_footer.vm │ │ ├── xhtml_header.vm │ │ └── xhtml_nav.vm └── mimetype ├── test └── com │ └── github │ └── hmdev │ └── converter │ └── AozoraEpub3ConverterTest.java ├── test_data ├── .gitignore ├── img │ ├── fig1317_15.png │ ├── fig1317_16.png │ ├── fig1317_17.png │ ├── fig1317_18.png │ ├── fig1317_19.png │ ├── fig1317_20.png │ ├── fig1317_21.png │ ├── fig1317_22.png │ ├── fig1317_23.png │ ├── fig46187_01.png │ ├── fig46187_02.png │ ├── fig46187_03.png │ ├── fig46187_04.png │ ├── fig52468_15.png │ ├── icon.png │ ├── 大画像.jpg │ ├── 左画像.png │ ├── 縦長.png │ └── 表紙.jpg ├── test_bom.txt ├── test_bouten.txt ├── test_btm.txt ├── test_chapter.txt ├── test_chuki.txt ├── test_dakuten.txt ├── test_gaiji.txt ├── test_gaiji_image.txt ├── test_image.txt ├── test_ivs.txt ├── test_kinsoku.txt ├── test_latin.txt ├── test_mado.txt ├── test_png.zip ├── test_ruby.txt ├── test_tcy.txt ├── test_title.txt ├── test_upr.txt ├── test_wrc.txt └── test_yoko.txt └── web ├── 2.novelist.jp └── extract.txt ├── extract_sample.txt ├── ncode.syosetu.com └── extract.txt ├── novel.fc2.com └── extract.txt ├── novel.syosetu.org └── extract.txt ├── novel18.syosetu.com └── extract.txt ├── novelist.jp └── extract.txt ├── www.akatsuki-novels.com └── extract.txt ├── www.dnovels.net └── extract.txt ├── www.mai-net.net └── extract.txt └── www.newvel.jp └── extract.txt /.gitignore: -------------------------------------------------------------------------------- 1 | /AozoraEpub3.ini 2 | /bin 3 | /.settings 4 | /AozoraEpub3.jar 5 | /.cache 6 | /_kindlegen.exe 7 | /replace.txt 8 | /パッケージ作成* 9 | /profiles 10 | /kindlegen.exe 11 | -------------------------------------------------------------------------------- /AozoraEpub3.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/AozoraEpub3.ico -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | AozoraEpub3 2 | Copyright (C) 2015 https://github.com/hmdev/AozoraEpub3 3 | 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program. If not, see . -------------------------------------------------------------------------------- /chuki_alt.txt: -------------------------------------------------------------------------------- 1 | ######## 代替文字 ######## 2 | ### 注記を含むもの 3 | 4 | ##【その他】記述記号 5 | [#縦中横]!!![#縦中横終わり] ※[#感嘆符三つ] 6 | [#縦中横]?!![#縦中横終わり] ※[#疑問符一つ感嘆符二つ] 7 | 8 | #【その他】平仮名 9 | [#小書き]こ[#小書き終わり] ※[#小書き平仮名こ] 10 | [#小書き]た[#小書き終わり] ※[#小書き平仮名た] 11 | [#小書き]な[#小書き終わり] ※[#小書き平仮名な] 12 | [#小書き]ゑ[#小書き終わり] ※[#小書き平仮名ゑ] 13 | [#小書き]ん[#小書き終わり] ※[#小書き平仮名ん] 14 | [#小書き]づ[#小書き終わり] ※[#濁点付き小書き平仮名つ] 15 | 16 | ##【その他】片仮名 17 | [#小書き]タ[#小書き終わり] ※[#小書き片仮名タ] 18 | [#小書き]チ[#小書き終わり] ※[#小書き片仮名チ] 19 | [#小書き]ノ[#小書き終わり] ※[#小書き片仮名ノ] 20 | [#小書き]マ[#小書き終わり] ※[#小書き片仮名マ] 21 | [#小書き]ヲ[#小書き終わり] ※[#小書き片仮名ヲ] 22 | [#小書き]ン[#小書き終わり] ※[#小書き片仮名ン] 23 | [#小書き]ヰ[#小書き終わり] ※[#小書き片仮名ヰ] 24 | [#小書き]ヱ[#小書き終わり] ※[#小書き片仮名ヱ] 25 | 26 | -------------------------------------------------------------------------------- /chuki_latin.txt: -------------------------------------------------------------------------------- 1 | ######## 拡張ラテン文字変換 ######## 2 | ###分割表記 UTF-8 CID CID縦 3 | 4 | ###Latin-1 Supplement 5 | !@ ¡ 101 9062 6 | ª 140 8859 7 | ?@ ¿ 126 9063 8 | A` À 164 8883 9 | A' Á 165 8884 10 | A^  166 8885 11 | A~ à 167 8886 12 | A: Ä 168 8887 13 | A& Å 169 8888 14 | AE& Æ 139 8858 15 | C, Ç 170 8889 16 | E` È 171 8890 17 | E' É 172 8891 18 | E^ Ê 173 8892 19 | E: Ë 174 8893 20 | I` Ì 175 8894 21 | I' Í 176 8895 22 | I^ Î 177 8896 23 | I: Ï 178 8897 24 | Ð 179 8898 25 | N~ Ñ 180 8899 26 | O` Ò 181 8900 27 | O' Ó 182 8901 28 | O^ Ô 183 8902 29 | O~ Õ 184 8903 30 | O: Ö 185 8904 31 | ## × 186 32 | O/ Ø 142 8861 33 | U` Ù 187 8906 34 | U' Ú 188 8907 35 | U^ Û 189 8908 36 | U: Ü 190 8909 37 | Y' Ý 191 8910 38 | Þ 192 8911 39 | s& ß 150 8869 40 | a` à 193 8912 41 | a' á 194 8913 42 | a^ â 195 8914 43 | a~ ã 196 8915 44 | a: ä 197 8916 45 | a& å 198 8917 46 | ae& æ 145 8864 47 | c, ç 199 8918 48 | e` è 200 8919 49 | e' é 201 8920 50 | e^ ê 202 8921 51 | e: ë 203 8922 52 | i` ì 204 8923 53 | i' í 205 8924 54 | i^ î 206 8925 55 | i: ï 207 8926 56 | ð 208 8927 57 | n~ ñ 209 8928 58 | o` ò 210 8929 59 | o' ó 211 8930 60 | o^ ô 212 8931 61 | o~ õ 213 8932 62 | o: ö 214 8933 63 | ## ÷ 215 64 | o/ ø 148 8867 65 | u` ù 216 8935 66 | u' ú 217 8936 67 | u^ û 218 8937 68 | u: ü 219 8938 69 | y' ý 220 8939 70 | þ 221 8940 71 | y: ÿ 222 8941 72 | 73 | ###Latin Extended-A 74 | A_ Ā 9366 12882 75 | a_ ā 9361 12877 76 | Ă 77 | ă 78 | Ą 79 | ą 80 | C' Ć 81 | c' ć 82 | C^ Ĉ 83 | c^ ĉ 84 | Ċ 85 | ċ 86 | Č 87 | č 88 | Ď 89 | ď 90 | D_ Đ 91 | d_ đ 92 | E_ Ē 9369 12885 93 | e_ ē 9364 12880 94 | Ĕ 95 | ĕ 96 | Ė 97 | ė 98 | Ę 99 | ę 100 | Ě 101 | ě 102 | G^ Ĝ 103 | g^ ĝ 104 | Ğ 105 | ğ 106 | Ġ 107 | ġ 108 | G, Ģ 109 | ģ 110 | H^ Ĥ 111 | h^ ĥ 112 | H_ Ħ 113 | h_ ħ 114 | I~ Ĩ 115 | i~ ĩ 116 | I_ Ī 9367 12883 117 | i_ ī 9362 12878 118 | Ĭ 119 | ĭ 120 | Į 121 | į 122 | İ 123 | ı 146 8865 124 | IJ& IJ 125 | ij& ij 126 | J^ Ĵ 127 | j^ ĵ 128 | K, Ķ 129 | k, ķ 130 | ĸ 131 | L' Ĺ 132 | l' ĺ 133 | L, Ļ 134 | l, ļ 135 | Ľ 136 | ľ 137 | Ŀ 138 | ŀ 139 | L/ Ł 141 8860 140 | l/ ł 147 8866 141 | N' Ń 142 | n' ń 143 | N, Ņ 144 | n, ņ 145 | Ň 146 | ň 147 | ʼn 148 | Ŋ 149 | ŋ 150 | O_ Ō 9370 12886 151 | o_ ō 9365 12881 152 | Ŏ 153 | ŏ 154 | O" Ő 155 | o" ő 156 | OE& Œ 143 8862 157 | oe& œ 149 8868 158 | R' Ŕ 159 | r' ŕ 160 | R, Ŗ 161 | r, ŗ 162 | Ř 163 | ř 164 | S' Ś 165 | s' ś 166 | S^ Ŝ 167 | s^ ŝ 168 | S, Ş 169 | s, ş 170 | Š 223 8942 171 | š 227 8946 172 | T, Ţ 173 | t, ţ 174 | Ť 175 | ť 176 | T_ Ŧ 177 | t_ ŧ 178 | U~ Ũ 179 | u~ ũ 180 | U_ Ū 9368 12884 181 | u_ ū 9363 12879 182 | Ŭ 183 | ŭ 184 | U& Ů 185 | u& ů 186 | U" Ű 187 | u" ű 188 | Ų 189 | ų 190 | W^ Ŵ 191 | w^ ŵ 192 | Y^ Ŷ 193 | y^ ŷ 194 | Y: Ÿ 224 8943 195 | Z' Ź 196 | z' ź 197 | Ż 198 | ż 199 | Ž 225 8944 200 | ž 229 8948 201 | ſ 202 | -------------------------------------------------------------------------------- /chuki_tag_suf.txt: -------------------------------------------------------------------------------- 1 | ##○○[#「○○」の場合にインライン注記に変換 2 | # 3 | #圏点と縦中横が重複したら後の注記を無視 4 | #青空《あおぞら》[[#「青空」に傍点][#「青空」は太字]文庫《ぶんこ》[#「青空文庫」に傍線] 5 | #圏点はfontの中に入れる 6 | #青空[#「青空」は太字][#「青空」に傍点]文庫《ぶんこ》[#「青空文庫」に傍線] 7 | 8 | ##kenten 末尾が「点」 9 | に傍点 傍点 傍点終わり 10 | に白ゴマ傍点 白ゴマ傍点 白ゴマ傍点終わり 11 | に丸傍点 丸傍点 丸傍点終わり 12 | に白丸傍点 白丸傍点 白丸傍点終わり 13 | に黒三角傍点 黒三角傍点 黒三角傍点終わり 14 | に白三角傍点 白三角傍点 白三角傍点終わり 15 | に二重丸傍点 二重丸傍点 二重丸傍点終わり 16 | に蛇の目傍点 蛇の目傍点 蛇の目傍点終わり 17 | にばつ傍点 ばつ傍点 ばつ傍点終わり 18 | に×傍点 ×傍点 ×傍点終わり 19 | 20 | の左に傍点 左に傍点 左に傍点終わり 21 | の左に白ゴマ傍点 左に白ゴマ傍点 左に白ゴマ傍点終わり 22 | の左に丸傍点 左に丸傍点 左に丸傍点終わり 23 | の左に白丸傍点 左に白丸傍点 左に白丸傍点終わり 24 | の左に黒三角傍点 左に黒三角傍点 左に黒三角傍点終わり 25 | の左に白三角傍点 左に白三角傍点 左に白三角傍点終わり 26 | の左に二重丸傍点 左に二重丸傍点 左に二重丸傍点終わり 27 | の左に蛇の目傍点 左に蛇の目傍点 左に蛇の目傍点終わり 28 | の左にばつ傍点 左にばつ傍点 左にばつ傍点終わり 29 | の左に×傍点 左に×傍点 左に×傍点終わり 30 | 31 | は縦中横 縦中横 縦中横終わり 32 | 33 | は見出し 見出し 見出し終わり 34 | は大見出し 大見出し 大見出し終わり 35 | は中見出し 中見出し 中見出し終わり 36 | は小見出し 小見出し 小見出し終わり 37 | 38 | は同行大見出し 同行大見出し 同行大見出し終わり 39 | は同行中見出し 同行中見出し 同行中見出し終わり 40 | は同行小見出し 同行小見出し 同行小見出し終わり 41 | 42 | は窓大見出し 窓大見出し 窓大見出し終わり 43 | は窓中見出し 窓中見出し 窓中見出し終わり 44 | は窓小見出し 窓小見出し 窓小見出し終わり 45 | 46 | に傍線 傍線 傍線終わり 47 | に二重傍線 二重傍線 二重傍線終わり 48 | に鎖線 鎖線 鎖線終わり 49 | に破線 破線 破線終わり 50 | に波線 波線 波線終わり 51 | の左に傍線 左に傍線 左に傍線終わり 52 | 53 | に取消線 取消線 取消線終わり 54 | に取り消し線 取り消し線 取り消し線終わり 55 | に二重取消線 二重取消線 二重取消線終わり 56 | に二重取り消し線 二重取り消し線 二重取り消し線終わり 57 | 58 | は太字 太字 太字終わり 59 | は斜体 斜体 斜体終わり 60 | はゴシック体 ゴシック体 ゴシック体終わり 61 | 62 | は1段階大きな文字 1段階大きな文字 大きな文字終わり 63 | は2段階大きな文字 2段階大きな文字 大きな文字終わり 64 | は3段階大きな文字 3段階大きな文字 大きな文字終わり 65 | は4段階大きな文字 4段階大きな文字 大きな文字終わり 66 | は5段階大きな文字 5段階大きな文字 大きな文字終わり 67 | は6段階大きな文字 6段階大きな文字 大きな文字終わり 68 | は1段階小さな文字 1段階小さな文字 小さな文字終わり 69 | は2段階小さな文字 2段階小さな文字 小さな文字終わり 70 | は3段階小さな文字 3段階小さな文字 小さな文字終わり 71 | は4段階小さな文字 4段階小さな文字 小さな文字終わり 72 | は5段階小さな文字 5段階小さな文字 小さな文字終わり 73 | は6段階小さな文字 6段階小さな文字 小さな文字終わり 74 | 75 | は割り注 割り注 割り注終わり 76 | は行右小書き 行右小書き 行右小書き終わり 77 | は行左小書き 行左小書き 行左小書き終わり 78 | は小書き 小書き 小書き終わり 79 | は上付き小文字 上付き小文字 上付き小文字終わり 80 | は下付き小文字 下付き小文字 下付き小文字終わり 81 | は罫囲み 罫囲み 罫囲み終わり 82 | は破線罫囲み 破線罫囲み 破線罫囲み終わり 83 | は破線の罫囲み 破線の罫囲み 破線の罫囲み終わり 84 | は枠囲み 枠囲み 枠囲み終わり 85 | は破線枠囲み 破線枠囲み 破線枠囲み終わり 86 | は横組み 横組み 横組み終わり 87 | 88 | は返り点 返り点 返り点終わり 89 | 90 | はキャプション キャプション キャプション終わり 91 | 92 | #青空注記外 93 | は正立 正立 正立終わり 94 | -------------------------------------------------------------------------------- /gaiji/README.txt: -------------------------------------------------------------------------------- 1 | 外字用1文字フォント格納パス 2 | ============ 3 | 4 | 説明 5 | ------------ 6 | このパスに1文字フォントファイルを配置することで、1文字フォントファイル名に 7 | 対応した文字を1文字フォントで表示します。 8 | 9 | 1文字フォントは http://glyphwiki.org/wiki/ からダウンロードできます。 10 | 1文字フォント利用時は文字は1文字フォント対応文字の 〓 に変換されてePubに出力します。 11 | 12 | ファイル名はGlyphWikiの1文字フォントの形式(小文字)のみ対応になります。 13 | 通常の文字: "u"+ Unicode +".ttf" 14 | IVS付きの文字: "u"+ Unicode +"-u"+ IVSコード +".ttf" 15 | 例: 16 | ※[#「叢-取」、U+4E35] → u4e35.ttf 17 | ※[#U+4E35] → u4e35.ttf 18 | ※[#「王+車」、U+2496D]→ u2496d.ttf 19 | ※[#U+2496D]→ u2496d.ttf 20 | ※[#「にんべん+誨のつくり」] → u4fae-ue0101.ttf (侮の異体字) 21 | ※[#U+4FAE-E0101] → u4fae-ue0101.ttf (侮の異体字) 22 | 23 | 24 | フォントの調整 25 | ------------ 26 | GlyphWikiの1文字フォントのそのまま利用で、上下に余白が出たり細すぎる場合は、 27 | 以下の手順で修正できます。 28 | 29 | ####fontforgeの画面上での操作 30 | 31 | 1.fontforgeをインストール 32 | fontforge: http://fontforge.github.io/ja/ 33 | Windows: http://www.geocities.jp/meir000/fontforge/ 34 | 2.フォントを選択 35 | 起動時に1文字フォントファイルを開く 36 | エンコーディング → 定義済のグリフのみ表示 → フォントを選択 37 | 3.u0020とu3000を選択してカット 38 | 4.エレメント → フォント情報 → 一般情報 → 縦書きメトリックが存在 を選択 → OK 39 | 5.太くする場合はウェイト変更 40 | エレメント → スタイル→ウェイトを変更 → Embolden by [6]~[12]ぐらいを指定 → OK 41 | ※ウェイトは端末のフォントに合わせて若干太くすると違和感が無くなります 42 | 6.出力 43 | エレメント → 座標を丸める → 整数に 44 | ファイル → フォントを出力 → OK 45 | 46 | 47 | ####スクリプトでの一括変換 (Windowsの場合) 48 | 49 | 1.複数の1文字フォントを gaiji 以外の適当なフォルダに保存 50 | 2.1文字フォントのフォルダに gaiji/convert.pe をコピー 51 | 3.1文字フォントのフォルダをコマンドプロンプトで開く 52 | 4.スクリプトを実行(フォントのあるフォルダで実行すること) 53 | [fontforgeのパス]fontforge.exe -script convert.pe [AozoraEpub3のインストールパス]\gaiji *.ttf 54 | 例: c:\fontforge-cygwin\cygwin\bin\fontforge.exe -script convert.pe "c:\Program Files\AozoraEpub3\gaiji" *.ttf 55 | 56 | * エラーが出た場合 57 | 該当フォントをfontforgeで確認して重なり等を修正する 58 | または convert.pe 内の ExpandStroke() の値を調整 59 | -------------------------------------------------------------------------------- /gaiji/convert.pe: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/fontforge 2 | ## Revise 1-character font from http://glyphwiki.org/ 3 | ## d:\fontforge-cygwin\cygwin\bin\fontforge.exe -script "d:\git\AozoraEpub3\gaiji\convert.pe" "d:\git\AozoraEpub3\gaiji" *.ttf 4 | 5 | output = $argv[1] 6 | i=2 7 | while (i < $argc) 8 | filename = $argv[i] 9 | Print(filename); 10 | Open(filename); 11 | ClearHints(); 12 | Select(0u0020); 13 | Clear(); 14 | Select(0u3000); 15 | Clear(); 16 | Select(0u3013); 17 | CopyFgToBg(); 18 | ClearInstrs(); 19 | UnlinkReference(); 20 | ExpandStroke(6,0,1,0,1) 21 | CorrectDirection(); 22 | RoundToInt(); 23 | SetFontHasVerticalMetrics(1); 24 | Generate(output+"/"+filename); 25 | i = i+1 26 | endloop 27 | -------------------------------------------------------------------------------- /gaiji/dakuten/u303b-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u303b-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3041-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3041-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3041-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3041-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3042-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3042-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3042-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3042-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3043-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3043-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3043-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3043-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3044-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3044-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3044-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3044-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3045-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3045-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3045-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3045-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3046-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3046-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3047-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3047-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3047-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3047-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3048-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3048-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3048-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3048-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3049-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3049-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3049-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3049-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u304a-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u304a-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u304a-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u304a-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u304b-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u304b-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u304d-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u304d-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u304f-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u304f-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3051-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3051-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3053-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3053-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3055-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3055-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3057-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3057-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3059-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3059-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u305b-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u305b-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u305d-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u305d-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u305f-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u305f-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3061-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3061-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3063-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3063-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3063-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3063-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3064-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3064-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3066-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3066-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3068-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3068-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u306a-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u306a-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u306a-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u306a-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u306b-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u306b-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u306b-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u306b-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u306c-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u306c-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u306c-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u306c-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u306d-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u306d-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u306d-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u306d-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u306e-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u306e-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u306e-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u306e-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u307e-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u307e-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u307e-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u307e-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u307f-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u307f-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u307f-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u307f-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3080-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3080-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3080-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3080-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3081-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3081-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3081-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3081-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3082-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3082-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3082-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3082-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3083-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3083-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3083-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3083-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3084-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3084-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3084-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3084-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3085-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3085-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3085-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3085-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3086-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3086-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3086-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3086-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3087-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3087-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3087-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3087-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3088-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3088-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3088-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3088-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3089-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3089-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3089-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3089-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308a-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308a-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308a-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308a-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308b-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308b-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308b-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308b-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308c-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308c-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308c-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308c-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308d-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308d-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308d-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308d-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308e-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308e-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308e-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308e-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308f-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308f-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u308f-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u308f-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3090-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3090-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3090-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3090-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3091-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3091-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3091-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3091-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3092-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3092-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3092-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3092-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3093-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3093-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3093-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3093-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3095-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3095-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3095-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3095-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3096-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3096-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3096-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3096-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u309d-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u309d-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a1-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a1-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a1-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a1-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a2-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a2-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a2-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a2-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a3-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a3-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a3-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a3-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a4-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a4-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a4-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a4-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a5-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a5-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a5-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a5-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a6-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a6-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a7-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a7-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a7-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a7-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a8-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a8-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a8-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a8-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a9-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a9-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30a9-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30a9-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30aa-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30aa-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30aa-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30aa-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ab-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ab-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ad-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ad-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30af-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30af-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30b1-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30b1-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30b3-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30b3-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30b5-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30b5-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30b7-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30b7-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30b9-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30b9-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30bb-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30bb-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30bd-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30bd-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30bf-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30bf-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30c1-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30c1-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30c3-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30c3-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30c3-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30c3-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30c4-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30c4-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30c6-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30c6-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30c8-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30c8-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ca-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ca-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ca-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ca-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30cb-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30cb-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30cb-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30cb-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30cc-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30cc-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30cc-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30cc-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30cd-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30cd-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30cd-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30cd-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ce-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ce-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ce-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ce-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30de-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30de-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30de-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30de-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30df-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30df-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30df-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30df-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e0-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e0-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e0-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e0-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e1-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e1-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e1-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e1-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e2-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e2-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e2-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e2-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e3-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e3-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e3-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e3-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e4-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e4-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e4-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e4-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e5-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e5-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e5-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e5-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e6-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e6-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e6-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e6-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e7-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e7-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e7-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e7-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e8-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e8-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e8-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e8-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e9-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e9-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30e9-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30e9-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ea-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ea-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ea-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ea-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30eb-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30eb-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30eb-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30eb-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ec-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ec-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ec-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ec-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ed-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ed-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ed-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ed-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ee-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ee-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ee-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ee-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30ef-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30ef-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30f0-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30f0-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30f1-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30f1-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30f2-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30f2-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30f3-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30f3-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30f3-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30f3-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30f5-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30f5-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30f5-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30f5-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30f6-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30f6-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30f6-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30f6-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30fc-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30fc-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30fc-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30fc-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u30fd-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u30fd-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f0-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f0-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f0-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f0-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f1-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f1-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f1-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f1-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f2-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f2-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f2-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f2-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f3-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f3-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f3-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f3-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f4-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f4-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f4-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f4-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f5-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f5-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f5-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f5-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f6-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f6-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f6-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f6-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f7-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f7-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f7-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f7-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f8-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f8-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f8-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f8-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f9-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f9-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31f9-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31f9-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31fa-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31fa-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31fa-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31fa-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31fb-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31fb-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31fb-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31fb-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31fc-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31fc-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31fc-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31fc-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31fd-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31fd-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31fd-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31fd-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31fe-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31fe-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31fe-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31fe-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31ff-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31ff-u3099.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u31ff-u309a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u31ff-u309a.ttf -------------------------------------------------------------------------------- /gaiji/dakuten/u3b9-u3099.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/gaiji/dakuten/u3b9-u3099.ttf -------------------------------------------------------------------------------- /lib/LICENSE/jsoup.txt: -------------------------------------------------------------------------------- 1 | jsoup License 2 | 3 | The jsoup code-base (include source and compiled packages) are distributed 4 | under the open source MIT license as described below. 5 | 6 | The MIT License 7 | 8 | Copyright © 2009 - 2012 Jonathan Hedley (jonathan@hedley.net) 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining 11 | a copy of this software and associated documentation files (the "Software"), 12 | to deal in the Software without restriction, including without limitation 13 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 14 | and/or sell copies of the Software, and to permit persons to whom the 15 | Software is furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included 18 | in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | THE SOFTWARE. 27 | 28 | 29 | http://jsoup.org/ -------------------------------------------------------------------------------- /lib/LICENSE/junrar.txt: -------------------------------------------------------------------------------- 1 |  ****** ***** ****** UnRAR - free utility for RAR archives 2 | ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 | ****** ******* ****** License for use and distribution of 4 | ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 | ** ** ** ** ** ** FREE portable version 6 | ~~~~~~~~~~~~~~~~~~~~~ 7 | 8 | The source code of UnRAR utility is freeware. This means: 9 | 10 | 1. All copyrights to RAR and the utility UnRAR are exclusively 11 | owned by the author - Alexander Roshal. 12 | 13 | 2. The UnRAR sources may be used in any software to handle RAR 14 | archives without limitations free of charge, but cannot be used 15 | to re-create the RAR compression algorithm, which is proprietary. 16 | Distribution of modified UnRAR sources in separate form or as a 17 | part of other software is permitted, provided that it is clearly 18 | stated in the documentation and source comments that the code may 19 | not be used to develop a RAR (WinRAR) compatible archiver. 20 | 21 | 3. The UnRAR utility may be freely distributed. It is allowed 22 | to distribute UnRAR inside of other software packages. 23 | 24 | 4. THE RAR ARCHIVER AND THE UnRAR UTILITY ARE DISTRIBUTED "AS IS". 25 | NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT 26 | YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, 27 | DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING 28 | OR MISUSING THIS SOFTWARE. 29 | 30 | 5. Installing and using the UnRAR utility signifies acceptance of 31 | these terms and conditions of the license. 32 | 33 | 6. If you don't agree with terms of the license you must remove 34 | UnRAR files from your storage devices and cease to use the 35 | utility. 36 | 37 | Thank you for your interest in RAR and UnRAR. 38 | 39 | 40 | Alexander L. Roshal 41 | 42 | 43 | https://github.com/edmund-wagner/junrar -------------------------------------------------------------------------------- /lib/LICENSE/velocity.txt: -------------------------------------------------------------------------------- 1 | Apache Velocity 2 | 3 | Copyright (C) 2000-2007 The Apache Software Foundation 4 | 5 | This product includes software developed at 6 | The Apache Software Foundation (http://www.apache.org/). 7 | 8 | 9 | http://velocity.apache.org/ -------------------------------------------------------------------------------- /lib/commons-cli-1.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/lib/commons-cli-1.2.jar -------------------------------------------------------------------------------- /lib/commons-collections-3.2.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/lib/commons-collections-3.2.1.jar -------------------------------------------------------------------------------- /lib/commons-compress-1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/lib/commons-compress-1.0.jar -------------------------------------------------------------------------------- /lib/commons-lang-2.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/lib/commons-lang-2.4.jar -------------------------------------------------------------------------------- /lib/commons-logging-api-1.0.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/lib/commons-logging-api-1.0.4.jar -------------------------------------------------------------------------------- /lib/jai_codec.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/lib/jai_codec.jar -------------------------------------------------------------------------------- /lib/jai_core.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/lib/jai_core.jar -------------------------------------------------------------------------------- /lib/jsoup-1.7.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/lib/jsoup-1.7.1.jar -------------------------------------------------------------------------------- /lib/junrar-0.7.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/lib/junrar-0.7.jar -------------------------------------------------------------------------------- /lib/velocity-1.7.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/lib/velocity-1.7.jar -------------------------------------------------------------------------------- /presets/kindle_pw.ini: -------------------------------------------------------------------------------- 1 | #AozoraEpub3 Preset 2 | 3 | PresetName=Kindle PW 4 | PresetIcon=kindle.png 5 | 6 | Ext=.mobi 7 | 8 | PageBreak= 9 | 10 | DispW=629 11 | DispH=984 12 | CoverW=758 13 | CoverH=1024 14 | 15 | ImageSizeType=1 16 | FitImage=0 17 | ImageFloatPage=0 18 | ImageFloatBlock=0 19 | SvgImage=0 20 | 21 | MarkId= 22 | Gaiji32=1 23 | 24 | SpaceHyphenation=1 25 | 26 | PageMargin=0,0,0,0 27 | PageMarginUnit=0 28 | BodyMargin=0,0,0,0 29 | BodyMarginUnit=0 30 | LineHeight=1.5 31 | FontSize=100 32 | BoldUseGothic=0 -------------------------------------------------------------------------------- /presets/kobo__full.ini: -------------------------------------------------------------------------------- 1 | #AozoraEpub3 Preset 2 | 3 | PresetName=+ kobo\u5168\u753B\u9762 4 | PresetIcon=kobo.png 5 | 6 | Ext=.fxl.kepub.epub 7 | 8 | PageMargin=0,0,0,0 9 | PageMarginUnit=0 10 | BodyMargin=1,0.5,1,0.5 11 | -------------------------------------------------------------------------------- /presets/kobo_glo.ini: -------------------------------------------------------------------------------- 1 | #AozoraEpub3 Preset 2 | 3 | PresetName=kobo glo 4 | PresetIcon=kobo.png 5 | 6 | Ext=.kepub.epub 7 | 8 | PageBreak=1 9 | PageBreakSize=400 10 | PageBreakEmptySize=300 11 | PageBreakChapterSize=250 12 | 13 | DispW=758 14 | DispH=1024 15 | CoverW=758 16 | CoverH=1024 17 | 18 | ImageSizeType=1 19 | FitImage=1 20 | ImageFloatPage=0 21 | ImageFloatBlock=0 22 | SvgImage=1 23 | 24 | MarkId=1 25 | Gaiji32=1 26 | 27 | SpaceHyphenation=1 28 | 29 | PageMargin=0,0.5,0,0 30 | PageMarginUnit=0 31 | BodyMargin=0,0,0,0 32 | BodyMarginUnit=0 33 | LineHeight=1.8 34 | FontSize=100 35 | BoldUseGothic=0 -------------------------------------------------------------------------------- /presets/kobo_touch.ini: -------------------------------------------------------------------------------- 1 | #AozoraEpub3 Preset 2 | 3 | PresetName=kobo Touch / mini 4 | PresetIcon=kobo.png 5 | 6 | Ext=.kepub.epub 7 | 8 | PageBreak=1 9 | PageBreakSize=400 10 | PageBreakEmptySize=300 11 | PageBreakChapterSize=250 12 | 13 | DispW=600 14 | DispH=800 15 | CoverW=600 16 | CoverH=800 17 | 18 | ImageSizeType=1 19 | FitImage=1 20 | ImageFloatPage=0 21 | ImageFloatBlock=0 22 | SvgImage=1 23 | 24 | MarkId=1 25 | Gaiji32=1 26 | 27 | SpaceHyphenation=1 28 | 29 | PageMargin=0,0.5,0,0 30 | PageMarginUnit=0 31 | BodyMargin=0,0,0,0 32 | BodyMarginUnit=0 33 | LineHeight=1.8 34 | FontSize=100 35 | BoldUseGothic=0 -------------------------------------------------------------------------------- /presets/reader.ini: -------------------------------------------------------------------------------- 1 | #AozoraEpub3 Preset 2 | 3 | PresetName=Sony Reader T1/T2 4 | PresetIcon=reader.png 5 | 6 | Ext=.epub 7 | 8 | PageBreak=1 9 | PageBreakSize=300 10 | PageBreakEmptySize=250 11 | PageBreakChapterSize=200 12 | 13 | DispW=584 14 | DispH=754 15 | CoverW=600 16 | CoverH=800 17 | 18 | ImageSizeType=3 19 | FitImage=1 20 | ImageFloatPage=1 21 | ImageFloatBlock=1 22 | SvgImage=1 23 | 24 | MarkId= 25 | Gaiji32=1 26 | ResizeW=1 27 | ResizeH=1 28 | ResizeNumW=2048 29 | ResizeNumH=2048 30 | 31 | SpaceHyphenation=2 32 | 33 | PageMargin=0,0,0,0 34 | PageMarginUnit=0 35 | BodyMargin=1,1,0.5,0.5 36 | BodyMarginUnit=0 37 | LineHeight=1.8 38 | FontSize=100 39 | GothicUseBold=1 -------------------------------------------------------------------------------- /presets/reader_t3.ini: -------------------------------------------------------------------------------- 1 | #AozoraEpub3 Preset 2 | 3 | PresetName=Sony Reader T3 4 | PresetIcon=reader.png 5 | 6 | Ext=.epub 7 | 8 | PageBreak=1 9 | PageBreakSize=300 10 | PageBreakEmptySize=250 11 | PageBreakChapterSize=200 12 | 13 | DispW=738 14 | DispH=965 15 | CoverW=758 16 | CoverH=1024 17 | 18 | ImageSizeType=3 19 | FitImage=1 20 | ImageFloatPage=1 21 | ImageFloatBlock=1 22 | SvgImage=1 23 | 24 | MarkId= 25 | Gaiji32=1 26 | ResizeW=1 27 | ResizeH=1 28 | ResizeNumW=2048 29 | ResizeNumH=2048 30 | 31 | SpaceHyphenation=2 32 | 33 | PageMargin=0,0,0,0 34 | PageMarginUnit=0 35 | BodyMargin=1,1,0.5,0.5 36 | BodyMarginUnit=0 37 | LineHeight=1.8 38 | FontSize=100 39 | GothicUseBold=1 -------------------------------------------------------------------------------- /replace_sample.txt: -------------------------------------------------------------------------------- 1 | ######## 文字置換 ######## 2 | ### 利用する場合は replace.txt にリネーム 3 | ### 置換前文字(1~2文字のみ)と置換後文字列をタブ区切りで指定 4 | ### 置換後文字列に閉じていないタグの < か > が含まれているとxhtmlエラーになるので注意 5 | ### 縦書き時 “→〝,”→〟,<<→《,<<→《,≪→《,>>→》,>>→》,≫→》の変換はハードコーディング 6 | 7 | ##Readerで回転されない文字 8 | - ― 9 | < 〈 10 | > 〉 11 | 12 | ##カギ括弧閉じ前の 。 を削除 13 | 。」 」 14 | 15 | -------------------------------------------------------------------------------- /src/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Created-By: 1.6.0_31 (Sun Microsystems Inc.) 3 | Main-Class: AozoraEpub3Applet 4 | Class-Path: . lib/commons-lang-2.4.jar lib/commons-compress-1.0.jar lib/commons-cli-1.2.jar lib/commons-collections-3.2.1.jar lib/commons-logging-api-1.0.4.jar lib/jai_codec.jar lib/jai_core.jar lib/jsoup-1.7.1.jar lib/junrar-0.7.jar lib/velocity-1.7.jar 5 | -------------------------------------------------------------------------------- /src/com/github/hmdev/converter/AozoraGaijiConverter.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.converter; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.File; 5 | import java.io.FileInputStream; 6 | import java.io.IOException; 7 | import java.io.InputStreamReader; 8 | import java.io.UnsupportedEncodingException; 9 | import java.nio.ByteBuffer; 10 | import java.util.HashMap; 11 | 12 | import com.github.hmdev.util.LogAppender; 13 | 14 | 15 | /** 16 | * 青空文庫注記外字をグリフ・UTF-8・代替文字に変換 17 | */ 18 | public class AozoraGaijiConverter 19 | { 20 | /** 青空文庫注記外字をグリフタグに変換 value=CID */ 21 | //HashMap chukiCidMap = new HashMap(); 22 | 23 | /** 青空文庫注記外字をUTF-8に変換 */ 24 | HashMap chukiUtfMap = new HashMap(); 25 | 26 | /** 青空文庫注記外字を代替文字に変換 */ 27 | HashMap chukiAltMap = new HashMap(); 28 | 29 | public AozoraGaijiConverter(String jarPath) throws IOException 30 | { 31 | //初期化 32 | //ファイルチェック取得 IVS優先 33 | this.loadChukiFile(new File(jarPath+"chuki_ivs.txt"), chukiUtfMap); 34 | this.loadChukiFile(new File(jarPath+"chuki_utf.txt"), chukiUtfMap); 35 | this.loadChukiFile(new File(jarPath+"chuki_alt.txt"), chukiAltMap); 36 | } 37 | 38 | /** 注記変換ファイル読み込み 39 | * @throws IOException */ 40 | private void loadChukiFile(File srcFile, HashMap chukiMap) throws IOException 41 | { 42 | BufferedReader src = new BufferedReader(new InputStreamReader(new FileInputStream(srcFile), "UTF-8")); 43 | String line; 44 | int lineNum = 0; 45 | try { 46 | while ((line = src.readLine()) != null) { 47 | if (line.length() > 0 && line.charAt(0)!='#') { 48 | try { 49 | int charStart = line.indexOf('\t'); 50 | if (charStart == -1) continue; 51 | charStart = line.indexOf('\t', charStart+1); 52 | if (charStart == -1) continue; 53 | charStart++; 54 | int chukiStart = line.indexOf('\t', charStart); 55 | if (chukiStart == -1) continue; 56 | chukiStart++; 57 | if (!line.startsWith("※[#", chukiStart)) continue; 58 | int chukiEnd = line.indexOf('\t', chukiStart); 59 | int chukiCode = line.indexOf('、', chukiStart); 60 | if (chukiCode != -1 && line.charAt(chukiCode+1) == '「') chukiCode = line.indexOf('、', chukiCode+1);//注記内に、がある 61 | if (chukiCode != -1 && (chukiEnd == -1 || chukiCode < chukiEnd)) chukiEnd = chukiCode+1; 62 | if (chukiEnd == -1) chukiEnd = line.length(); 63 | 64 | String utfChar = line.substring(charStart, chukiStart-1); 65 | String chuki = line.substring(chukiStart+3, chukiEnd-1); 66 | if (chukiMap.containsKey(chuki)) LogAppender.warn(lineNum, "外字注記定義重複", chuki); 67 | else chukiMap.put(chuki, utfChar); 68 | 69 | } catch (Exception e) { 70 | LogAppender.error(lineNum, srcFile.getName(), line); 71 | } 72 | } 73 | lineNum++; 74 | } 75 | } finally { 76 | src.close(); 77 | } 78 | } 79 | 80 | /** 注記をグリフタグに変換 81 | * @return 変換したUTF-8文字列 変換できなければnull */ 82 | /*public String toGlyphTag(String chuki) 83 | { 84 | String cid = chukiCidMap.get(chuki); 85 | if (cid == null) return null; 86 | return ""; 87 | }*/ 88 | 89 | /** 注記をUTF-8に変換 90 | * @return 変換したUTF-8文字列 変換できなければnull */ 91 | public String toUtf(String chuki) 92 | { 93 | return chukiUtfMap.get(chuki); 94 | } 95 | 96 | /** 注記を代替文字列に変換 97 | * @return 変換したUTF-8文字列 変換できなければnull */ 98 | public String toAlterString(String chuki) 99 | { 100 | return chukiAltMap.get(chuki); 101 | } 102 | 103 | /** コードをUTF-8文字に変換 対応文字がなければ'〓' 104 | * @param code UTFまたはJISのコード表記 105 | * @return 変換したUTF-8文字列 変換できなければnull */ 106 | public String codeToCharString(String code) 107 | { 108 | try { 109 | if (code.startsWith("U+") || code.startsWith("u+")) { 110 | //Unicodeを文字列に変換 111 | //IVSがある場合は U+845B-U+E0100 または U+845B-E0100 の表記 112 | int idx = code.indexOf("-"); 113 | if (idx == -1) { 114 | return codeToCharString(Integer.parseInt(code.substring(2), 16)); 115 | } else { 116 | String ivs = code.substring(idx+1); 117 | if (ivs.startsWith("U+") || ivs.startsWith("u+")) ivs = ivs.substring(2); 118 | return codeToCharString(Integer.parseInt(code.substring(2, idx), 16)) 119 | +codeToCharString(Integer.parseInt(ivs, 16)); 120 | } 121 | } else if (code.startsWith("UCS-")) { 122 | //UTF-32コードを文字列に変換 123 | return codeToCharString(Integer.parseInt(code.substring(4), 16)); 124 | } else if (code.startsWith("unicode")) { 125 | //UTF-32コードを文字列に変換 126 | return codeToCharString(Integer.parseInt(code.substring(7), 16)); 127 | } else { 128 | //第3第4水準JISを文字列に変換 129 | String[] codes; 130 | if (code.startsWith("第3水準") || code.startsWith("第4水準")) { 131 | codes = code.substring(4).split("-"); 132 | } else { 133 | codes = code.split("-"); 134 | } 135 | return JisConverter.getConverter().toCharString(Integer.parseInt(codes[0]), Integer.parseInt(codes[1]), Integer.parseInt(codes[2])); 136 | } 137 | } catch (Exception e) {} 138 | return null; 139 | } 140 | 141 | /** UTF-8コードを文字列に変換 142 | * UTF-32の拡張領域は2文字分の文字列になる */ 143 | public String codeToCharString(int unicode) throws UnsupportedEncodingException 144 | { 145 | if (unicode == 0) return null; 146 | if (unicode > 0xFFFF) { 147 | byte[] b = new byte[]{0, (byte)(unicode>>16), (byte)(unicode>>8), (byte)(unicode)}; 148 | return new String(b, "UTF-32"); 149 | } 150 | return String.valueOf((char)unicode); 151 | } 152 | 153 | /** UTF-8のバイト配列のコード数値に変換 */ 154 | public int charStringToCode(String charString) 155 | { 156 | try { 157 | return toCode(charString.getBytes("UTF-32")); 158 | } catch (UnsupportedEncodingException e) {} 159 | return 0; 160 | } 161 | public int toCode(byte[] utf32Bytes) 162 | { 163 | return ByteBuffer.wrap(utf32Bytes).getInt(); 164 | } 165 | 166 | } 167 | -------------------------------------------------------------------------------- /src/com/github/hmdev/converter/GlyphConverter.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.converter; 2 | import java.io.BufferedReader; 3 | import java.io.BufferedWriter; 4 | import java.io.File; 5 | import java.io.FileInputStream; 6 | import java.io.IOException; 7 | import java.io.InputStreamReader; 8 | import java.io.OutputStreamWriter; 9 | import java.util.HashMap; 10 | 11 | import com.github.hmdev.util.LogAppender; 12 | 13 | /** 14 | * パラメータファイルで指定されたUTF-8をグリフタグに変換するクラス 15 | * XMDF変換で利用していてePub3では未使用 16 | */ 17 | public class GlyphConverter 18 | { 19 | /** 分解表記文字列→拡張ラテン文字の対応テーブル */ 20 | HashMap cidMap = new HashMap(); 21 | 22 | /** 初期化 パラメータファイル読み込み 23 | * @throws IOException */ 24 | public GlyphConverter(StringBuilder log, String dir) throws IOException 25 | { 26 | File dirFile = new File(dir); 27 | if (dirFile.isDirectory()) { 28 | for (File file : dirFile.listFiles()) { 29 | System.out.println(file.getPath()); 30 | this.loadCidFile(log, file, cidMap); 31 | } 32 | } 33 | } 34 | 35 | /** 注記変換ファイル読み込み 36 | * @throws IOException */ 37 | private void loadCidFile(StringBuilder log, File srcFile, HashMap cidMap) throws IOException 38 | { 39 | BufferedReader src = new BufferedReader(new InputStreamReader(new FileInputStream(srcFile), "UTF-8")); 40 | String line; 41 | int lineNum = 0; 42 | try { 43 | while ((line = src.readLine()) != null) { 44 | lineNum++; 45 | if (line.length() > 0 && line.charAt(0)!='#') { 46 | try { 47 | String[] values = line.split("\t"); 48 | char ch = values[0].charAt(0); 49 | if (!cidMap.containsKey(ch)) cidMap.put(ch, values[1]); 50 | } catch (Exception e) { LogAppender.error(lineNum, srcFile.getName(), line); } 51 | } 52 | } 53 | } finally { 54 | src.close(); 55 | } 56 | } 57 | 58 | /** UTF-8をグリフタグに変換 59 | * @throws IOException */ 60 | public void convertGlyph(BufferedReader src, BufferedWriter out) throws IOException 61 | { 62 | String line; 63 | char[] arr; 64 | while ((line=src.readLine()) != null) { 65 | arr = line.toCharArray(); 66 | for (int i=0; i"); 82 | } 83 | } 84 | 85 | public static void main(String[] args) 86 | { 87 | StringBuilder log = new StringBuilder(); 88 | try { 89 | GlyphConverter converter = new GlyphConverter(log, "Glyph_JIS1-4"); 90 | BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out)); 91 | converter.printGlyphTag(out, '㎎'); 92 | out.close(); 93 | } catch (IOException e) { 94 | e.printStackTrace(); 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /src/com/github/hmdev/converter/LatinConverter.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.converter; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.File; 5 | import java.io.FileInputStream; 6 | import java.io.IOException; 7 | import java.io.InputStreamReader; 8 | import java.util.HashMap; 9 | 10 | import com.github.hmdev.util.LogAppender; 11 | 12 | 13 | /** 14 | * 「基本ラテン文字のみによる拡張ラテン文字Aの分解表記」の変換クラス 15 | */ 16 | public class LatinConverter 17 | { 18 | /** 分解表記文字列→拡張ラテン文字の対応テーブル */ 19 | HashMap latinMap = new HashMap(); 20 | /** 分解表記文字列→CIDコードの対応テーブル 21 | * int[]{横書き時のグリフのCID, 縦書き時(右90度)のグリフのCID} */ 22 | HashMap latinCidMap = new HashMap(); 23 | 24 | public LatinConverter(File file) throws IOException 25 | { 26 | //String srcFileName = "chuki_latin.txt"; 27 | BufferedReader src = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); 28 | String line; 29 | int lineNum = 0; 30 | try { 31 | while ((line = src.readLine()) != null) { 32 | lineNum++; 33 | if (line.length() > 0 && line.charAt(0)!='#') { 34 | try { 35 | String[] values = line.split("\t"); 36 | char ch = values[1].charAt(0); 37 | if (values[0].length() > 0) latinMap.put(values[0], ch); 38 | if (values.length > 3) latinCidMap.put(ch, new String[]{values[2], values[3]}); 39 | } catch (Exception e) { 40 | LogAppender.error(lineNum, file.getName(), line); 41 | } 42 | } 43 | } 44 | } finally { 45 | src.close(); 46 | } 47 | } 48 | 49 | /** 分解表記の文字単体をUTF-8文字に変換 */ 50 | Character toLatinCharacter(String separated) 51 | { 52 | return latinMap.get(separated); 53 | } 54 | 55 | /** 分解表記を含む英字文字列をUTF-8文字列に変換 */ 56 | public String toLatinString(String separated) 57 | { 58 | char[] ch = separated.toCharArray(); 59 | char[] out = new char[ch.length]; 60 | Character latin; 61 | int outIdx = 0; 62 | for (int i=0; i"); 88 | return buf.toString(); 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /src/com/github/hmdev/converter/PageBreakType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 改ページ情報 3 | */ 4 | package com.github.hmdev.converter; 5 | 6 | public class PageBreakType 7 | { 8 | /** 次のページは画像単ページではない */ 9 | final static public int IMAGE_PAGE_NONE = 0; 10 | /** 単ページ 幅100% */ 11 | final static public int IMAGE_PAGE_W = 1; 12 | /** 単ページ 高さ100% */ 13 | final static public int IMAGE_PAGE_H = 2; 14 | /** 単ページ サイズ変更無し */ 15 | final static public int IMAGE_PAGE_NOFIT = 5; 16 | /** 単ページ サイズに応じて自動調整 未使用? */ 17 | final static public int IMAGE_PAGE_AUTO = 10; 18 | 19 | /** 幅合わせ 画面サイズよりも大きい場合 */ 20 | final static public int IMAGE_INLINE_W = 11; 21 | /** 高さ合わせ 画面サイズよりも大きい場合 */ 22 | final static public int IMAGE_INLINE_H = 12; 23 | 24 | /** 回り込み上 */ 25 | final static public int IMAGE_INLINE_TOP = 20; 26 | /** 回り込み下 */ 27 | final static public int IMAGE_INLINE_BOTTOM = 21; 28 | /** 回り込み上 幅合わせ */ 29 | final static public int IMAGE_INLINE_TOP_W = 25; 30 | /** 回り込み下 幅合わせ */ 31 | final static public int IMAGE_INLINE_BOTTOM_W = 26; 32 | 33 | /** ページタイプ 通常 */ 34 | final static public int PAGE_NORMAL = 0; 35 | /** ページタイプ 中央寄せ */ 36 | final static public int PAGE_MIDDLE = 1; 37 | /** ページタイプ 下付き */ 38 | final static public int PAGE_BOTTOM = 2; 39 | 40 | /** 空のページは無視する */ 41 | boolean ignoreEmptyPage = true; 42 | /** 次のページは左右中央 */ 43 | int pageType = PAGE_NORMAL; 44 | /** 次のページは画像 */ 45 | int imagePageType = IMAGE_PAGE_NONE; 46 | 47 | /** 目次に出力しない */ 48 | boolean noChapter = false; 49 | 50 | /** 画像単一ページの場合の画像ファイル名 */ 51 | String srcFileName = null; 52 | /** 出力時のファイル名 */ 53 | String dstFileName = null; 54 | 55 | /** 56 | * @param ignoreEmptyPage 57 | * @param isMiddle 58 | * @param isImage */ 59 | public PageBreakType(boolean ignoreEmptyPage, int pageType, int imagePageType) 60 | { 61 | this(ignoreEmptyPage, pageType, imagePageType, false); 62 | } 63 | public PageBreakType(boolean ignoreEmptyPage, int pageType, int imagePageType, boolean noChapter) 64 | { 65 | super(); 66 | this.ignoreEmptyPage = ignoreEmptyPage; 67 | this.pageType = pageType; 68 | this.imagePageType = imagePageType; 69 | this.noChapter = noChapter; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/com/github/hmdev/converter/RubyCharType.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.converter; 2 | 3 | public enum RubyCharType 4 | { 5 | NULL, KANJI, ALPHA, FULLALPHA, HIRAGANA, KATAKANA 6 | } 7 | -------------------------------------------------------------------------------- /src/com/github/hmdev/info/BookInfoHistory.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.info; 2 | 3 | /** 前回の変換時の履歴 4 | * 表示編集情報 5 | * */ 6 | public class BookInfoHistory 7 | { 8 | /** 表紙編集情報 */ 9 | public CoverEditInfo coverEditInfo; 10 | /** 表紙ファイル名 フルパスかURL ""なら先頭の挿絵 nullなら表紙無し */ 11 | public String coverFileName; 12 | /** 表紙に使う挿絵の本文内Index -1なら本文内の挿絵は使わない */ 13 | public int coverImageIndex = -1; 14 | /** imageにしたとき用の元ファイルの拡張子 */ 15 | public String coverExt = null; 16 | 17 | public String title; 18 | public String titleAs; 19 | public String creator; 20 | public String creatorAs; 21 | public String publisher; 22 | 23 | public BookInfoHistory(BookInfo bookInfo) 24 | { 25 | this.coverEditInfo = bookInfo.coverEditInfo; 26 | this.coverFileName = bookInfo.coverFileName; 27 | this.coverImageIndex = bookInfo.coverImageIndex; 28 | this.coverExt = bookInfo.coverExt; 29 | 30 | this.title = bookInfo.title; 31 | this.titleAs = bookInfo.titleAs; 32 | this.creator = bookInfo.creator; 33 | this.creatorAs = bookInfo.creatorAs; 34 | this.publisher = bookInfo.publisher; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/com/github/hmdev/info/ChapterInfo.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.info; 2 | 3 | import com.github.hmdev.util.CharUtils; 4 | 5 | /** 目次用の章の情報を格納(仮) */ 6 | public class ChapterInfo 7 | { 8 | /** xhtmlファイルのセクション毎の連番ID */ 9 | String sectionId; 10 | /** 章ID 見出し行につけたspanのID */ 11 | String chapterId; 12 | /** 章名称 */ 13 | String chapterName; 14 | 15 | /** 目次階層レベル */ 16 | public int chapterLevel; 17 | 18 | /** 出力前に階層化開始タグを入れる回数 通常は1回 */ 19 | public int levelStart = 0; 20 | /** 出力後に階層化終了タグを入れる回数 */ 21 | public int levelEnd = 0; 22 | /** navPointを閉じる回数 */ 23 | public int navClose = 1; 24 | 25 | public ChapterInfo(String sectionId, String chapterId, String chapterName, int chapterLevel) 26 | { 27 | this.sectionId = sectionId; 28 | this.chapterId = chapterId; 29 | this.chapterName = chapterName; 30 | this.chapterLevel = chapterLevel; 31 | } 32 | 33 | public String getSectionId() 34 | { 35 | return sectionId; 36 | } 37 | public void setSectionId(String sectionId) 38 | { 39 | this.sectionId = sectionId; 40 | } 41 | 42 | public String getChapterId() 43 | { 44 | return chapterId; 45 | } 46 | public void setChapterId(String chapterId) 47 | { 48 | this.chapterId = chapterId; 49 | } 50 | 51 | public String getChapterName() 52 | { 53 | return chapterName; 54 | } 55 | public void setChapterName(String chapterName) 56 | { 57 | this.chapterName = chapterName; 58 | } 59 | public String getNoTagChapterName() 60 | { 61 | return CharUtils.removeTag(chapterName); 62 | } 63 | 64 | public int getChapterLevel() 65 | { 66 | return chapterLevel; 67 | } 68 | 69 | /** Velocityでループするために配列を返す */ 70 | public int[] getLevelStart() 71 | { 72 | if (this.levelStart == 0) return null; 73 | return new int[this.levelStart]; 74 | } 75 | /** Velocityでループするために配列を返す */ 76 | public int[] getLevelEnd() 77 | { 78 | if (this.levelEnd == 0) return null; 79 | return new int[this.levelEnd]; 80 | } 81 | /** Velocityでループするために配列を返す */ 82 | public int[] getNavClose() 83 | { 84 | if (this.navClose <= 0) return null; 85 | return new int[this.navClose]; 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /src/com/github/hmdev/info/ChapterLineInfo.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.info; 2 | 3 | public class ChapterLineInfo 4 | { 5 | /** 見出しの行番号 */ 6 | public int lineNum; 7 | 8 | /** 見出し種別 */ 9 | public int type; 10 | /** 見出しレベル 自動抽出は+10 */ 11 | public int level; 12 | 13 | public boolean pageBreakChapter = false; 14 | 15 | /** 前の行が空行かどうか */ 16 | public boolean emptyNext; 17 | 18 | /** 目次に使う文字列の開始位置 */ 19 | String chapterName; 20 | 21 | public static final int TYPE_TITLE = 1; 22 | public static final int TYPE_PAGEBREAK = 2; 23 | public static final int TYPE_CHUKI_H = 10; 24 | public static final int TYPE_CHUKI_H1 = 11; 25 | public static final int TYPE_CHUKI_H2 = 12; 26 | public static final int TYPE_CHUKI_H3 = 13; 27 | public static final int TYPE_CHAPTER_NAME = 21; 28 | public static final int TYPE_CHAPTER_NUM = 22; 29 | public static final int TYPE_PATTERN = 30; 30 | 31 | public static final int LEVEL_TITLE = 0; 32 | public static final int LEVEL_SECTION = 1; 33 | public static final int LEVEL_H1 = 1; 34 | public static final int LEVEL_H2 = 2; 35 | public static final int LEVEL_H3 = 3; 36 | 37 | public ChapterLineInfo(int lineNum, int type, boolean pageBreak, int level, boolean emptyLineNext) 38 | { 39 | this(lineNum, type, pageBreak, level, emptyLineNext, null); 40 | } 41 | public ChapterLineInfo(int lineNum, int type, boolean pageBreak, int level, boolean emptyLineNext, String chapterName) 42 | { 43 | this.lineNum = lineNum; 44 | this.type = type; 45 | this.pageBreakChapter = pageBreak; 46 | this.level = level; 47 | this.emptyNext = emptyLineNext; 48 | this.chapterName = chapterName; 49 | } 50 | 51 | @Override 52 | public String toString() 53 | { 54 | return this.chapterName; 55 | } 56 | 57 | public String getTypeId() 58 | { 59 | switch (this.type) { 60 | case TYPE_TITLE: return "題"; 61 | case TYPE_PAGEBREAK: return ""; //一覧で表示しない 62 | case TYPE_CHUKI_H: return "見"; 63 | case TYPE_CHUKI_H1: return "大"; 64 | case TYPE_CHUKI_H2: return "中"; 65 | case TYPE_CHUKI_H3: return "小"; 66 | case TYPE_CHAPTER_NAME: return "章"; 67 | case TYPE_CHAPTER_NUM: return "数"; 68 | case TYPE_PATTERN: return "他"; 69 | } 70 | return ""; 71 | } 72 | static public int getChapterType(char typeId) 73 | { 74 | switch (typeId) { 75 | case '題': return TYPE_TITLE; 76 | case '改': return TYPE_PAGEBREAK; 77 | case '見': return TYPE_CHUKI_H; 78 | case '大': return TYPE_CHUKI_H1; 79 | case '中': return TYPE_CHUKI_H2; 80 | case '小': return TYPE_CHUKI_H3; 81 | case '章': return TYPE_CHAPTER_NAME; 82 | case '数': return TYPE_CHAPTER_NUM; 83 | case '他': return TYPE_PATTERN; 84 | } 85 | return 0; 86 | } 87 | static public int getLevel(int type) 88 | { 89 | switch (type) { 90 | case TYPE_TITLE: return LEVEL_TITLE; 91 | case TYPE_PAGEBREAK: return LEVEL_SECTION; 92 | case TYPE_CHUKI_H1: return LEVEL_H1; 93 | case TYPE_CHUKI_H2: return LEVEL_H2; 94 | case TYPE_CHUKI_H3: return LEVEL_H3; 95 | case TYPE_CHAPTER_NUM: return LEVEL_H2; 96 | } 97 | return LEVEL_H1; 98 | } 99 | 100 | /** 章名や数字やパターンでマッチした行ならtrue */ 101 | public boolean isPattern() 102 | { 103 | switch (type) { 104 | case TYPE_TITLE: 105 | case TYPE_PAGEBREAK: 106 | case TYPE_CHUKI_H1: 107 | case TYPE_CHUKI_H2: 108 | case TYPE_CHUKI_H3: return false; 109 | } 110 | return true; 111 | } 112 | 113 | public String getChapterName() 114 | { 115 | return this.chapterName; 116 | } 117 | public void setChapterName(String chapterName) 118 | { 119 | this.chapterName = chapterName; 120 | } 121 | public void joinChapterName(String chapterName) 122 | { 123 | if (this.chapterName == null) this.chapterName = chapterName; 124 | else this.chapterName = this.chapterName+" "+chapterName; 125 | } 126 | } 127 | -------------------------------------------------------------------------------- /src/com/github/hmdev/info/CoverEditInfo.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.info; 2 | 3 | public class CoverEditInfo 4 | { 5 | public int panelWidth; 6 | public int panelHeight; 7 | public int fitType; 8 | public double scale; 9 | public double offsetX; 10 | public double offsetY; 11 | public double visibleWidth; 12 | 13 | public CoverEditInfo(int panelWidth, int panelHeight, int fitType, double scale, double offsetX, double offsetY, double visibleWidth) 14 | { 15 | this.panelWidth = panelWidth; 16 | this.panelHeight = panelHeight; 17 | this.fitType = fitType; 18 | this.scale = scale; 19 | this.offsetX = offsetX; 20 | this.offsetY = offsetY; 21 | this.visibleWidth = visibleWidth; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/com/github/hmdev/info/GaijiInfo.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.info; 2 | 3 | import java.io.File; 4 | 5 | /** 外字フォントとクラス名を格納 6 | * toStringで名称を返す */ 7 | public class GaijiInfo 8 | { 9 | String className; 10 | File gaijiFile; 11 | 12 | public GaijiInfo(String className, File gaijiFile) 13 | { 14 | this.className = className; 15 | this.gaijiFile = gaijiFile; 16 | } 17 | 18 | public String getFileName() 19 | { 20 | return gaijiFile.getName(); 21 | } 22 | public File getFile() 23 | { 24 | return gaijiFile; 25 | } 26 | public void setFile(File gaijiFile) 27 | { 28 | this.gaijiFile = gaijiFile; 29 | } 30 | public String getClassName() 31 | { 32 | return className; 33 | } 34 | public void setClassName(String className) 35 | { 36 | this.className = className; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/com/github/hmdev/info/ImageInfo.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.info; 2 | 3 | import java.awt.image.BufferedImage; 4 | import java.io.BufferedInputStream; 5 | import java.io.File; 6 | import java.io.FileInputStream; 7 | import java.io.IOException; 8 | import java.io.InputStream; 9 | import java.util.Iterator; 10 | 11 | import javax.imageio.ImageIO; 12 | import javax.imageio.ImageReader; 13 | import javax.imageio.stream.ImageInputStream; 14 | 15 | /** 画像情報 16 | * Velocity内でも利用するための情報も格納する */ 17 | public class ImageInfo 18 | { 19 | /** ファイルのID 0001 */ 20 | String id; 21 | /** 出力ファイル名 拡張子付き 0001.png */ 22 | String outFileName; 23 | /** 画像フォーマット png jpg gif */ 24 | String ext; 25 | 26 | /** 画像幅 */ 27 | int width = -1; 28 | /** 画像高さ */ 29 | int height = -1; 30 | 31 | /** 出力画像幅 */ 32 | int outWidth = -1; 33 | /** 出力画像高さ */ 34 | int outHeight = -1; 35 | 36 | /** Zip内ファイルentryの位置 */ 37 | int zipIndex = -1; 38 | 39 | /** カバー画像ならtrue */ 40 | boolean isCover; 41 | 42 | /** 回転角度 右 90 左 -90 */ 43 | public int rotateAngle = 0; 44 | 45 | /** 画像の情報を生成 46 | * @param ext png jpg gif の文字列 */ 47 | public ImageInfo(String ext, int width, int height, int zipIndex) 48 | { 49 | super(); 50 | this.ext = ext.toLowerCase(); 51 | this.width = width; 52 | this.height = height; 53 | this.zipIndex = zipIndex; 54 | } 55 | 56 | /** ファイルから画像情報を生成 */ 57 | static public ImageInfo getImageInfo(File imageFile) throws IOException 58 | { 59 | BufferedInputStream bis = new BufferedInputStream(new FileInputStream(imageFile)); 60 | ImageInfo imageInfo = ImageInfo.getImageInfo(bis, -1); 61 | bis.close(); 62 | return imageInfo; 63 | } 64 | 65 | /** 画像ストリームから画像情報を生成 */ 66 | static public ImageInfo getImageInfo(InputStream is) throws IOException 67 | { 68 | return getImageInfo(is, -1); 69 | } 70 | 71 | 72 | 73 | /** 画像ストリームから画像情報を生成 74 | * @param zipIndex Zipファイルの場合はエントリの位置 (再読込や読み飛ばし時のファイル名比較の省略用) 75 | * @throws IOException */ 76 | static public ImageInfo getImageInfo(InputStream is, int zipIndex) throws IOException 77 | { 78 | ImageInfo imageInfo = null; 79 | ImageInputStream iis = ImageIO.createImageInputStream(is); 80 | Iterator readers = ImageIO.getImageReaders(iis); 81 | if (readers.hasNext()) { 82 | ImageReader reader = readers.next(); 83 | if (readers.hasNext() && reader.getClass().getName().endsWith("CLibPNGImageReader")) readers.next(); 84 | reader.setInput(iis); 85 | String ext = reader.getFormatName(); 86 | imageInfo = new ImageInfo(ext, reader.getWidth(0), reader.getHeight(0), zipIndex); 87 | reader.dispose(); 88 | } 89 | return imageInfo; 90 | } 91 | 92 | static public ImageInfo getImageInfo(String ext, BufferedImage image, int zipIndex) throws IOException 93 | { 94 | return new ImageInfo(ext, image.getWidth(), image.getHeight(), zipIndex); 95 | } 96 | 97 | public String getId() 98 | { 99 | return id; 100 | } 101 | 102 | public void setId(String id) 103 | { 104 | this.id = id; 105 | } 106 | 107 | public String getOutFileName() 108 | { 109 | return outFileName; 110 | } 111 | 112 | public void setOutFileName(String file) 113 | { 114 | this.outFileName = file; 115 | } 116 | 117 | public void setExt(String ext) 118 | { 119 | this.ext = ext; 120 | } 121 | public String getExt() 122 | { 123 | return this.ext; 124 | } 125 | /** mime形式(image/png)の形式フォーマット文字列を返却 */ 126 | public String getFormat() 127 | { 128 | return "image/"+(this.ext.equals("jpg")?"jpeg":this.ext); 129 | } 130 | 131 | public boolean getIsCover() 132 | { 133 | return this.isCover; 134 | } 135 | 136 | public void setIsCover(boolean isCover) 137 | { 138 | this.isCover = isCover; 139 | } 140 | public int getWidth() 141 | { 142 | return width; 143 | } 144 | public void setWidth(int width) 145 | { 146 | this.width = width; 147 | } 148 | public int getHeight() 149 | { 150 | return height; 151 | } 152 | public void setHeight(int height) 153 | { 154 | this.height = height; 155 | } 156 | 157 | public int getOutWidth() 158 | { 159 | return outWidth; 160 | } 161 | public void setOutWidth(int outWidth) 162 | { 163 | this.outWidth = outWidth; 164 | } 165 | public int getOutHeight() 166 | { 167 | return outHeight; 168 | } 169 | public void setOutHeight(int outHeight) 170 | { 171 | this.outHeight = outHeight; 172 | } 173 | 174 | public int getZipIndex() 175 | { 176 | return zipIndex; 177 | } 178 | public void setZipIndex(int zipIndex) 179 | { 180 | this.zipIndex = zipIndex; 181 | } 182 | } 183 | -------------------------------------------------------------------------------- /src/com/github/hmdev/info/ProfileInfo.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.info; 2 | 3 | import java.io.File; 4 | import java.io.FileNotFoundException; 5 | import java.io.FileOutputStream; 6 | import java.io.IOException; 7 | import java.util.Properties; 8 | 9 | /** iniファイルの設定を格納するクラス 10 | * toStringで名称を返す */ 11 | public class ProfileInfo 12 | { 13 | String name; 14 | String fileName; 15 | Properties props; 16 | 17 | public ProfileInfo(String fileName, String name, Properties props) 18 | { 19 | this.fileName = fileName; 20 | this.name = name; 21 | this.props = props; 22 | } 23 | 24 | /** 更新 */ 25 | public void update(File profilePath) throws FileNotFoundException, IOException 26 | { 27 | if (fileName != null) { 28 | FileOutputStream fos = new FileOutputStream(profilePath+"/"+fileName); 29 | this.props.store(fos, "AozoraEpub3 Profile"); 30 | fos.close(); 31 | } 32 | } 33 | 34 | @Override 35 | public String toString() 36 | { 37 | return name; 38 | } 39 | 40 | public String getFileName() 41 | { 42 | return fileName; 43 | } 44 | public void setFileName(String fileName) 45 | { 46 | this.fileName = fileName; 47 | } 48 | public String getName() 49 | { 50 | return name; 51 | } 52 | public void setName(String name) 53 | { 54 | this.name = name; 55 | } 56 | 57 | public Properties getProperties() 58 | { 59 | return props; 60 | } 61 | public void setProps(Properties props) 62 | { 63 | this.props = props; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/com/github/hmdev/info/SectionInfo.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.info; 2 | 3 | /** セクションの情報 xhtmlに対応 */ 4 | public class SectionInfo 5 | { 6 | /** セクションID 0001~ */ 7 | public String sectionId; 8 | 9 | /** 画像のみのページ時にtrue */ 10 | public boolean imagePage = false; 11 | 12 | /** 単ページサイズ指定無し */ 13 | final static public int IMAGE_SIZE_TYPE_AUTO = 1; 14 | /** 単ページサイズ高さ指定 */ 15 | final static public int IMAGE_SIZE_TYPE_HEIGHT = 2; 16 | /** 単ページサイズ画面縦横比 */ 17 | final static public int IMAGE_SIZE_TYPE_ASPECT = 3; 18 | 19 | /** 画像のみのページで高さ%指定 -1なら指定無し */ 20 | public double imageHeight = -1; 21 | /** 画像のみのページで幅に合わる場合にtrue */ 22 | public boolean imageFitW = false; 23 | /** 画像のみのページで高さに合わる場合にtrue */ 24 | public boolean imageFitH = false; 25 | 26 | /** ページ左右中央ならtrue */ 27 | public boolean isMiddle = false; 28 | 29 | /** ページ左ならtrue */ 30 | public boolean isBottom = false; 31 | 32 | /** セクション開始行 */ 33 | public int startLine = 0; 34 | 35 | /** セクション終了行 */ 36 | public int endLine = 0; 37 | 38 | public SectionInfo(String sectionId) 39 | { 40 | this.sectionId = sectionId; 41 | } 42 | 43 | public String getSectionId() 44 | { 45 | return sectionId; 46 | } 47 | public void setSectionId(String sectionId) 48 | { 49 | this.sectionId = sectionId; 50 | } 51 | 52 | public boolean isImagePage() 53 | { 54 | return imagePage; 55 | } 56 | public void setImagePage(boolean imagePage) 57 | { 58 | this.imagePage = imagePage; 59 | } 60 | 61 | public double getImageHeight() 62 | { 63 | return imageHeight; 64 | } 65 | public void setImageHeight(double imageHeight) 66 | { 67 | this.imageHeight = imageHeight; 68 | } 69 | public double getImageHeightPercent() 70 | { 71 | return (int)(imageHeight*1000)/10.0; 72 | } 73 | public double getImageHeightPadding() 74 | { 75 | return (int)((1-imageHeight)*1000)/20.0; 76 | } 77 | 78 | public boolean isImageFitW() 79 | { 80 | return imageFitW; 81 | } 82 | public void setImageFitW(boolean imageFitW) 83 | { 84 | this.imageFitW = imageFitW; 85 | } 86 | 87 | public boolean isImageFitH() 88 | { 89 | return imageFitH; 90 | } 91 | public void setImageFitH(boolean imageFitH) 92 | { 93 | this.imageFitH = imageFitH; 94 | } 95 | 96 | public boolean isMiddle() 97 | { 98 | return isMiddle; 99 | } 100 | public void setMiddle(boolean isMiddle) 101 | { 102 | this.isMiddle = isMiddle; 103 | } 104 | 105 | public boolean isBottom() 106 | { 107 | return isBottom; 108 | } 109 | public void setBottom(boolean isBottom) 110 | { 111 | this.isBottom = isBottom; 112 | } 113 | 114 | public int getStartLine() 115 | { 116 | return startLine; 117 | } 118 | public void setStartLine(int startLine) 119 | { 120 | this.startLine = startLine; 121 | } 122 | 123 | public int getEndLine() 124 | { 125 | return endLine; 126 | } 127 | public void setEndLine(int endLine) 128 | { 129 | this.endLine = endLine; 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /src/com/github/hmdev/swing/JProfileDialog.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.swing; 2 | 3 | import java.awt.Dialog; 4 | import java.awt.Dimension; 5 | import java.awt.FlowLayout; 6 | import java.awt.GridLayout; 7 | import java.awt.Image; 8 | import java.awt.Point; 9 | import java.awt.event.ActionEvent; 10 | import java.awt.event.ActionListener; 11 | import java.net.MalformedURLException; 12 | import java.net.URL; 13 | 14 | import javax.swing.BorderFactory; 15 | import javax.swing.BoxLayout; 16 | import javax.swing.ImageIcon; 17 | import javax.swing.JButton; 18 | import javax.swing.JDialog; 19 | import javax.swing.JLabel; 20 | import javax.swing.JOptionPane; 21 | import javax.swing.JPanel; 22 | import javax.swing.JTextField; 23 | import javax.swing.border.Border; 24 | 25 | /** プロファイル新規作成・編集ダイアログ */ 26 | public class JProfileDialog extends JDialog 27 | { 28 | 29 | private static final long serialVersionUID = 1L; 30 | 31 | JTextField jTextProfileName; 32 | 33 | JButton jButtonCreate; 34 | JButton jButtonEdit; 35 | JButton jButtonDelete; 36 | JButton jButtonCancel; 37 | 38 | String orgName = ""; 39 | 40 | public JProfileDialog(Image iconImage, String imageURLPath) 41 | { 42 | this.setIconImage(iconImage); 43 | this.setModalityType(Dialog.ModalityType.TOOLKIT_MODAL); 44 | this.setSize(new Dimension(360, 128)); 45 | this.setResizable(false); 46 | this.setTitle("プロファイル設定"); 47 | this.setLayout(new GridLayout()); 48 | 49 | JPanel panel; 50 | Border paddingButton = BorderFactory.createEmptyBorder(4, 8, 4, 8); 51 | Border padding4H = BorderFactory.createEmptyBorder(0, 4, 0, 4); 52 | 53 | JPanel outer = new JPanel(); 54 | outer.setLayout(new BoxLayout(outer, BoxLayout.Y_AXIS)); 55 | outer.setBorder(BorderFactory.createEmptyBorder(3, 6, 0, 6)); 56 | this.add(outer); 57 | 58 | panel = new JPanel(); 59 | panel.setLayout(new FlowLayout(FlowLayout.LEFT)); 60 | outer.add(panel); 61 | panel.add(new JLabel("プロファイル名: ")); 62 | panel = new JPanel(); 63 | panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); 64 | outer.add(panel); 65 | jTextProfileName = new JTextField(); 66 | jTextProfileName.setMinimumSize(new Dimension(100, 22)); 67 | jTextProfileName.setPreferredSize(new Dimension(300, 22)); 68 | jTextProfileName.setMaximumSize(new Dimension(480, 26)); 69 | panel.add(jTextProfileName); 70 | 71 | JPanel buttonPanel = new JPanel(); 72 | buttonPanel.setLayout(new FlowLayout()); 73 | outer.add(buttonPanel); 74 | 75 | jButtonCreate = new JButton("新規作成"); 76 | jButtonCreate.setBorder(paddingButton); 77 | //jButtonCreate.setPreferredSize(new Dimension(80, 26)); 78 | try { jButtonCreate.setIcon(new ImageIcon(new URL(imageURLPath+"add.png"))); } catch (MalformedURLException e1) {} 79 | jButtonCreate.addActionListener(new ActionListener() { 80 | public void actionPerformed(ActionEvent e) { 81 | if (linstener != null) linstener.actionPerformed(new ActionEvent(jTextProfileName.getText(), 1, "create")); 82 | setVisible(false); 83 | } 84 | }); 85 | panel = new JPanel(); 86 | panel.setBorder(padding4H); 87 | panel.add(jButtonCreate); 88 | buttonPanel.add(panel); 89 | 90 | jButtonEdit = new JButton("名称変更"); 91 | jButtonEdit.setBorder(paddingButton); 92 | //jButtonEdit.setPreferredSize(new Dimension(80, 26)); 93 | try { jButtonEdit.setIcon(new ImageIcon(new URL(imageURLPath+"edit.png"))); } catch (MalformedURLException e1) {} 94 | jButtonEdit.addActionListener(new ActionListener() { 95 | public void actionPerformed(ActionEvent e) { 96 | if (linstener != null) linstener.actionPerformed(new ActionEvent(jTextProfileName.getText(), 2, "edit")); 97 | setVisible(false); 98 | } 99 | }); 100 | panel = new JPanel(); 101 | panel.setBorder(padding4H); 102 | panel.add(jButtonEdit); 103 | buttonPanel.add(panel); 104 | 105 | jButtonDelete = new JButton("削除"); 106 | jButtonDelete.setBorder(paddingButton); 107 | //jButtonDelete.setPreferredSize(new Dimension(80, 26)); 108 | try { jButtonDelete.setIcon(new ImageIcon(new URL(imageURLPath+"delete.png"))); } catch (MalformedURLException e1) {} 109 | jButtonDelete.addActionListener(new ActionListener() { 110 | public void actionPerformed(ActionEvent e) { 111 | if (linstener != null) { 112 | int ret = JOptionPane.showConfirmDialog(jButtonDelete, orgName+" を削除しますか?", "プロファイル削除", JOptionPane.YES_NO_OPTION); 113 | if (ret == JOptionPane.YES_OPTION) { 114 | linstener.actionPerformed(new ActionEvent(jTextProfileName.getText(), 3, "delete")); 115 | setVisible(false); 116 | } 117 | } 118 | } 119 | }); 120 | panel = new JPanel(); 121 | panel.setBorder(padding4H); 122 | panel.add(jButtonDelete); 123 | buttonPanel.add(panel); 124 | 125 | jButtonCancel = new JButton("キャンセル"); 126 | jButtonCancel.setBorder(paddingButton); 127 | //jButtonCancel.setPreferredSize(new Dimension(80, 26)); 128 | try { jButtonCancel.setIcon(new ImageIcon(new URL(imageURLPath+"cross.png"))); } catch (MalformedURLException e1) {} 129 | jButtonCancel.addActionListener(new ActionListener() { 130 | public void actionPerformed(ActionEvent e) { 131 | jTextProfileName.setText(""); 132 | setVisible(false); 133 | } 134 | }); 135 | panel = new JPanel(); 136 | panel.setBorder(padding4H); 137 | panel.add(jButtonCancel); 138 | buttonPanel.add(panel); 139 | } 140 | 141 | public void showCreate(Point location, String name) 142 | { 143 | this.jButtonCreate.setVisible(true); 144 | this.jButtonEdit.setVisible(false); 145 | this.jButtonDelete.setVisible(false); 146 | 147 | this.jTextProfileName.setText(name); 148 | this.setLocation(location.x+16, location.y+8); 149 | this.setVisible(true); 150 | } 151 | 152 | public void showEdit(Point location, String name, boolean deletable) 153 | { 154 | this.jButtonCreate.setVisible(false); 155 | this.jButtonEdit.setVisible(true); 156 | this.jButtonDelete.setVisible(true); 157 | this.jButtonDelete.setEnabled(deletable); 158 | 159 | this.orgName = name; 160 | this.jTextProfileName.setText(name); 161 | this.setLocation(location.x+48, location.y+8); 162 | this.setVisible(true); 163 | } 164 | 165 | //////////////////////////////////////////////////////////////// 166 | ActionListener linstener; 167 | public void addActionListener(ActionListener linstener) 168 | { 169 | this.linstener = linstener; 170 | } 171 | 172 | } 173 | -------------------------------------------------------------------------------- /src/com/github/hmdev/swing/JTocTable.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.swing; 2 | 3 | import java.awt.Color; 4 | import java.awt.Component; 5 | 6 | import javax.swing.JTable; 7 | import javax.swing.event.TableModelEvent; 8 | import javax.swing.event.TableModelListener; 9 | import javax.swing.table.DefaultTableModel; 10 | import javax.swing.table.TableCellRenderer; 11 | import javax.swing.table.TableColumnModel; 12 | 13 | import com.github.hmdev.info.ChapterLineInfo; 14 | 15 | public class JTocTable extends JTable 16 | { 17 | private static final long serialVersionUID = 1L; 18 | 19 | TocTableDataModel model = null; 20 | 21 | public JTocTable() 22 | { 23 | super(); 24 | this.model = new TocTableDataModel(new String[]{"", "", "", "行", "目次名称"}, 0, this); 25 | super.setModel(this.model); 26 | TableColumnModel columnModel = this.getColumnModel(); 27 | columnModel.getColumn(0).setMaxWidth(22); 28 | columnModel.getColumn(1).setMaxWidth(30); 29 | columnModel.getColumn(1).setPreferredWidth(20); 30 | columnModel.getColumn(2).setMaxWidth(30); 31 | columnModel.getColumn(2).setPreferredWidth(20); 32 | columnModel.getColumn(3).setMaxWidth(60); 33 | columnModel.getColumn(3).setPreferredWidth(35); 34 | 35 | this.model.addTableModelListener(new TableModelListener() { 36 | @Override 37 | public void tableChanged(TableModelEvent e) 38 | { 39 | model.table.repaint(); 40 | } 41 | }); 42 | } 43 | 44 | @Override 45 | public TocTableDataModel getModel() 46 | { 47 | return this.model; 48 | } 49 | 50 | @Override 51 | public Component prepareRenderer(TableCellRenderer renderer, int row, int column) 52 | { 53 | Component component = super.prepareRenderer(renderer, row, column); 54 | if (this.model.isSelected(row)) component.setForeground(Color.BLACK); 55 | else component.setForeground(Color.LIGHT_GRAY); 56 | return component; 57 | } 58 | 59 | public class TocTableDataModel extends DefaultTableModel 60 | { 61 | private static final long serialVersionUID = 1L; 62 | 63 | JTocTable table; 64 | 65 | TocTableDataModel(String[] columnNames, int rowNum, JTocTable table){ 66 | super(columnNames, rowNum); 67 | this.table = table; 68 | } 69 | @SuppressWarnings({ "unchecked", "rawtypes" }) 70 | public Class getColumnClass(int col) { 71 | switch (col) { 72 | case 0: return Boolean.class; 73 | case 3: return Integer.class; 74 | } 75 | return String.class; 76 | } 77 | @Override 78 | public boolean isCellEditable(int row, int col) 79 | { 80 | switch (col) { 81 | case 0: 82 | case 4: 83 | return true; 84 | } 85 | return false; 86 | } 87 | 88 | public void setSelected(int row, boolean select) 89 | { 90 | this.setValueAt(select, row, 0); 91 | table.repaint(); 92 | } 93 | public boolean isSelected(int row) 94 | { 95 | return (Boolean)this.getValueAt(row, 0); 96 | } 97 | public boolean isPageBreak(int row) 98 | { 99 | return "改".equals((String)this.getValueAt(row, 1)); 100 | } 101 | public int getChapterType(int row) 102 | { 103 | String value = (String)this.getValueAt(row, 2); 104 | if (value.length() == 0) return 0; 105 | return ChapterLineInfo.getChapterType(value.charAt(0)); 106 | } 107 | public int getLineNum(int row) 108 | { 109 | return (Integer)this.getValueAt(row, 3); 110 | } 111 | public String getTocName(int row) 112 | { 113 | return (String)this.getValueAt(row, 4); 114 | } 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /src/com/github/hmdev/swing/NarrowTitledBorder.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.swing; 2 | 3 | import java.awt.Component; 4 | import java.awt.Insets; 5 | 6 | import javax.swing.border.TitledBorder; 7 | 8 | public class NarrowTitledBorder extends TitledBorder 9 | { 10 | private static final long serialVersionUID = 1L; 11 | 12 | public NarrowTitledBorder(String title) 13 | { 14 | super(title); 15 | } 16 | 17 | @Override 18 | public Insets getBorderInsets(Component c) 19 | { 20 | return new Insets(15, 7, 6, 7); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/github/hmdev/util/FileNameComparator.java: -------------------------------------------------------------------------------- 1 | package com.github.hmdev.util; 2 | 3 | import java.util.Comparator; 4 | 5 | /** ファイル名並び替え用 */ 6 | public class FileNameComparator implements Comparator 7 | { 8 | @Override 9 | public int compare(String o1, String o2) 10 | { 11 | char[] c1 = o1.toLowerCase().toCharArray(); 12 | char[] c2 = o2.toLowerCase().toCharArray(); 13 | int len = Math.min(c1.length, c2.length); 14 | int diff; 15 | for (int i=0; i 1) { 37 | this.idx = new int [values.length-1]; 38 | for (int i=0; i vecFileName = new Vector<>(); 75 | //ファイル名取得してImageInfoのIDを設定 76 | int pageNum = 0; 77 | for (String srcFilePath : this.imageInfoReader.getImageFileNames()) { 78 | if (this.canceled) return; 79 | pageNum++; 80 | vecFileName.add(this.getImageFilePath(srcFilePath.trim(), pageNum)); 81 | } 82 | 83 | //画像を出力して出力サイズを取得 84 | zos.setLevel(0); 85 | //サブパスの文字長 86 | int archivePathLength = 0; 87 | if (this.bookInfo.textEntryName != null) archivePathLength = this.bookInfo.textEntryName.indexOf('/')+1; 88 | 89 | if ("rar".equals(srcExt)) { 90 | Archive archive = new Archive(srcFile); 91 | try { 92 | for (FileHeader fileHeader : archive.getFileHeaders()) { 93 | if (!fileHeader.isDirectory()) { 94 | String entryName = fileHeader.getFileNameW(); 95 | if (entryName.length() == 0) entryName = fileHeader.getFileNameString(); 96 | entryName = entryName.replace('\\', '/'); 97 | //アーカイブ内のサブフォルダは除外 98 | String srcImageFileName = entryName.substring(archivePathLength); 99 | InputStream is = archive.getInputStream(fileHeader); 100 | try { 101 | this.writeArchiveImage(srcImageFileName, is); 102 | } finally { 103 | is.close(); 104 | } 105 | } 106 | if (this.canceled) return; 107 | } 108 | } finally { archive.close(); } 109 | } else { 110 | ZipArchiveInputStream zis = new ZipArchiveInputStream(new BufferedInputStream(new FileInputStream(srcFile), 65536), "MS932", false); 111 | try { 112 | ArchiveEntry entry; 113 | while( (entry = zis.getNextZipEntry()) != null ) { 114 | //アーカイブ内のサブフォルダは除外 115 | String srcImageFileName = entry.getName().substring(archivePathLength); 116 | this.writeArchiveImage(srcImageFileName, zis); 117 | if (this.canceled) return; 118 | } 119 | } finally { zis.close(); } 120 | } 121 | 122 | //画像xhtmlを出力 123 | zos.setLevel(9); 124 | pageNum = 0; 125 | for (String srcFilePath : this.imageInfoReader.getImageFileNames()) { 126 | if (this.canceled) return; 127 | String fileName = vecFileName.get(pageNum++); 128 | if (fileName != null) { 129 | if (isSvgImage) { 130 | this.printSvgImageSection(srcFilePath); 131 | } else { 132 | this.startImageSection(srcFilePath); 133 | bw.write(String.format(converter.getChukiValue("画像")[0], fileName)); 134 | bw.write(converter.getChukiValue("画像終わり")[0]); 135 | bw.flush(); 136 | this.endSection(); 137 | } 138 | } 139 | if (this.jProgressBar != null) this.jProgressBar.setValue(this.jProgressBar.getValue()+1); 140 | if (this.canceled) return; 141 | } 142 | } 143 | 144 | /** セクション開始. 145 | * @throws IOException */ 146 | private void startImageSection(String srcImageFilePath) throws IOException 147 | { 148 | this.sectionIndex++; 149 | String sectionId = decimalFormat.format(this.sectionIndex); 150 | //package.opf用にファイル名 151 | SectionInfo sectionInfo = new SectionInfo(sectionId); 152 | 153 | //画像専用指定 154 | sectionInfo.setImagePage(true); 155 | //画像サイズが横長なら幅に合わせる 156 | ImageInfo imageInfo = this.imageInfoReader.getImageInfo(srcImageFilePath); 157 | if (imageInfo != null) { 158 | if ((double)imageInfo.getWidth()/imageInfo.getHeight() >= (double)this.dispW/this.dispH) { 159 | if (this.rotateAngle != 0 && this.dispW < this.dispH && (double)imageInfo.getHeight()/imageInfo.getWidth() < (double)this.dispW/this.dispH) { //縦長画面で横長 160 | imageInfo.rotateAngle = this.rotateAngle; 161 | if (this.imageSizeType != SectionInfo.IMAGE_SIZE_TYPE_AUTO) sectionInfo.setImageFitH(true); 162 | } else { 163 | //高さでサイズ調整する場合は高さの%指定 164 | if (this.imageSizeType == SectionInfo.IMAGE_SIZE_TYPE_HEIGHT) sectionInfo.setImageHeight(((double)imageInfo.getHeight()/imageInfo.getWidth())*((double)this.dispW/this.dispH)); 165 | else if (this.imageSizeType == SectionInfo.IMAGE_SIZE_TYPE_ASPECT) sectionInfo.setImageFitW(true); 166 | } 167 | } 168 | else { 169 | if (this.rotateAngle != 0 && this.dispW > this.dispH && (double)imageInfo.getHeight()/imageInfo.getWidth() > (double)this.dispW/this.dispH) { //横長画面で縦長 170 | imageInfo.rotateAngle = this.rotateAngle; 171 | //高さでサイズ調整する場合は高さの%指定 172 | if (this.imageSizeType == SectionInfo.IMAGE_SIZE_TYPE_HEIGHT) sectionInfo.setImageHeight(((double)imageInfo.getHeight()/imageInfo.getWidth())*((double)this.dispW/this.dispH)); 173 | else if (this.imageSizeType == SectionInfo.IMAGE_SIZE_TYPE_ASPECT) sectionInfo.setImageFitW(true); 174 | } else { 175 | if (this.imageSizeType != SectionInfo.IMAGE_SIZE_TYPE_AUTO) sectionInfo.setImageFitH(true); 176 | } 177 | } 178 | } 179 | 180 | this.sectionInfos.add(sectionInfo); 181 | if (this.sectionIndex ==1 || this.sectionIndex % 5 == 0) this.addChapter(null, ""+this.sectionIndex, 0); //目次追加 182 | super.zos.putArchiveEntry(new ZipArchiveEntry(OPS_PATH+XHTML_PATH+sectionId+".xhtml")); 183 | //ヘッダ出力 184 | BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(super.zos, "UTF-8")); 185 | //出力開始するセクションに対応したSectionInfoを設定 186 | this.velocityContext.put("sectionInfo", sectionInfo); 187 | Velocity.getTemplate(this.templatePath+OPS_PATH+XHTML_PATH+XHTML_HEADER_VM).merge(this.velocityContext, bw); 188 | bw.flush(); 189 | } 190 | 191 | /** SVGでセクション出力 */ 192 | private void printSvgImageSection(String srcImageFilePath) throws IOException 193 | { 194 | this.sectionIndex++; 195 | String sectionId = decimalFormat.format(this.sectionIndex); 196 | //package.opf用にファイル名 197 | SectionInfo sectionInfo = new SectionInfo(sectionId); 198 | ImageInfo imageInfo = this.imageInfoReader.getImageInfo(srcImageFilePath); 199 | 200 | //画像専用指定 201 | sectionInfo.setImagePage(true); 202 | this.sectionInfos.add(sectionInfo); 203 | if (this.sectionIndex ==1 || this.sectionIndex % 5 == 0) this.addChapter(null, ""+this.sectionIndex, 0); //目次追加 204 | super.zos.putArchiveEntry(new ZipArchiveEntry(OPS_PATH+XHTML_PATH+sectionId+".xhtml")); 205 | //ヘッダ出力 206 | BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(super.zos, "UTF-8")); 207 | //出力開始するセクションに対応したSectionInfoを設定 208 | this.velocityContext.put("sectionInfo", sectionInfo); 209 | this.velocityContext.put("imageInfo", imageInfo); 210 | Velocity.getTemplate(this.templatePath+OPS_PATH+XHTML_PATH+SVG_IMAGE_VM).merge(this.velocityContext, bw); 211 | bw.flush(); 212 | } 213 | 214 | @Override 215 | public String getImageFilePath(String srcImageFileName, int lineNum) 216 | { 217 | boolean isCover = false; 218 | this.imageIndex++; //xhtmlと画像ファイル名の番号を合わせるため先に++ 219 | String ext = ""; 220 | try { ext = srcImageFileName.substring(srcImageFileName.lastIndexOf('.')+1).toLowerCase(); } catch (Exception e) {} 221 | String imageId = decimalFormat.format(this.imageIndex); 222 | String imageFileName = IMAGES_PATH+imageId+"."+ext; 223 | ImageInfo imageInfo; 224 | try { 225 | imageInfo = this.imageInfoReader.getImageInfo(srcImageFileName); 226 | imageInfo.setId(imageId); 227 | imageInfo.setOutFileName(imageId+"."+ext); 228 | if (!imageInfo.getExt().matches("^(png|jpeg|gif|jpg)$")) { 229 | LogAppender.error(lineNum, "画像フォーマットエラー", srcImageFileName); 230 | return null; 231 | } 232 | if (this.imageIndex-1 == bookInfo.coverImageIndex) { 233 | imageInfo.setIsCover(true); 234 | isCover = true; 235 | } 236 | this.imageInfos.add(imageInfo); 237 | 238 | } catch (IOException e) { 239 | e.printStackTrace(); 240 | return null; 241 | } 242 | //先頭に表紙ページ移動の場合でカバーページならnullを返して本文中から削除 243 | if (bookInfo.insertCoverPage && isCover) return null; 244 | return "../"+imageFileName; 245 | } 246 | } 247 | -------------------------------------------------------------------------------- /src/images/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/add.png -------------------------------------------------------------------------------- /src/images/apply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/apply.png -------------------------------------------------------------------------------- /src/images/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/arrow_down.png -------------------------------------------------------------------------------- /src/images/arrow_horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/arrow_horizontal.png -------------------------------------------------------------------------------- /src/images/arrow_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/arrow_out.png -------------------------------------------------------------------------------- /src/images/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/arrow_up.png -------------------------------------------------------------------------------- /src/images/arrow_vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/arrow_vertical.png -------------------------------------------------------------------------------- /src/images/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/cancel.png -------------------------------------------------------------------------------- /src/images/char.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/char.png -------------------------------------------------------------------------------- /src/images/convert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/convert.png -------------------------------------------------------------------------------- /src/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/copy.png -------------------------------------------------------------------------------- /src/images/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/cover.png -------------------------------------------------------------------------------- /src/images/cover_full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/cover_full.png -------------------------------------------------------------------------------- /src/images/cover_narrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/cover_narrow.png -------------------------------------------------------------------------------- /src/images/cover_wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/cover_wide.png -------------------------------------------------------------------------------- /src/images/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/cross.png -------------------------------------------------------------------------------- /src/images/del_cut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/del_cut.png -------------------------------------------------------------------------------- /src/images/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/delete.png -------------------------------------------------------------------------------- /src/images/dst_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/dst_path.png -------------------------------------------------------------------------------- /src/images/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/edit.png -------------------------------------------------------------------------------- /src/images/epub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/epub.png -------------------------------------------------------------------------------- /src/images/filename_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/filename_copy.png -------------------------------------------------------------------------------- /src/images/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/first.png -------------------------------------------------------------------------------- /src/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/icon.png -------------------------------------------------------------------------------- /src/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/image.png -------------------------------------------------------------------------------- /src/images/kindle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/kindle.png -------------------------------------------------------------------------------- /src/images/kobo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/kobo.png -------------------------------------------------------------------------------- /src/images/last.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/last.png -------------------------------------------------------------------------------- /src/images/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/next.png -------------------------------------------------------------------------------- /src/images/page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/page.png -------------------------------------------------------------------------------- /src/images/page_horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/page_horizontal.png -------------------------------------------------------------------------------- /src/images/page_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/page_setting.png -------------------------------------------------------------------------------- /src/images/page_vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/page_vertical.png -------------------------------------------------------------------------------- /src/images/paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/paste.png -------------------------------------------------------------------------------- /src/images/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/prev.png -------------------------------------------------------------------------------- /src/images/reader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/reader.png -------------------------------------------------------------------------------- /src/images/reader_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/reader_app.png -------------------------------------------------------------------------------- /src/images/replace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/replace.png -------------------------------------------------------------------------------- /src/images/skip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/skip.png -------------------------------------------------------------------------------- /src/images/spin_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/spin_down.png -------------------------------------------------------------------------------- /src/images/spin_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/spin_up.png -------------------------------------------------------------------------------- /src/images/style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/style.png -------------------------------------------------------------------------------- /src/images/title_reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/title_reload.png -------------------------------------------------------------------------------- /src/images/toc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/toc.png -------------------------------------------------------------------------------- /src/images/viewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/viewer.png -------------------------------------------------------------------------------- /src/images/web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/web.png -------------------------------------------------------------------------------- /src/images/zoomin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/zoomin.png -------------------------------------------------------------------------------- /src/images/zoomout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hmdev/AozoraEpub3/520ce7cfaf4f22f65cb5d354b120c96b301de4e3/src/images/zoomout.png -------------------------------------------------------------------------------- /template/META-INF/container.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /template/OPS/css/horizontal_font.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /** 横書きフォント */ 5 | body { 6 | font-family: "MS 明朝", "MS Mincho", "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", serif, sans-serif; 7 | } 8 | -------------------------------------------------------------------------------- /template/OPS/css/horizontal_image.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /* 画像用 */ 5 | @page { 6 | margin: 0; 7 | padding: 0; 8 | } 9 | 10 | html { 11 | writing-mode: horizontal-tb; 12 | -webkit-writing-mode: horizontal-tb; 13 | -epub-writing-mode: horizontal-tb; 14 | margin: 0; 15 | padding: 0; 16 | } 17 | 18 | body { 19 | margin: 0; 20 | padding: 0; 21 | } 22 | body.fit_h { 23 | text-align: center; 24 | } 25 | /* ページ内 画像は縮小のみ */ 26 | body .img { 27 | width: 100%; 28 | height: 100%; 29 | text-align: center; 30 | } 31 | 32 | /* 幅を合わせる */ 33 | body.fit_w img { 34 | width: 100%; 35 | min-width: 100%; 36 | height: auto; 37 | } 38 | /* 高さを合わせる */ 39 | body.fit_h img { 40 | width: auto; 41 | height: 100%; 42 | min-height: 100%; 43 | } 44 | -------------------------------------------------------------------------------- /template/OPS/css/horizontal_middle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /* 横書き左右中央 */ 5 | @page { 6 | margin-top: 0; 7 | margin-bottom: 0; 8 | } 9 | 10 | html { 11 | margin-top: 0; 12 | margin-bottom: 0; 13 | width:100%; 14 | height:100%; 15 | } 16 | body { 17 | margin-top: 0; 18 | margin-bottom: 0; 19 | vertical-align: baseline; 20 | width:100%; 21 | height:100%; 22 | } 23 | 24 | table { 25 | width:100%; 26 | height:100%; 27 | } 28 | table td { 29 | width:100%; 30 | height:100%; 31 | display: table-cell; 32 | } 33 | 34 | /* 左右中央 */ 35 | table.middle td { 36 | vertical-align: middle; 37 | } 38 | /* ページ左 */ 39 | table.bottom td { 40 | vertical-align: bottom; 41 | } 42 | 43 | 44 | /* kindle左右中央 */ 45 | div.kindle_outer { 46 | writing-mode: vertical-rl; 47 | -webkit-writing-mode: vertical-rl; 48 | -epub-writing-mode: vertical-rl; 49 | text-align: center; 50 | height:100%; 51 | } 52 | div.kindle_outer.bottom { 53 | text-align: right; 54 | } 55 | div.kindle_inner { 56 | display: inline-block; 57 | writing-mode: horizontal-tb; 58 | -webkit-writing-mode: horizontal-tb; 59 | -epub-writing-mode: horizontal-tb; 60 | text-align: left; 61 | line-height: 1.5; 62 | width: 95%; 63 | } -------------------------------------------------------------------------------- /template/OPS/css/horizontal_text.vm: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /** 縦書き テキスト用スタイル */ 5 | @page { 6 | margin: ${pageMargin[0]} ${pageMargin[1]} ${pageMargin[2]} ${pageMargin[3]}; 7 | } 8 | 9 | html { 10 | margin: ${bodyMargin[0]} ${bodyMargin[1]} ${bodyMargin[2]} ${bodyMargin[3]}; 11 | padding: 0; 12 | writing-mode: horizontal-tb; 13 | -webkit-writing-mode: horizontal-tb; 14 | -epub-writing-mode: horizontal-tb; 15 | -epub-line-break: strict; 16 | line-break: strict; 17 | -epub-word-break: normal; 18 | word-break: normal; 19 | } 20 | body { 21 | margin: 0; 22 | padding: 0; 23 | display: block; 24 | color: #000; 25 | font-size: ${fontSize}%; 26 | line-height: ${lineHeight}; 27 | vertical-align: baseline; 28 | } 29 | 30 | /** 太字、ゴシック */ 31 | #if (${boldUseGothic}) 32 | .b, 33 | #end 34 | .gtc { 35 | font-family: 'MS ゴシック','MS Gothic',sans-serif; 36 | } 37 | #if (${gothicUseBold}) 38 | .gtc, 39 | #end 40 | .b { font-weight: bold; } 41 | .i { font-style: italic; } 42 | 43 | /** 外字フォント */ 44 | #foreach(${gaijiInfo} in ${vecGaijiInfo}) 45 | @font-face {font-family:"${gaijiInfo.ClassName}"; src:url(../gaiji/${gaijiInfo.FileName});} 46 | .${gaijiInfo.ClassName} {font-family:"${gaijiInfo.ClassName}";} 47 | #end -------------------------------------------------------------------------------- /template/OPS/css/kindle_image.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /* Kindle画像zip用 */ 5 | @page { 6 | margin: 0; 7 | padding: 0; 8 | } 9 | 10 | html { 11 | writing-mode: horizontal-tb; 12 | -webkit-writing-mode: horizontal-tb; 13 | -epub-writing-mode: horizontal-tb; 14 | margin: 0; 15 | padding: 0; 16 | width: auto; 17 | height: auto; 18 | } 19 | 20 | body { 21 | margin: 0; 22 | padding: 0; 23 | width: auto; 24 | height: auto; 25 | } 26 | 27 | body .img { 28 | width: auto; 29 | height: auto; 30 | } 31 | -------------------------------------------------------------------------------- /template/OPS/css/svg_image.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | html, body, svg { 5 | margin: 0; 6 | padding: 0; 7 | } 8 | html, body { 9 | font-size:0; 10 | background-color:white; 11 | } 12 | -------------------------------------------------------------------------------- /template/OPS/css/vertical_font.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /** 縦書きフォント */ 5 | body { 6 | font-family: "@MS 明朝", "@MS Mincho", "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", serif, sans-serif; 7 | } 8 | -------------------------------------------------------------------------------- /template/OPS/css/vertical_image.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /* 画像用 */ 5 | @page { 6 | margin: 0; 7 | padding: 0; 8 | } 9 | 10 | html { 11 | writing-mode: horizontal-tb; 12 | -webkit-writing-mode: horizontal-tb; 13 | -epub-writing-mode: horizontal-tb; 14 | margin: 0; 15 | padding: 0; 16 | } 17 | 18 | body { 19 | margin: 0; 20 | padding: 0; 21 | text-align: center; 22 | } 23 | /* ページ内 画像は縮小のみ */ 24 | body .img { 25 | } 26 | 27 | /* 幅を合わせる */ 28 | body.fit_w img { 29 | width: 100%; 30 | min-width: 100%; 31 | height: auto; 32 | } 33 | /* 高さを合わせる */ 34 | body.fit_h img { 35 | width: auto; 36 | height: 100%; 37 | min-height: 100%; 38 | } 39 | -------------------------------------------------------------------------------- /template/OPS/css/vertical_middle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /** 縦書き用 左右中央 */ 5 | @page { 6 | margin-left: 0; 7 | margin-right: 0; 8 | width:100%; 9 | } 10 | 11 | html { 12 | margin-left: 0; 13 | margin-right: 0; 14 | width:100%; 15 | } 16 | body { 17 | margin-left: 0; 18 | margin-right: 0; 19 | vertical-align: middle; 20 | width:100%; 21 | } 22 | 23 | table { 24 | width:100%; 25 | height:100%; 26 | } 27 | table td { 28 | width:100%; 29 | height:100%; 30 | display: table-cell; 31 | } 32 | 33 | /* 左右中央 */ 34 | table.middle td { 35 | vertical-align: middle; 36 | } 37 | /* ページ左 */ 38 | table.bottom td { 39 | vertical-align: bottom; 40 | } 41 | 42 | /* kindle左右中央 */ 43 | div.kindle_outer { 44 | writing-mode: horizontal-tb; 45 | -webkit-writing-mode: horizontal-tb; 46 | -epub-writing-mode: horizontal-tb; 47 | text-align: center; 48 | width:100%; 49 | margin: 0; 50 | padding: 0; 51 | line-height: 0; 52 | } 53 | div.kindle_outer.bottom { 54 | text-align: left; 55 | } 56 | div.kindle_inner { 57 | display: inline-block; 58 | writing-mode: vertical-rl; 59 | -webkit-writing-mode: vertical-rl; 60 | -epub-writing-mode: vertical-rl; 61 | text-align: left; 62 | line-height: 1.5; 63 | height: 95%; 64 | } -------------------------------------------------------------------------------- /template/OPS/css/vertical_text.vm: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /** 縦書き テキスト用スタイル */ 5 | @page { 6 | margin: ${pageMargin[0]} ${pageMargin[1]} ${pageMargin[2]} ${pageMargin[3]}; 7 | } 8 | 9 | html { 10 | margin: ${bodyMargin[0]} ${bodyMargin[1]} ${bodyMargin[2]} ${bodyMargin[3]}; 11 | padding: 0; 12 | writing-mode: vertical-rl; 13 | -webkit-writing-mode: vertical-rl; 14 | -epub-writing-mode: vertical-rl; 15 | -epub-line-break: strict; 16 | line-break: strict; 17 | -epub-word-break: normal; 18 | word-break: normal; 19 | } 20 | body { 21 | margin: 0; 22 | padding: 0; 23 | display: block; 24 | color: #000; 25 | font-size: ${fontSize}%; 26 | line-height: ${lineHeight}; 27 | vertical-align: baseline; 28 | } 29 | 30 | /** 太字、ゴシック */ 31 | #if (${boldUseGothic}) 32 | .b, 33 | #end 34 | .gtc { 35 | font-family: '@MS ゴシック','@MS Gothic',sans-serif; 36 | } 37 | #if (${gothicUseBold}) 38 | .gtc, 39 | #end 40 | .b { font-weight: bold; } 41 | .i { font-style: italic; } 42 | 43 | /** 外字フォント */ 44 | #foreach(${gaijiInfo} in ${vecGaijiInfo}) 45 | @font-face {font-family:"${gaijiInfo.ClassName}"; src:url(../gaiji/${gaijiInfo.FileName});} 46 | .${gaijiInfo.ClassName} {font-family:"${gaijiInfo.ClassName}";} 47 | #end -------------------------------------------------------------------------------- /template/OPS/css_custom/horizontal_font_reader.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /** 横書きフォント変更 Sony Reader用 5 | ファイル名を horizontal_font.css に変更すると有効 6 | READER/fonts/ の下にフォントファイルをコピーしてsrc:urlのフォントをコピーしたファイル名に変更 7 | フォントファイルが無い場合は標準フォントが利用される */ 8 | 9 | @font-face { 10 | font-family: "CustomFont"; 11 | src: url(res:///ebook/fonts/../../mnt/sdcard/fonts/Dfpaburi.ttc); 12 | } 13 | body { 14 | font-family: "CustomFont", "MS 明朝", "MS Mincho", "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", serif, sans-serif; 15 | } 16 | -------------------------------------------------------------------------------- /template/OPS/css_custom/horizontal_font_sample.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /** 横書きフォント変更 埋め込み用 5 | ファイル名を horizontal_font.css に変更すると有効 6 | template/fonts 以下にあるフォントファイルはePubファイルに追加されます */ 7 | 8 | @font-face { 9 | font-family: "CustomFont"; 10 | src: url(res:///ebook/fonts/../../mnt/sdcard/fonts/Dfpaburi.ttc); 11 | } 12 | body { 13 | font-family: "CustomFont", "MS 明朝", "MS Mincho", "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", serif, sans-serif; 14 | } 15 | -------------------------------------------------------------------------------- /template/OPS/css_custom/vertical_font_reader.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /** 縦書きフォント変更 Sony Reader用 5 | ファイル名を vertical_font.css に変更すると有効 6 | READER/fonts/ の下にフォントファイルをコピーしてsrc:urlのフォントをコピーしたファイル名に変更 7 | フォントファイルが無い場合は標準フォントが利用される */ 8 | @font-face { 9 | font-family: "CustomFont"; 10 | src: url(res:///ebook/fonts/../../mnt/sdcard/fonts/Dfpaburi.ttc); 11 | } 12 | body { 13 | font-family: "CustomFont", "@MS 明朝", "@MS Mincho", "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", serif, sans-serif; 14 | } 15 | -------------------------------------------------------------------------------- /template/OPS/css_custom/vertical_font_sample.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @namespace "http://www.w3.org/1999/xhtml"; 3 | 4 | /** 縦書きフォント変更 埋め込み用 5 | ファイル名を vertical_font.css に変更すると有効 6 | template/fonts 以下にあるフォントファイルはePubファイルに追加されます */ 7 | @font-face { 8 | font-family: "CustomFont"; 9 | src: url(../fonts/aokin-mincho.ttf); 10 | } 11 | body { 12 | font-family: "CustomFont", "@MS 明朝", "@MS Mincho", "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", serif, sans-serif; 13 | } 14 | -------------------------------------------------------------------------------- /template/OPS/package.vm: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | ${title} 7 | ${title} 8 | #if (${titleAs}) 9 | ${titleAs} 10 | #end 11 | #if (${creator}) 12 | ${creator} 13 | ${creator} 14 | #if (${creatorAs}) 15 | ${creatorAs} 16 | #end 17 | #end 18 | #if (${publisher}) 19 | ${publisher} 20 | ${publisher} 21 | #end 22 | ja 23 | ja 24 | urn:uuid:${identifier} 25 | urn:uuid:${identifier} 26 | ${modified} 27 | #if (${bookInfo.InsertCoverPage}) 28 | 29 | #end 30 | #if (${bookInfo.ImageOnly}) 31 | #if (${svgImage}) 32 | pre-paginated 33 | #end 34 | 35 | 36 | #if (${kindle}) 37 | 38 | 39 | 40 | 41 | 42 | 43 | #end 44 | #end 45 | 46 | 47 | 48 | #if (${kindle} && ${bookInfo.ImageOnly}) 49 | 50 | #elseif (${svgImage} && ${bookInfo.ImageOnly}) 51 | 52 | #elseif (${bookInfo.Vertical}) 53 | #if (${bookInfo.ImageOnly}) 54 | 55 | #else 56 | 57 | 58 | 59 | 60 | 61 | #end 62 | #else 63 | #if (${bookInfo.ImageOnly}) 64 | 65 | #else 66 | 67 | 68 | 69 | 70 | 71 | #end 72 | #end 73 | 74 | 75 | 76 | #if (${bookInfo.InsertCoverPage}) 77 | #if ($svgImage && ${bookInfo.ImageOnly}) 78 | 79 | #else 80 | 81 | #end 82 | #end 83 | #if (${title_page}) 84 | 85 | #end 86 | 87 | #if ($svgImage && ${bookInfo.ImageOnly}) 88 | #foreach(${sectionInfo} in ${sections}) 89 | 90 | #end 91 | #else 92 | #foreach(${sectionInfo} in ${sections}) 93 | 94 | #end 95 | #end 96 | #foreach($image in ${images}) 97 | #if ($image.IsCover) 98 | 99 | #else 100 | 101 | #end 102 | #end 103 | 104 | 105 | 106 | #if (${bookInfo.Vertical}) 107 | 108 | #else 109 | 110 | #end 111 | #if (${bookInfo.InsertCoverPage}) 112 | 113 | #end 114 | #if (${title_page}) 115 | 116 | #end 117 | #if (${bookInfo.InsertTocPage}) 118 | 119 | #end 120 | 121 | #foreach(${sectionInfo} in ${sections}) 122 | #if (${kindle} && ${bookInfo.ImageOnly}) 123 | #if ($velocityCount % 2 == 0) 124 | 125 | #else 126 | 127 | #end 128 | #else 129 | 130 | #end 131 | #end 132 | 133 | 134 | #if (${bookInfo.InsertCoverPage} || ${bookInfo.InsertTocPage}) 135 | 136 | #if (${bookInfo.InsertCoverPage}) 137 | 138 | #end 139 | #if (${title_page}) 140 | 141 | #end 142 | #if (${bookInfo.InsertTocPage}) 143 | 144 | #end 145 | #foreach(${sectionInfo} in ${sections}) 146 | 147 | #break 148 | #end 149 | 150 | #end 151 | -------------------------------------------------------------------------------- /template/OPS/toc.ncx.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ${title} 11 | 12 | 13 | #set($idx=0) 14 | #if (${bookInfo.InsertCoverPage} && ${bookInfo.InsertCoverPageToc}) 15 | #set($idx=$idx+1) 16 | 17 | 18 | ${cover_name} 19 | 20 | 21 | 22 | #end 23 | #foreach(${chapter} in ${chapters}) 24 | #if ($chapter.ChapterName) 25 | #set($idx=$idx+1) 26 | 27 | 28 | ${chapter.NoTagChapterName} 29 | 30 | #if ($chapter.ChapterId) 31 | 32 | #else 33 | 34 | #end 35 | #foreach(${end} in ${chapter.NavClose}) 36 | 37 | #end 38 | #end 39 | #end 40 | 41 | 42 | -------------------------------------------------------------------------------- /template/OPS/xhtml/cover.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #if (${svgImage} && ${bookInfo.ImageOnly}) 7 | 8 | #elseif (${kindle} && ${bookInfo.ImageOnly}) 9 | 10 | #elseif (${bookInfo.Vertical}) 11 | 12 | #else 13 | 14 | #end 15 | ${title} 16 | #if (${sectionInfo.ImageHeight} > 0) 17 | 23 | #end 24 | 25 | 26 | #if (${svgImage} && ${bookInfo.ImageOnly}) 27 | 28 |
29 | 30 | 31 | 32 |
33 | 34 | #else 35 | #if (${sectionInfo.ImageFitW}) 36 | 37 | #elseif (${sectionInfo.ImageFitH}) 38 | 39 | #else 40 | 41 | #end 42 | 43 | 44 | #end 45 | 46 | -------------------------------------------------------------------------------- /template/OPS/xhtml/svg_image.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /template/OPS/xhtml/title_horizontal.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 57 | ${title} 58 | 59 | 60 | 61 |
62 | 63 |
64 | #if (${SERIES}) 65 |
${SERIES}
66 | #else 67 |
68 | #end 69 | #if (!${ORGTITLE}) 70 |
71 | #end 72 | #if (!${SUBTITLE}) 73 |
74 | #end 75 | #if (!${SUBORGTITLE}) 76 |
77 | #end 78 |
${TITLE}
79 | #if (${ORGTITLE}) 80 |
${ORGTITLE}
81 | #end 82 | #if (${SUBTITLE}) 83 |
${SUBTITLE}
84 | #end 85 | #if (${SUBORGTITLE}) 86 |
${SUBORGTITLE}
87 | #end 88 |
89 | 90 |
91 | #if (${CREATOR}) 92 |
${CREATOR}
93 | #end 94 | #if (${SUBCREATOR}) 95 |
${SUBCREATOR}
96 | #end 97 | #if (${PUBLISHER}) 98 |
99 |
${PUBLISHER}
100 | #end 101 |
102 | 103 |
104 | 105 | -------------------------------------------------------------------------------- /template/OPS/xhtml/title_middle.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | #if (${bookInfo.Vertical}) 6 | 7 | 8 | 9 | 10 | #else 11 | 12 | 13 | 14 | 15 | #end 16 | 29 | ${title} 30 | 31 | 32 | 33 | 34 | #if (${kindle}) 35 | 36 |
37 | #else 38 | 39 | #end 40 |
41 | 42 | #if (${PUBLISHER}) 43 |
${PUBLISHER}
44 |
45 | #end 46 | 47 | #if (${CREATOR}) 48 |
49 | #end 50 | #if (${SUBCREATOR}) 51 |
52 | #end 53 | 54 | #if (${SERIES}) 55 |
${SERIES}
56 | #end 57 |
${TITLE}
58 | #if (${ORGTITLE}) 59 |
${ORGTITLE}
60 | #end 61 | #if (${SUBTITLE}) 62 |
${SUBTITLE}
63 | #end 64 | #if (${SUBORGTITLE}) 65 |
${SUBORGTITLE}
66 | #end 67 | #if (${CREATOR}) 68 |
${CREATOR}
69 | #end 70 | #if (${SUBCREATOR}) 71 |
${SUBCREATOR}
72 | #end 73 | 74 |
75 | #if (${kindle}) 76 |
77 | #end 78 | 79 | 80 | -------------------------------------------------------------------------------- /template/OPS/xhtml/xhtml_footer.vm: -------------------------------------------------------------------------------- 1 | #if (${sectionInfo.Middle} || ${sectionInfo.bottom}) 2 | 3 | #if (${kindle}) 4 | 5 | #end 6 | #end 7 | 8 | -------------------------------------------------------------------------------- /template/OPS/xhtml/xhtml_header.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | #if (${kindle} && ${bookInfo.ImageOnly}) 6 | 7 | #elseif (${bookInfo.Vertical}) 8 | #if (${sectionInfo.ImagePage}) 9 | 10 | #else 11 | #if (${sectionInfo.Middle} || ${sectionInfo.Bottom}) 12 | 13 | #end 14 | 15 | 16 | 17 | #end 18 | #else 19 | #if (${sectionInfo.ImagePage}) 20 | 21 | #else 22 | #if (${sectionInfo.Middle}) 23 | 24 | #end 25 | 26 | 27 | 28 | #end 29 | #end 30 | ${title} 31 | 32 | #if (${sectionInfo.ImageHeight} > 0) 33 | 39 | #end 40 | 41 | 42 | #if (${sectionInfo.ImageFitW}) 43 | 44 | #elseif (${sectionInfo.ImageFitH}) 45 | 46 | #elseif (${kindle}) 47 | 48 | #else 49 | 50 | #end 51 | #if (${sectionInfo.Middle}) 52 | #if (${kindle}) 53 |
54 | #end 55 |
56 | #end 57 | #if (${sectionInfo.Bottom}) 58 | #if (${kindle}) 59 |
60 | #end 61 |
62 | #end -------------------------------------------------------------------------------- /template/OPS/xhtml/xhtml_nav.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ${title} 6 | 43 | 44 | 45 | 46 | ## epub3 landmarks nav ========================== 47 | 65 | ## epub3 toc nav ================================ 66 | #if (${kindle}) 67 |