рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рдиред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрдЭреЗ рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд░реАрдбрд░ рдорд┐рд▓рд╛ - рдХреЛрдмреЛ рдЯрдЪ, рдФрд░ рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ рдХрд┐ рдХрд┐рддрд╛рдмреЗрдВ рдХрд╣рд╛рдБ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдХреБрдЦреНрдпрд╛рдд рдлреНрд▓рд┐рдмреБрд╕реНрдЯрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ рдФрд░ рдореИрдВ рд╡рд╣рд╛рдВ рд╕реЗ рдХрдИ рдХрд┐рддрд╛рдмреЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореБрдЭреЗ lib.ru рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдмреНрдпрд╛рдЬ рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдХреЛрдкреНрд░реЛ рдХреЛрдб рдХреЗ рд╣реИрдЯрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкрд╛рда рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдПред рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдХреНрд░реВрд░ рд╣реИред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреИрдЯрд▓реЙрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреБрд╕реНрддрдХреЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдпреЛрдЬрдирд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН:
[ рд▓реЗрдЦрдХ
] ред
[ рдирд╛рдо
][ рдЯреЗрдХ рдбреЗрдЯрд╛
][ # рдЕрдзреНрдпрд╛рдп
][ рдЕрдзреНрдпрд╛рдп рдкрд╛рда
][ # рдЕрдзреНрдпрд╛рдп
][ рдЕрдзреНрдпрд╛рдп рдкрд╛рда
]рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдЗрддрдиреЗ рдкрд░ред рдореИрдВ рдЕрдиреНрдп рд░реВрдкреЛрдВ рд╕реЗ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдерд╛ред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐
[ рд▓реЗрдЦрдХ
] [ рд╢реАрд░реНрд╖рдХ
] рдФрд░
[ # рдЕрдзреНрдпрд╛рдп
] рдХреБрдЫ рдЯреИрдЧреНрд╕ рдХреЗ рдмреАрдЪ рд╣реИрдВ - "" рдФрд░ "" (рдпреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдг рд╣реИрдВ, рдЕрд╕рд┐рд╕реА рдкреНрд░рд╛рд░реВрдк)ред
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реИ рдЬреЛ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдирд╛ рд╣реИред рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдкрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдмрджрд▓рддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
juniversalchardet рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реВрдВред
URLConnection con = url.openConnection(); con.connect(); InputStream urlfs; urlfs = con.getInputStream(); byte[] buf = new byte[4096]; UniversalDetector detector = new UniversalDetector(null); int nread; while ((nread = urlfs.read(buf)) > 0 && !detector.isDone()) { detector.handleData(buf, 0, nread); } detector.dataEnd(); String encoding = detector.getDetectedCharset(); detector.reset();
рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдмрдлрд╝рд░рдбреНрд░реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкреЗрдЬ рдХреЛ рдкрдврд╝рд╛ред
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), encoding)); String str; while ((str = in.readLine()) != null) { string = string + str; } in.close();
рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рд╛рдЗрди рдЗрди рдХреЛ рдмрджрд▓реЗрдВ рдФрд░ рдПрдХ рдирдпрд╛ рд╕рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВред
string = string.replace(" ", " "); string = string + " ";
рдЕрдВрдд рдореЗрдВ, рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХ рдореЗрдВ рдХреБрд▓ рдХрд┐рддрдиреЗ рдЕрдзреНрдпрд╛рдп рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдзреНрдпрд╛рдп рдФрд░ рдЯреИрдЧ рдХреЗ рдмреАрдЪ рд╣реИрдВ)ред рдореИрдВ рдПрдХ рдЕрдзреНрдпрд╛рдп рднреА рдирд┐рдХрд╛рд▓рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЦреБрдж рдЗрд╕реЗ рдЬреЛрдбрд╝рд╛ рд╣реИред
int count = 0; for (char c : string.toCharArray()) if (c == ' ') count++; loop = (count-1);
рдорд╛рдорд▓рд╛ рдПрдХ рдХрд░реАрдмреА рдХреА рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдзреНрдпрд╛рдп, рд╡рд┐рд╡рд░рдг рдФрд░ рд▓реЗрдЦрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
String[] authorandtitle = parsedstring[2].split("\\."); AUTHOR = authorandtitle[0]; TITLE = authorandtitle[1]; for(int i = 4; i <= loop; i++){ if((i % 2) ==0 ){ CHAPTER[i] = parsedstring[i]; HEADER[i] = parsedstring[i]; }else{ PARAG[i] = parsedstring[i]; } }
рдмреЗрд╢рдХ, рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рд╕рдм рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдЬреЛ рдЙрд╕рдиреЗ рдкрд╣рд▓реЗ рд╕реЛрдЪрд╛ рдерд╛ рд╡рд╣ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛редрдЕрдм рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдо рд╕рдм рдХреБрдЫ рд╣реИред рдореИрдВрдиреЗ рдЕрдВрддрд┐рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
EPUBGen рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдмрд╕ рдХреБрдЫ рдорд┐рдирдЯ рд▓рдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдПрдВ рдФрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░реЗрдВред
Publication epub = new Publication(); epub.addDCMetadata("title", TITLE); epub.addDCMetadata("creator", AUTHOR); epub.addDCMetadata("language", "ru-RU");
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЫрд╡рд┐ рдХреЛ рдУрдкреАрдПрд╕ / рдЫрд╡рд┐рдпреЛрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ cover.xhtml рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
DataSource dataSource = new FileDataSource(new File(cover)); BitmapImageResource imageResource = epub.createBitmapImageResource( "OPS/images/cover.jpg", "image/jpeg", dataSource); DataSource coverdata = new StringDataSource("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<title>Cover</title>\n<style type=\"text/css\"> img { max-width: 100%; } </style>\n</head>\n<body>\n<div id=\"cover-image\">\n<img src=\"images/cover.jpg\" alt=\"Title\"/>\n</div>\n</body>\n</html>"); Resource coverres = epub.createResource("OPS/cover.xhtml", "xhtml", coverdata); epub.addToSpine(coverres);
рдЕрдВрддрд┐рдо рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдордЧреНрд░реА рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЬреЛрдбрд╝ рд╣реЛрддрд╛ рд╣реИред
NCXResource toc = epub.getTOC(); TOCEntry rootTOCEntry = toc.getRootTOCEntry(); for(int i = 4; i <= loop; i++){ if((i % 2) ==0 ){ OPSResource main = epub.createOPSResource("OPS/"+i+".html"); epub.addToSpine(main); mainDoc = main.getDocument(); TOCEntry mainTOCEntry = toc.createTOCEntry(CHAPTER[i], mainDoc .getRootXRef()); rootTOCEntry.add(mainTOCEntry); body = mainDoc.getBody(); Element h1 = mainDoc.createElement("h1"); h1.add(HEADER[i]); body.add(h1); }else{ Element paragraph = mainDoc.createElement("p"); paragraph.add(PARAG[i]); body.add(paragraph); } }
OCFContainerWriter writer = new OCFContainerWriter( new FileOutputStream(output)); epub.serialize(writer);
рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рдХрд▓рд╛:

рд╕реНрд╡рд┐рдВрдЧ рдкрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рд▓реЗрдХрд┐рди рд╕рд╕реНрддрд╛ рдФрд░ рд╣рдВрд╕рдореБрдЦред
рдЪреВрдБрдХрд┐ рдореИрдВрдиреЗ рдкреВрд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕рдордЭрдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдпрд╣ рдХреЗрд╡рд▓ рдкреБрд░рд╛рдиреЗ рдореЙрдбрд▓ (рд╕рд░рд▓ рдкрд╛рда рдореЙрдбрд▓) рдХреА рдкреБрд╕реНрддрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐
рдпрд╣ ред
рд╢рд┐рдЯ рдХреЛрдб рдХреА рдЗрддрдиреА рдЕрдзрд┐рдХ рдорд╛рддреНрд░рд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдХреМрди рдирд╣реАрдВ рдорд░ рдЧрдпрд╛, рдореИрдВ рдЖрдкрд╕реЗ рдмрд┐рдЯрдХреЙрдЗрди
рд╕реЗ рдмрд╛рдЗрдирд░реА
рдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ
ред