git://git.nikiroo.be
/
nikiroo-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove or move java.awt dependencies
[nikiroo-utils.git]
/
src
/
be
/
nikiroo
/
fanfix
/
output
/
Epub.java
diff --git
a/src/be/nikiroo/fanfix/output/Epub.java
b/src/be/nikiroo/fanfix/output/Epub.java
index f27391b4c1e7b6583304bdcb4b05ff45e2ac1850..09a9944d78932b40c806a13a6f8b4fcef3d55ba8 100644
(file)
--- a/
src/be/nikiroo/fanfix/output/Epub.java
+++ b/
src/be/nikiroo/fanfix/output/Epub.java
@@
-1,12
+1,11
@@
package be.nikiroo.fanfix.output;
package be.nikiroo.fanfix.output;
+import java.io.BufferedWriter;
import java.io.File;
import java.io.File;
-import java.io.File
Writer
;
+import java.io.File
OutputStream
;
import java.io.IOException;
import java.io.InputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.net.URL;
-
-import javax.imageio.ImageIO;
+import java.io.OutputStreamWriter;
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.bundles.Config;
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.bundles.Config;
@@
-14,23
+13,24
@@
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.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.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;
import be.nikiroo.utils.IOUtils;
import be.nikiroo.utils.StringUtils;
class Epub extends BasicOutput {
private File tmpDir;
- private
File
Writer writer;
+ private
Buffered
Writer writer;
private boolean inDialogue = false;
private boolean inNormal = false;
private File images;
private boolean inDialogue = false;
private boolean inNormal = false;
private File images;
+ private boolean nextParaIsCover = true;
@Override
public File process(Story story, File targetDir, String targetName)
throws IOException {
String targetNameOrig = targetName;
@Override
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();
tmpDir = File.createTempFile("fanfic-reader-epub_", ".wip");
tmpDir.delete();
@@
-43,7
+43,9
@@
class Epub extends BasicOutput {
// "Originals"
File data = new File(tmpDir, "DATA");
data.mkdir();
// "Originals"
File data = new File(tmpDir, "DATA");
data.mkdir();
- new InfoText().process(story, data, targetNameOrig);
+ BasicOutput.getOutput(OutputType.TEXT, isWriteInfo(), isWriteCover())
+ .process(story, data, targetNameOrig);
+ InfoCover.writeInfo(data, targetNameOrig, story.getMeta());
IOUtils.writeSmallFile(data, "version", "3.0");
super.process(story, targetDir, targetNameOrig);
IOUtils.writeSmallFile(data, "version", "3.0");
super.process(story, targetDir, targetNameOrig);
@@
-58,7
+60,7
@@
class Epub extends BasicOutput {
}
@Override
}
@Override
- public String getDefaultExtension() {
+ public String getDefaultExtension(
boolean readerTarget
) {
return ".epub";
}
return ".epub";
}
@@
-101,7
+103,8
@@
class Epub extends BasicOutput {
String format = Instance.getConfig()
.getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
File file = new File(images, "cover." + format);
String format = Instance.getConfig()
.getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
File file = new File(images, "cover." + format);
- ImageIO.write(story.getMeta().getCover(), format, file);
+ Instance.getCache().saveAsImage(story.getMeta().getCover(), file,
+ true);
}
// OPS/* except chapters
}
// OPS/* except chapters
@@
-119,7
+122,9
@@
class Epub extends BasicOutput {
protected void writeChapterHeader(Chapter chap) throws IOException {
String filename = String.format("%s%03d%s", "chapter-",
chap.getNumber(), ".xml");
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 {
inDialogue = false;
inNormal = false;
try {
@@
-194,7
+199,7
@@
class Epub extends BasicOutput {
writer.write(" <div class='blank'></div>");
break;
case BREAK:
writer.write(" <div class='blank'></div>");
break;
case BREAK:
- writer.write(" <hr/>");
+ writer.write(" <hr
class='break'
/>");
break;
case NORMAL:
writer.write(" <span class='normal'>");
break;
case NORMAL:
writer.write(" <span class='normal'>");
@@
-204,11
+209,14
@@
class Epub extends BasicOutput {
break;
case IMAGE:
File file = new File(images, getCurrentImageBestName(false));
break;
case IMAGE:
File file = new File(images, getCurrentImageBestName(false));
- Instance.getCache().saveAsImage(new URL(para.getContent()), file);
+ Instance.getCache().saveAsImage(para.getContentImage(), file,
+ nextParaIsCover);
writer.write(" <img class='page-image' src='images/"
+ getCurrentImageBestName(false) + "'/>");
break;
}
writer.write(" <img class='page-image' src='images/"
+ getCurrentImageBestName(false) + "'/>");
break;
}
+
+ nextParaIsCover = false;
}
@Override
}
@Override