Przeglądaj źródła

You can specify an object file in a jar file as follows:

/path/to/fop-hyph.jar:hyph/xx.hyp.


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@380644 13f79535-47bb-0310-9956-ffa450edef68
pull/35/head
Simon Pepping 18 lat temu
rodzic
commit
71e1c1aefa

+ 4
- 1
examples/hyphenation/README Wyświetl plik

@@ -6,4 +6,7 @@ representation.

Building: ant compile

Running:
Running: ./analyse or analyse.cmd

You can specify an object file in a jar file as follows:
/path/to/fop-hyph.jar:hyph/xx.hyp.

+ 134
- 114
examples/hyphenation/src/org/apache/fop/hyphenation/HyphenationTreeAnalysis.java Wyświetl plik

@@ -23,10 +23,13 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipFile;
import java.util.zip.ZipEntry;

/**
* This class provides some useful methods to print the structure of a HyphenationTree object
@@ -279,134 +282,151 @@ public class HyphenationTreeAnalysis extends TernaryTreeAnalysis {
* Provide interactive access to a HyphenationTree object and its representation methods
* @param args the arguments
*/
public static void main(String[] args) throws Exception {
public static void main(String[] args) {
HyphenationTree ht = null;
HyphenationTreeAnalysis hta = null;
int minCharCount = 2;
BufferedReader in = new BufferedReader(new java.io.InputStreamReader(System.in));
while (true) {
System.out.print("l:\tload patterns from XML\n"
+ "L:\tload patterns from serialized object\n"
+ "s:\tset minimun character count\n"
+ "w:\twrite hyphenation tree to object file\n"
+ "p:\tprint hyphenation tree to stdout\n"
+ "n:\tprint hyphenation tree nodes to stdout\n"
+ "c:\tprint compact hyphenation tree nodes to stdout\n"
+ "t:\tprint tree representation of hyphenation tree to stdout\n"
+ "h:\thyphenate\n"
+ "f:\tfind pattern\n"
+ "b:\tbenchmark\n"
+ "q:\tquit\n\n"
+ "Command:");
String token = in.readLine().trim();
if (token.equals("f")) {
System.out.print("Pattern: ");
token = in.readLine().trim();
System.out.println("Values: " + ht.findPattern(token));
} else if (token.equals("s")) {
System.out.print("Minimum value: ");
token = in.readLine().trim();
minCharCount = Integer.parseInt(token);
} else if (token.equals("l")) {
ht = new HyphenationTree();
hta = new HyphenationTreeAnalysis(ht);
System.out.print("XML file name: ");
token = in.readLine().trim();
ht.loadPatterns(token);
} else if (token.equals("L")) {
ObjectInputStream ois = null;
System.out.print("Object file name: ");
token = in.readLine().trim();
try {
ois = new ObjectInputStream(new FileInputStream(token));
ht = (HyphenationTree) ois.readObject();
+ "L:\tload patterns from serialized object\n"
+ "s:\tset minimun character count\n"
+ "w:\twrite hyphenation tree to object file\n"
+ "p:\tprint hyphenation tree to stdout\n"
+ "n:\tprint hyphenation tree nodes to stdout\n"
+ "c:\tprint compact hyphenation tree nodes to stdout\n"
+ "t:\tprint tree representation of hyphenation tree to stdout\n"
+ "h:\thyphenate\n"
+ "f:\tfind pattern\n"
+ "b:\tbenchmark\n"
+ "q:\tquit\n\n"
+ "Command:");
try {
String token = in.readLine().trim();
if (token.equals("f")) {
System.out.print("Pattern: ");
token = in.readLine().trim();
System.out.println("Values: " + ht.findPattern(token));
} else if (token.equals("s")) {
System.out.print("Minimum value: ");
token = in.readLine().trim();
minCharCount = Integer.parseInt(token);
} else if (token.equals("l")) {
ht = new HyphenationTree();
hta = new HyphenationTreeAnalysis(ht);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ois != null) {
try {
ois.close();
} catch (IOException e) {
//ignore
}
System.out.print("XML file name: ");
token = in.readLine().trim();
try {
ht.loadPatterns(token);
} catch (HyphenationException e) {
e.printStackTrace();
}
}
} else if (token.equals("w")) {
System.out.print("Object file name: ");
token = in.readLine().trim();
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(new FileOutputStream(token));
oos.writeObject(ht);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (oos != null) {
try {
oos.flush();
} catch (IOException e) {
//ignore
} else if (token.equals("L")) {
ObjectInputStream ois = null;
System.out.print("Object file name: ");
token = in.readLine().trim();
try {
String[] parts = token.split(":");
InputStream is = null;
if (parts.length == 1) {
is = new FileInputStream(token);
} else if (parts.length == 2) {
ZipFile jar = new ZipFile(parts[0]);
ZipEntry entry = new ZipEntry(jar.getEntry(parts[1]));
is = jar.getInputStream(entry);
}
try {
oos.close();
} catch (IOException e) {
//ignore
ois = new ObjectInputStream(is);
ht = (HyphenationTree) ois.readObject();
hta = new HyphenationTreeAnalysis(ht);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ois != null) {
try {
ois.close();
} catch (IOException e) {
//ignore
}
}
}
}
} else if (token.equals("p")) {
System.out.print(hta);
} else if (token.equals("n")) {
System.out.print(hta.toNodes());
} else if (token.equals("c")) {
System.out.print(hta.toCompactNodes());
} else if (token.equals("t")) {
System.out.print(hta.toTree());
} else if (token.equals("h")) {
System.out.print("Word: ");
token = in.readLine().trim();
System.out.print("Hyphenation points: ");
System.out.println(ht.hyphenate(token, minCharCount,
minCharCount));
} else if (token.equals("b")) {
if (ht == null) {
System.out.println("No patterns have been loaded.");
break;
}
System.out.print("Word list filename: ");
token = in.readLine().trim();
long starttime = 0;
int counter = 0;
try {
BufferedReader reader = new BufferedReader(new FileReader(token));
String line;

starttime = System.currentTimeMillis();
while ((line = reader.readLine()) != null) {
// System.out.print("\nline: ");
Hyphenation hyp = ht.hyphenate(line, minCharCount,
minCharCount);
if (hyp != null) {
String hword = hyp.toString();
// System.out.println(line);
// System.out.println(hword);
} else {
// System.out.println("No hyphenation");
} else if (token.equals("w")) {
System.out.print("Object file name: ");
token = in.readLine().trim();
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(new FileOutputStream(token));
oos.writeObject(ht);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (oos != null) {
try {
oos.flush();
} catch (IOException e) {
//ignore
}
try {
oos.close();
} catch (IOException e) {
//ignore
}
}
counter++;
}
} catch (Exception ioe) {
System.out.println("Exception " + ioe);
ioe.printStackTrace();
} else if (token.equals("p")) {
System.out.print(hta);
} else if (token.equals("n")) {
System.out.print(hta.toNodes());
} else if (token.equals("c")) {
System.out.print(hta.toCompactNodes());
} else if (token.equals("t")) {
System.out.print(hta.toTree());
} else if (token.equals("h")) {
System.out.print("Word: ");
token = in.readLine().trim();
System.out.print("Hyphenation points: ");
System.out.println(ht.hyphenate(token, minCharCount,
minCharCount));
} else if (token.equals("b")) {
if (ht == null) {
System.out.println("No patterns have been loaded.");
break;
}
System.out.print("Word list filename: ");
token = in.readLine().trim();
long starttime = 0;
int counter = 0;
try {
BufferedReader reader = new BufferedReader(new FileReader(token));
String line;
starttime = System.currentTimeMillis();
while ((line = reader.readLine()) != null) {
// System.out.print("\nline: ");
Hyphenation hyp = ht.hyphenate(line, minCharCount,
minCharCount);
if (hyp != null) {
String hword = hyp.toString();
// System.out.println(line);
// System.out.println(hword);
} else {
// System.out.println("No hyphenation");
}
counter++;
}
} catch (Exception ioe) {
System.out.println("Exception " + ioe);
ioe.printStackTrace();
}
long endtime = System.currentTimeMillis();
long result = endtime - starttime;
System.out.println(counter + " words in " + result
+ " Milliseconds hyphenated");
} else if (token.equals("q")) {
break;
}
long endtime = System.currentTimeMillis();
long result = endtime - starttime;
System.out.println(counter + " words in " + result
+ " Milliseconds hyphenated");

} else if (token.equals("q")) {
break;
} catch (IOException e) {
e.printStackTrace();
}
}


Ładowanie…
Anuluj
Zapisz