1 package be
.nikiroo
.fanfix
.output
;
3 import java
.io
.BufferedWriter
;
5 import java
.io
.FileOutputStream
;
6 import java
.io
.IOException
;
7 import java
.io
.OutputStreamWriter
;
9 import be
.nikiroo
.fanfix
.Instance
;
10 import be
.nikiroo
.fanfix
.bundles
.StringId
;
11 import be
.nikiroo
.fanfix
.data
.Chapter
;
12 import be
.nikiroo
.fanfix
.data
.MetaData
;
13 import be
.nikiroo
.fanfix
.data
.Paragraph
;
14 import be
.nikiroo
.fanfix
.data
.Paragraph
.ParagraphType
;
15 import be
.nikiroo
.fanfix
.data
.Story
;
17 class Text
extends BasicOutput
{
18 protected BufferedWriter writer
;
19 protected File targetDir
;
22 public File
process(Story story
, File targetDir
, String targetName
)
24 String targetNameOrig
= targetName
;
25 targetName
+= getDefaultExtension(false);
27 this.targetDir
= targetDir
;
29 File target
= new File(targetDir
, targetName
);
31 writer
= new BufferedWriter(new OutputStreamWriter(
32 new FileOutputStream(target
), "UTF-8"));
34 super.process(story
, targetDir
, targetNameOrig
);
44 public String
getDefaultExtension(boolean readerTarget
) {
49 protected void writeStoryHeader(Story story
) throws IOException
{
54 MetaData meta
= story
.getMeta();
56 title
= meta
.getTitle() == null ?
"" : meta
.getTitle();
57 author
= meta
.getAuthor();
58 date
= meta
.getDate();
63 if (author
!= null && !author
.isEmpty()) {
64 writer
.write(Instance
.getTrans().getString(StringId
.BY
) + " "
67 if (date
!= null && !date
.isEmpty()) {
75 if (meta
!= null && meta
.getResume() != null) {
76 writeChapter(meta
.getResume());
81 protected void writeChapterHeader(Chapter chap
) throws IOException
{
83 if (chap
.getName() != null && !chap
.getName().isEmpty()) {
84 txt
= Instance
.getTrans().getString(StringId
.CHAPTER_NAMED
,
85 chap
.getNumber(), chap
.getName());
87 txt
= Instance
.getTrans().getString(StringId
.CHAPTER_UNNAMED
,
91 writer
.write("\n" + txt
+ "\n");
92 for (int i
= 0; i
< txt
.length(); i
++) {
99 protected void writeParagraphFooter(Paragraph para
) throws IOException
{
104 protected void writeParagraphHeader(Paragraph para
) throws IOException
{
105 if (para
.getType() == ParagraphType
.IMAGE
) {
106 File file
= new File(targetDir
, getCurrentImageBestName(true));
107 Instance
.getCache().saveAsImage(para
.getContentImage(), file
);
112 protected void writeTextLine(ParagraphType type
, String line
)
118 writer
.write("\n* * *\n");
125 writer
.write("[" + getCurrentImageBestName(true) + "]");