X-Git-Url: http://git.nikiroo.be/?p=nikiroo-utils.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Foutput%2FEpub.java;h=2c47dcbcad68c5d12c2626f22b0771a867eabcd3;hp=f27391b4c1e7b6583304bdcb4b05ff45e2ac1850;hb=2a25f7814eec9854022f1c9dee188bfbdb955591;hpb=2206ef66ee00ad42d806f04a7b7ad6f8cb2d8828 diff --git a/src/be/nikiroo/fanfix/output/Epub.java b/src/be/nikiroo/fanfix/output/Epub.java index f27391b..2c47dcb 100644 --- a/src/be/nikiroo/fanfix/output/Epub.java +++ b/src/be/nikiroo/fanfix/output/Epub.java @@ -1,10 +1,11 @@ package be.nikiroo.fanfix.output; +import java.io.BufferedWriter; import java.io.File; -import java.io.FileWriter; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.net.URL; +import java.io.OutputStreamWriter; import javax.imageio.ImageIO; @@ -14,14 +15,14 @@ import be.nikiroo.fanfix.bundles.StringId; import be.nikiroo.fanfix.data.Chapter; import be.nikiroo.fanfix.data.MetaData; import be.nikiroo.fanfix.data.Paragraph; -import be.nikiroo.fanfix.data.Story; import be.nikiroo.fanfix.data.Paragraph.ParagraphType; +import be.nikiroo.fanfix.data.Story; import be.nikiroo.utils.IOUtils; import be.nikiroo.utils.StringUtils; class Epub extends BasicOutput { private File tmpDir; - private FileWriter writer; + private BufferedWriter writer; private boolean inDialogue = false; private boolean inNormal = false; private File images; @@ -30,7 +31,7 @@ class Epub extends BasicOutput { public File process(Story story, File targetDir, String targetName) throws IOException { String targetNameOrig = targetName; - targetName += getDefaultExtension(); + targetName += getDefaultExtension(false); tmpDir = File.createTempFile("fanfic-reader-epub_", ".wip"); tmpDir.delete(); @@ -44,6 +45,7 @@ class Epub extends BasicOutput { File data = new File(tmpDir, "DATA"); data.mkdir(); new InfoText().process(story, data, targetNameOrig); + InfoCover.writeInfo(data, targetNameOrig, story.getMeta()); IOUtils.writeSmallFile(data, "version", "3.0"); super.process(story, targetDir, targetNameOrig); @@ -58,7 +60,7 @@ class Epub extends BasicOutput { } @Override - public String getDefaultExtension() { + public String getDefaultExtension(boolean readerTarget) { return ".epub"; } @@ -119,7 +121,9 @@ class Epub extends BasicOutput { protected void writeChapterHeader(Chapter chap) throws IOException { String filename = String.format("%s%03d%s", "chapter-", chap.getNumber(), ".xml"); - writer = new FileWriter(new File(tmpDir + "/OPS", filename)); + writer = new BufferedWriter(new OutputStreamWriter( + new FileOutputStream(new File(tmpDir + File.separator + "OPS", + filename)), "UTF-8")); inDialogue = false; inNormal = false; try { @@ -194,7 +198,7 @@ class Epub extends BasicOutput { writer.write("
"); break; case BREAK: - writer.write("
"); + writer.write("
"); break; case NORMAL: writer.write(" "); @@ -204,7 +208,7 @@ class Epub extends BasicOutput { break; case IMAGE: File file = new File(images, getCurrentImageBestName(false)); - Instance.getCache().saveAsImage(new URL(para.getContent()), file); + Instance.getCache().saveAsImage(para.getContentImage(), file); writer.write(" "); break;