202 |
202 |
private boolean createNextOutput() {
|
203 |
203 |
wordcount = 0;
|
204 |
204 |
try {
|
205 |
|
def tags = closeMultiWriter();
|
|
205 |
def tags = closeMultiWriter()
|
206 |
206 |
|
207 |
207 |
outfile = new File(outdir, txtname+"_"+(++pagecount)+".html")
|
208 |
|
pages.add(outfile);
|
|
208 |
pages.add(outfile)
|
209 |
209 |
firstWord = true; // waiting for next word
|
210 |
210 |
|
211 |
|
pagedWriter = new StaxStackWriter(outfile, "UTF-8");
|
|
211 |
pagedWriter = new StaxStackWriter(outfile, "UTF-8")
|
212 |
212 |
|
213 |
213 |
//pagedWriter.writeStartDocument()
|
214 |
214 |
pagedWriter.writeDTD("<!DOCTYPE html>")
|
215 |
215 |
pagedWriter.writeCharacters("\n")
|
216 |
|
pagedWriter.writeStartElement("html");
|
|
216 |
pagedWriter.writeStartElement("html")
|
217 |
217 |
pagedWriter.writeCharacters("\n")
|
218 |
|
pagedWriter.writeEmptyElement("meta", ["http-equiv":"Content-Type", "content":"text/html","charset":"UTF-8"]);
|
|
218 |
pagedWriter.writeEmptyElement("meta", ["http-equiv":"Content-Type", "content":"text/html","charset":"UTF-8"])
|
219 |
219 |
for (String css : cssList) {
|
220 |
|
pagedWriter.writeEmptyElement("link", ["rel":"stylesheet", "type":"text/css","href":"$css"]);
|
|
220 |
pagedWriter.writeEmptyElement("link", ["rel":"stylesheet", "type":"text/css","href":"$css"])
|
221 |
221 |
}
|
222 |
|
pagedWriter.writeStartElement("head");
|
|
222 |
pagedWriter.writeStartElement("head")
|
223 |
223 |
pagedWriter.writeStartElement("title")
|
224 |
224 |
pagedWriter.writeCharacters(basename.toUpperCase()+" Edition - Page "+pagecount)
|
225 |
225 |
pagedWriter.writeEndElement(); // </title>
|
... | ... | |
228 |
228 |
pagedWriter.writeStartElement("body") //<body>
|
229 |
229 |
pagedWriter.writeStartElement("div", ["class": "txmeditionpage"]) //<div>
|
230 |
230 |
// println "OPENING: $tags"
|
231 |
|
pagedWriter.writeStartElements(tags);
|
|
231 |
pagedWriter.writeStartElements(tags)
|
232 |
232 |
return true;
|
233 |
233 |
} catch (Exception e) {
|
234 |
|
System.out.println(e.getLocalizedMessage());
|
|
234 |
System.out.println(e.getLocalizedMessage())
|
235 |
235 |
e.printStackTrace()
|
236 |
236 |
return false;
|
237 |
237 |
}
|
... | ... | |
245 |
245 |
*/
|
246 |
246 |
private boolean createOutput() {
|
247 |
247 |
try {
|
248 |
|
return createNextOutput();
|
|
248 |
return createNextOutput()
|
249 |
249 |
} catch (Exception e) {
|
250 |
|
System.out.println(e.getLocalizedMessage());
|
|
250 |
System.out.println(e.getLocalizedMessage())
|
251 |
251 |
return false;
|
252 |
252 |
}
|
253 |
253 |
}
|
... | ... | |
304 |
304 |
rend = "";
|
305 |
305 |
switch (event) {
|
306 |
306 |
case XMLStreamConstants.START_ELEMENT:
|
307 |
|
localname = parser.getLocalName();
|
|
307 |
localname = parser.getLocalName()
|
308 |
308 |
if (outOfTextElements.contains(localname)) {
|
309 |
309 |
currentOutOfTextElements << localname
|
310 |
310 |
writeOutOfTextToEditText = true;
|
... | ... | |
313 |
313 |
}
|
314 |
314 |
|
315 |
315 |
if (localname == paginationElement) {
|
316 |
|
createNextOutput();
|
|
316 |
createNextOutput()
|
317 |
317 |
wordcount=0;
|
318 |
|
pagedWriter.write("\n");
|
|
318 |
pagedWriter.write("\n")
|
319 |
319 |
if (getAttributeValue(parser, null,"n") != null) {
|
320 |
320 |
pagedWriter.writeElement("p", ["class":"txmeditionpb", "align":"center"], getAttributeValue(parser, null,"n"))
|
321 |
321 |
}
|
... | ... | |
331 |
331 |
attributes[parser.getAttributeLocalName(i)] = parser.getAttributeValue(i).toString()
|
332 |
332 |
}
|
333 |
333 |
|
334 |
|
pagedWriter.write("\n");
|
|
334 |
pagedWriter.write("\n")
|
335 |
335 |
pagedWriter.writeStartElement("p")
|
336 |
|
pagedWriter.writeAttribute("class", rend);
|
|
336 |
pagedWriter.writeAttribute("class", rend)
|
337 |
337 |
if (attributes.containsKey("id")) {
|
338 |
338 |
pagedWriter.writeElement("h3", attributes["id"])
|
339 |
339 |
}
|
340 |
340 |
|
341 |
|
pagedWriter.writeStartElement("table");
|
|
341 |
pagedWriter.writeStartElement("table")
|
342 |
342 |
for (String k : attributes.keySet()) {
|
343 |
343 |
if (k == "id") continue;
|
344 |
344 |
if (k == "rend") continue;
|
345 |
345 |
|
346 |
|
pagedWriter.writeStartElement("tr");
|
347 |
|
pagedWriter.writeElement("td", k);
|
348 |
|
pagedWriter.writeElement("td", attributes[k]);
|
349 |
|
pagedWriter.writeEndElement(); //tr
|
|
346 |
pagedWriter.writeStartElement("tr")
|
|
347 |
pagedWriter.writeElement("td", k)
|
|
348 |
pagedWriter.writeElement("td", attributes[k])
|
|
349 |
pagedWriter.writeEndElement() //tr
|
350 |
350 |
}
|
351 |
351 |
pagedWriter.writeEndElement() // table
|
352 |
352 |
pagedWriter.writeEndElement() // p
|
353 |
|
pagedWriter.writeCharacters("\n");
|
|
353 |
pagedWriter.writeCharacters("\n")
|
354 |
354 |
break;
|
355 |
355 |
case "ref":
|
356 |
356 |
pagedWriter.writeStartElement("a")
|
357 |
|
pagedWriter.writeAttribute("href", getAttributeValue(parser, null, "target"));
|
358 |
|
pagedWriter.writeAttribute("target", "_blank");
|
359 |
|
pagedWriter.writeAttribute("class", rend);
|
|
357 |
pagedWriter.writeAttribute("href", getAttributeValue(parser, null, "target"))
|
|
358 |
pagedWriter.writeAttribute("target", "_blank")
|
|
359 |
pagedWriter.writeAttribute("class", rend)
|
360 |
360 |
break;
|
361 |
361 |
case "head":
|
362 |
|
pagedWriter.write("\n");
|
|
362 |
pagedWriter.write("\n")
|
363 |
363 |
pagedWriter.writeStartElement("h2", ["class":rend])
|
364 |
364 |
break;
|
365 |
365 |
case "graphic":
|
... | ... | |
383 |
383 |
pagedWriter.writeStartElement("td", ["class":rend])
|
384 |
384 |
break;
|
385 |
385 |
case "list":
|
386 |
|
String type = getAttributeValue(parser, null,"type");
|
|
386 |
String type = getAttributeValue(parser, null,"type")
|
387 |
387 |
if ("unordered" == type) {
|
388 |
388 |
pagedWriter.writeStartElement("ul", ["class":rend])
|
389 |
389 |
} else {
|
... | ... | |
409 |
409 |
break;
|
410 |
410 |
case "p":
|
411 |
411 |
//case "lg":
|
412 |
|
pagedWriter.write("\n");
|
|
412 |
pagedWriter.write("\n")
|
413 |
413 |
pagedWriter.writeStartElement("p", ["class":rend])
|
414 |
414 |
break;
|
|
415 |
case "sp":
|
|
416 |
pagedWriter.writeStartElement("p", ["class":"turn"])
|
|
417 |
pagedWriter.writeStartElement("span")
|
|
418 |
pagedWriter.writeAttribute("class", "spk")
|
|
419 |
pagedWriter.writeCharacters(parser.getAttributeValue(null,"speaker")+": ")
|
|
420 |
pagedWriter.writeEndElement() // span@class=spk
|
|
421 |
break;
|
|
422 |
case "u":
|
|
423 |
//pagedWriter.writeStartElement("p", ["class":"u"])
|
|
424 |
pagedWriter.writeStartElement("span")
|
|
425 |
pagedWriter.writeAttribute("class", "sync")
|
|
426 |
pagedWriter.writeCharacters(parser.getAttributeValue(null,"time"))
|
|
427 |
//pagedWriter.writeEndElement(); // span@class=spk
|
|
428 |
break;
|
415 |
429 |
case "div":
|
416 |
430 |
case "div1":
|
417 |
431 |
case "div2":
|
... | ... | |
443 |
457 |
interpvalue+=" "+getAttributeValue(parser, null, "type").substring(1)+":"
|
444 |
458 |
break;
|
445 |
459 |
case "form":
|
446 |
|
wordvalue="";
|
447 |
|
interpvalue ="";
|
448 |
|
flagform=true;
|
|
460 |
wordvalue=""
|
|
461 |
interpvalue =""
|
|
462 |
flagform=true
|
449 |
463 |
break;
|
450 |
464 |
default:
|
451 |
465 |
if (noteElements.contains(localname)) {
|
... | ... | |
466 |
480 |
switch (localname) {
|
467 |
481 |
case "text":
|
468 |
482 |
break;
|
|
483 |
case "u":
|
|
484 |
pagedWriter.writeEmptyElement("br")
|
|
485 |
break;
|
469 |
486 |
case "p":
|
|
487 |
case "sp":
|
470 |
488 |
//case "lg":
|
471 |
489 |
pagedWriter.writeEndElement() // </p>
|
472 |
|
pagedWriter.write("\n");
|
|
490 |
pagedWriter.write("\n")
|
473 |
491 |
break;
|
474 |
492 |
case "div":
|
475 |
493 |
case "div1":
|
... | ... | |
482 |
500 |
break;
|
483 |
501 |
case "head":
|
484 |
502 |
pagedWriter.writeEndElement() // </h2>
|
485 |
|
pagedWriter.write("\n");
|
|
503 |
pagedWriter.write("\n")
|
486 |
504 |
break;
|
487 |
505 |
case "list":
|
488 |
|
pagedWriter.writeEndElement(); // ul or ol
|
489 |
|
pagedWriter.write("\n");
|
|
506 |
pagedWriter.writeEndElement() // ul or ol
|
|
507 |
pagedWriter.write("\n")
|
490 |
508 |
break
|
491 |
509 |
case "item":
|
492 |
|
pagedWriter.writeEndElement(); // li
|
493 |
|
pagedWriter.write("\n");
|
|
510 |
pagedWriter.writeEndElement() // li
|
|
511 |
pagedWriter.write("\n")
|
494 |
512 |
break;
|
495 |
513 |
case "hi":
|
496 |
|
pagedWriter.writeEndElement(); // b
|
|
514 |
pagedWriter.writeEndElement() // b
|
497 |
515 |
break;
|
498 |
516 |
case "emph":
|
499 |
|
pagedWriter.writeEndElement(); // i
|
|
517 |
pagedWriter.writeEndElement() // i
|
500 |
518 |
break;
|
501 |
519 |
case "table":
|
502 |
|
pagedWriter.writeEndElement(); // table
|
|
520 |
pagedWriter.writeEndElement() // table
|
503 |
521 |
pagedWriter.write("\n");
|
504 |
522 |
break;
|
505 |
523 |
case "row":
|
506 |
|
pagedWriter.writeEndElement(); // tr
|
|
524 |
pagedWriter.writeEndElement() // tr
|
507 |
525 |
break;
|
508 |
526 |
case "cell":
|
509 |
|
pagedWriter.writeEndElement(); // td
|
|
527 |
pagedWriter.writeEndElement() // td
|
510 |
528 |
break;
|
511 |
529 |
case "ref":
|
512 |
530 |
pagedWriter.writeEndElement() // </a>
|
... | ... | |
519 |
537 |
break;
|
520 |
538 |
case wordTag:
|
521 |
539 |
int l = lastword.length();
|
522 |
|
String endOfLastWord = "";
|
523 |
|
if (l > 0)
|
524 |
|
endOfLastWord = lastword.subSequence(l-1, l);
|
525 |
|
|
526 |
|
if (interpvalue != null)
|
527 |
|
interpvalue = interpvalue;
|
528 |
|
|
|
540 |
String endOfLastWord = ""
|
|
541 |
if (l > 0) {
|
|
542 |
endOfLastWord = lastword.subSequence(l-1, l)
|
|
543 |
}
|
|
544 |
|
|
545 |
if (interpvalue != null) {
|
|
546 |
interpvalue = interpvalue
|
|
547 |
}
|
529 |
548 |
if (NoSpaceBefore.contains(wordvalue) ||
|
530 |
549 |
NoSpaceAfter.contains(lastword) ||
|
531 |
550 |
wordvalue.startsWith("-") ||
|
532 |
551 |
NoSpaceAfter.contains(endOfLastWord)) {
|
533 |
|
pagedWriter.writeStartElement("span", ["title":interpvalue, "id":wordid]);
|
|
552 |
pagedWriter.writeStartElement("span", ["title":interpvalue, "id":wordid])
|
534 |
553 |
} else {
|
535 |
|
pagedWriter.writeCharacters("\n");
|
536 |
|
pagedWriter.writeStartElement("span", ["title":interpvalue, "id":wordid]);
|
|
554 |
pagedWriter.writeCharacters("\n")
|
|
555 |
pagedWriter.writeStartElement("span", ["title":interpvalue, "id":wordid])
|
537 |
556 |
}
|
538 |
557 |
|
539 |
|
pagedWriter.writeCharacters(wordvalue);
|
540 |
|
pagedWriter.writeEndElement();
|
|
558 |
pagedWriter.writeCharacters(wordvalue)
|
|
559 |
pagedWriter.writeEndElement()
|
541 |
560 |
//pagedWriter.writeComment("\n")
|
542 |
561 |
lastword=wordvalue;
|
543 |
562 |
break;
|
... | ... | |
561 |
580 |
break;
|
562 |
581 |
case XMLStreamConstants.CHARACTERS:
|
563 |
582 |
if (flagform && parser.getText().length() > 0) {
|
564 |
|
wordvalue+=(parser.getText());
|
565 |
|
if (flagNote == parser.getText().length() > 0)
|
566 |
|
noteContent += parser.getText().replace("\n", " ");
|
|
583 |
wordvalue+=(parser.getText())
|
|
584 |
if (flagNote == parser.getText().length() > 0) {
|
|
585 |
noteContent += parser.getText().replace("\n", " ")
|
|
586 |
}
|
567 |
587 |
} else if (flaginterp && parser.getText().length() > 0) {
|
568 |
|
interpvalue+=(parser.getText());
|
|
588 |
interpvalue+=(parser.getText())
|
569 |
589 |
} else if (flagNote == parser.getText().length() > 0) {
|
570 |
|
noteContent += parser.getText().replace("\n", " ");
|
|
590 |
noteContent += parser.getText().replace("\n", " ")
|
571 |
591 |
} else if (writeOutOfTextToEditText) {
|
572 |
592 |
pagedWriter.writeCharacters(parser.getText())
|
573 |
593 |
}
|