Compare commits
17 commits
Author | SHA1 | Date | |
---|---|---|---|
72f2892d30 | |||
0bb7490ac2 | |||
ff556c19dd | |||
a6e85d367a | |||
19b17c5b58 | |||
7d03b2a02d | |||
56a44ea1fd | |||
f5bf88532d | |||
1454d68b4a | |||
f0c43c83e3 | |||
8247b4f976 | |||
9fae696122 | |||
63de83dad1 | |||
a5a311136f | |||
4e1ca75a4a | |||
2b1c69e85e | |||
2ff537d384 |
55 changed files with 280 additions and 582 deletions
|
@ -1,4 +1,4 @@
|
||||||
image: gradle:alpine
|
image: gradle:jdk11-alpine
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
|
|
27
.project
27
.project
|
@ -2,22 +2,21 @@
|
||||||
<projectDescription>
|
<projectDescription>
|
||||||
<name>w2phtml</name>
|
<name>w2phtml</name>
|
||||||
<comment></comment>
|
<comment></comment>
|
||||||
<projects>
|
<projects/>
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
<natures>
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
||||||
</natures>
|
</natures>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments/>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
||||||
|
<arguments/>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<linkedResources/>
|
||||||
|
<filteredResources/>
|
||||||
</projectDescription>
|
</projectDescription>
|
||||||
|
|
49
build.gradle
49
build.gradle
|
@ -16,40 +16,37 @@ sourceSets {
|
||||||
regressionTests {
|
regressionTests {
|
||||||
java {
|
java {
|
||||||
compileClasspath += main.output + test.output
|
compileClasspath += main.output + test.output
|
||||||
runtimeClasspath += main.output + files('src/main/java')
|
runtimeClasspath += main.output + test.output + files('src/main/java')
|
||||||
java.srcDir file('src/r_tests/java')
|
srcDir file('src/r_tests/java')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sourceCompatibility = 1.8
|
sourceCompatibility = 1.8
|
||||||
configurations{
|
configurations{
|
||||||
bundledLibs
|
|
||||||
regressionTestsCompile.extendsFrom mainCompile
|
regressionTestsCompile.extendsFrom mainCompile
|
||||||
regressionTestsRuntime.extendsFrom mainRuntime
|
regressionTestsRuntime.extendsFrom mainRuntime
|
||||||
regressionTestsRuntime.extendsFrom bundledLibs
|
regressionTestsRuntime.extendsFrom compileClasspath
|
||||||
|
regressionTestsImplementation.extendsFrom compileClasspath
|
||||||
}
|
}
|
||||||
dependencies{
|
dependencies{
|
||||||
regressionTestsImplementation group: 'commons-io', name: 'commons-io', version: '2.8.0'
|
|
||||||
regressionTestsImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.7.1'
|
regressionTestsImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.7.1'
|
||||||
regressionTestsImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.7.1'
|
regressionTestsImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.7.1'
|
||||||
regressionTestsRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
|
regressionTestsImplementation 'org.junit.jupiter:junit-jupiter-engine'
|
||||||
|
|
||||||
bundledLibs 'org.libreoffice:jurt:5.3.2'
|
compileClasspath 'org.libreoffice:jurt:5.3.2'
|
||||||
bundledLibs 'org.libreoffice:juh:5.3.2'
|
compileClasspath 'org.libreoffice:juh:5.3.2'
|
||||||
bundledLibs 'org.libreoffice:ridl:5.3.2'
|
compileClasspath 'org.libreoffice:ridl:5.3.2'
|
||||||
bundledLibs 'org.libreoffice:unoil:5.3.2'
|
compileClasspath 'org.libreoffice:unoil:5.3.2'
|
||||||
bundledLibs 'org.json:json:20190722'
|
compileClasspath 'org.json:json:20190722'
|
||||||
bundledLibs group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
|
compileClasspath group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
|
||||||
bundledLibs group: 'ch.qos.logback', name: 'logback-core', version: '1.2.3'
|
compileClasspath group: 'ch.qos.logback', name: 'logback-core', version: '1.2.3'
|
||||||
bundledLibs group: 'com.miglayout', name: 'miglayout-swing', version: '5.2'
|
compileClasspath group: 'com.miglayout', name: 'miglayout-swing', version: '5.2'
|
||||||
bundledLibs group: 'org.apache.jena', name: 'jena-core', version: '3.15.0'
|
compileClasspath group: 'org.apache.jena', name: 'jena-core', version: '3.15.0'
|
||||||
bundledLibs group: 'org.apache.jena', name: 'jena-arq', version: '3.15.0'
|
compileClasspath group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
|
||||||
bundledLibs group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
|
compileClasspath group: 'com.opencsv', name: 'opencsv', version: '5.1'
|
||||||
bundledLibs group: 'com.opencsv', name: 'opencsv', version: '5.1'
|
compileClasspath group: 'org.imgscalr', name: 'imgscalr-lib', version: '4.2'
|
||||||
bundledLibs group: 'org.imgscalr', name: 'imgscalr-lib', version: '4.2'
|
compileClasspath group: 'org.apache.commons', name: 'commons-imaging', version: '1.0-alpha2'
|
||||||
bundledLibs group: 'org.apache.commons', name: 'commons-imaging', version: '1.0-alpha2'
|
|
||||||
|
|
||||||
configurations.compile.extendsFrom(configurations.bundledLibs)
|
|
||||||
}
|
}
|
||||||
jar {
|
jar {
|
||||||
archiveName 'w2phtml.jar'
|
archiveName 'w2phtml.jar'
|
||||||
|
@ -60,8 +57,9 @@ jar {
|
||||||
"Class-Path" : "jasp.jar parser.jar")
|
"Class-Path" : "jasp.jar parser.jar")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
duplicatesStrategy = 'exclude'
|
||||||
from {
|
from {
|
||||||
configurations.bundledLibs.collect { it.isDirectory() ? it : zipTree(it) }
|
configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }
|
||||||
}
|
}
|
||||||
from('src/main/java') {
|
from('src/main/java') {
|
||||||
include '**/*.properties'
|
include '**/*.properties'
|
||||||
|
@ -85,9 +83,10 @@ task xhtml(type: Jar) {
|
||||||
"RegistrationClassName" : "pro.litvinovg.w2phtml.RegistrationHandler",
|
"RegistrationClassName" : "pro.litvinovg.w2phtml.RegistrationHandler",
|
||||||
"Class-Path" : "jasp.jar parser.jar")
|
"Class-Path" : "jasp.jar parser.jar")
|
||||||
}
|
}
|
||||||
|
duplicatesStrategy = 'exclude'
|
||||||
baseName = "writer2phtml"
|
baseName = "writer2phtml"
|
||||||
from {
|
from {
|
||||||
configurations.bundledLibs.collect {
|
configurations.compileClasspath.collect {
|
||||||
exclude 'module-info.class'
|
exclude 'module-info.class'
|
||||||
exclude '.gradle'
|
exclude '.gradle'
|
||||||
exclude '**/LICENSE*'
|
exclude '**/LICENSE*'
|
||||||
|
@ -108,6 +107,7 @@ task xhtml(type: Jar) {
|
||||||
include 'etc/*'
|
include 'etc/*'
|
||||||
include 'com/**'
|
include 'com/**'
|
||||||
include 'com/**/*'
|
include 'com/**/*'
|
||||||
|
exclude '**/DEPENDENCIES'
|
||||||
include 'w2phtml/pageSplitters/**/*.class'
|
include 'w2phtml/pageSplitters/**/*.class'
|
||||||
include 'pro/litvinovg/**/*.class'
|
include 'pro/litvinovg/**/*.class'
|
||||||
include 'pro/litvinovg/**/*.png'
|
include 'pro/litvinovg/**/*.png'
|
||||||
|
@ -130,6 +130,7 @@ task xhtml(type: Jar) {
|
||||||
exclude '.gradle'
|
exclude '.gradle'
|
||||||
}
|
}
|
||||||
from ('src/main/java'){
|
from ('src/main/java'){
|
||||||
|
exclude '**/DEPENDENCIES'
|
||||||
exclude '.gradle'
|
exclude '.gradle'
|
||||||
include 'w2phtml/xhtml/**/*.properties'
|
include 'w2phtml/xhtml/**/*.properties'
|
||||||
include 'w2phtml/xhtml/**/**/*.properties'
|
include 'w2phtml/xhtml/**/**/*.properties'
|
||||||
|
@ -161,10 +162,10 @@ task oxt(type: Zip){
|
||||||
from ('build/libs/writer2phtml.jar'){
|
from ('build/libs/writer2phtml.jar'){
|
||||||
include '*'
|
include '*'
|
||||||
}
|
}
|
||||||
from 'idl/writer2paginatedhtml.rdb'
|
|
||||||
from 'releasenotes.txt'
|
from 'releasenotes.txt'
|
||||||
include '*'
|
include '*'
|
||||||
}
|
}
|
||||||
|
|
||||||
task regressionTests(type: Test) {
|
task regressionTests(type: Test) {
|
||||||
testClassesDirs = sourceSets.regressionTests.output.classesDirs
|
testClassesDirs = sourceSets.regressionTests.output.classesDirs
|
||||||
classpath = sourceSets.regressionTests.runtimeClasspath
|
classpath = sourceSets.regressionTests.runtimeClasspath
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
version=0.9.27
|
version=0.9.29
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
#ifndef __org_openoffice_da_writer2xhtml_XBatchConverter_idl__
|
|
||||||
#define __org_openoffice_da_writer2xhtml_XBatchConverter_idl__
|
|
||||||
#include <com/sun/star/uno/XInterface.idl>
|
|
||||||
#include <com/sun/star/beans/PropertyValue.idl>
|
|
||||||
|
|
||||||
module org { module openoffice { module da { module writer2xhtml {
|
|
||||||
|
|
||||||
// This interface is an IDL version of the java interface (writer2latex.api.BatchHandler)
|
|
||||||
interface XBatchHandler : com::sun::star::uno::XInterface
|
|
||||||
{
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::startConversion
|
|
||||||
void startConversion ();
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::endConversion
|
|
||||||
void endConversion ();
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::startDirectory
|
|
||||||
void startDirectory ( [in] string sName );
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::endDirectory
|
|
||||||
void endDirectory ( [in] string sName, [in] boolean bSuccess );
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::startFile
|
|
||||||
void startFile ( [in] string sName );
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::endFile
|
|
||||||
void endFile ( [in] string sName, [in] boolean bSuccess );
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::cancel
|
|
||||||
boolean cancel ();
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// This interface is an IDL version of the java interface (writer2latex.api.BatchConverter)
|
|
||||||
interface XBatchConverter : com::sun::star::uno::XInterface
|
|
||||||
{
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchConverter::convert
|
|
||||||
void convert ( [in] string sSourceURL,
|
|
||||||
[in] string sTargetURL,
|
|
||||||
[in] sequence< com::sun::star::beans::PropertyValue > lArguments,
|
|
||||||
[in] XBatchHandler handler );
|
|
||||||
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
}; }; }; };
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
#ifndef __org_libreoffice_example_writer2latex_idl__
|
|
||||||
#define __org_libreoffice_example_writer2latex_idl__
|
|
||||||
|
|
||||||
#include <org/libreoffice/example/XWriter2latex.idl>
|
|
||||||
module org { module libreoffice { module example {
|
|
||||||
|
|
||||||
service Writer2latex : org::libreoffice::example::XWriter2latex {
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}; }; };
|
|
||||||
#endif
|
|
|
@ -1,11 +0,0 @@
|
||||||
#ifndef __org_libreoffice_example_xwriter2latex_idl__
|
|
||||||
#define __org_libreoffice_example_xwriter2latex_idl__
|
|
||||||
|
|
||||||
module org { module libreoffice { module example {
|
|
||||||
|
|
||||||
interface XWriter2latex {
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}; }; };
|
|
||||||
#endif
|
|
|
@ -1,13 +0,0 @@
|
||||||
package org.libreoffice.example;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* org/libreoffice/example/XWriter2latex.java .
|
|
||||||
* Generated by the IDL-to-Java compiler (portable), version "3.2"
|
|
||||||
* from XWriter2latex.idl
|
|
||||||
* Friday, 7 July 2017 12:51:34 o'clock MSK
|
|
||||||
*/
|
|
||||||
|
|
||||||
public interface XWriter2latex extends XWriter2latexOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity
|
|
||||||
{
|
|
||||||
} // interface XWriter2latex
|
|
|
@ -1,85 +0,0 @@
|
||||||
package org.libreoffice.example;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* org/libreoffice/example/XWriter2latexHelper.java .
|
|
||||||
* Generated by the IDL-to-Java compiler (portable), version "3.2"
|
|
||||||
* from XWriter2latex.idl
|
|
||||||
* Friday, 7 July 2017 12:51:34 o'clock MSK
|
|
||||||
*/
|
|
||||||
|
|
||||||
abstract public class XWriter2latexHelper
|
|
||||||
{
|
|
||||||
private static String _id = "IDL:org/libreoffice/example/XWriter2latex:1.0";
|
|
||||||
|
|
||||||
public static void insert (org.omg.CORBA.Any a, org.libreoffice.example.XWriter2latex that)
|
|
||||||
{
|
|
||||||
org.omg.CORBA.portable.OutputStream out = a.create_output_stream ();
|
|
||||||
a.type (type ());
|
|
||||||
write (out, that);
|
|
||||||
a.read_value (out.create_input_stream (), type ());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static org.libreoffice.example.XWriter2latex extract (org.omg.CORBA.Any a)
|
|
||||||
{
|
|
||||||
return read (a.create_input_stream ());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static org.omg.CORBA.TypeCode __typeCode = null;
|
|
||||||
synchronized public static org.omg.CORBA.TypeCode type ()
|
|
||||||
{
|
|
||||||
if (__typeCode == null)
|
|
||||||
{
|
|
||||||
__typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (org.libreoffice.example.XWriter2latexHelper.id (), "XWriter2latex");
|
|
||||||
}
|
|
||||||
return __typeCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String id ()
|
|
||||||
{
|
|
||||||
return _id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static org.libreoffice.example.XWriter2latex read (org.omg.CORBA.portable.InputStream istream)
|
|
||||||
{
|
|
||||||
return narrow (istream.read_Object (_XWriter2latexStub.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void write (org.omg.CORBA.portable.OutputStream ostream, org.libreoffice.example.XWriter2latex value)
|
|
||||||
{
|
|
||||||
ostream.write_Object ((org.omg.CORBA.Object) value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static org.libreoffice.example.XWriter2latex narrow (org.omg.CORBA.Object obj)
|
|
||||||
{
|
|
||||||
if (obj == null)
|
|
||||||
return null;
|
|
||||||
else if (obj instanceof org.libreoffice.example.XWriter2latex)
|
|
||||||
return (org.libreoffice.example.XWriter2latex)obj;
|
|
||||||
else if (!obj._is_a (id ()))
|
|
||||||
throw new org.omg.CORBA.BAD_PARAM ();
|
|
||||||
else
|
|
||||||
{
|
|
||||||
org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate ();
|
|
||||||
org.libreoffice.example._XWriter2latexStub stub = new org.libreoffice.example._XWriter2latexStub ();
|
|
||||||
stub._set_delegate(delegate);
|
|
||||||
return stub;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static org.libreoffice.example.XWriter2latex unchecked_narrow (org.omg.CORBA.Object obj)
|
|
||||||
{
|
|
||||||
if (obj == null)
|
|
||||||
return null;
|
|
||||||
else if (obj instanceof org.libreoffice.example.XWriter2latex)
|
|
||||||
return (org.libreoffice.example.XWriter2latex)obj;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate ();
|
|
||||||
org.libreoffice.example._XWriter2latexStub stub = new org.libreoffice.example._XWriter2latexStub ();
|
|
||||||
stub._set_delegate(delegate);
|
|
||||||
return stub;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
package org.libreoffice.example;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* org/libreoffice/example/XWriter2latexHolder.java .
|
|
||||||
* Generated by the IDL-to-Java compiler (portable), version "3.2"
|
|
||||||
* from XWriter2latex.idl
|
|
||||||
* Friday, 7 July 2017 12:51:34 o'clock MSK
|
|
||||||
*/
|
|
||||||
|
|
||||||
public final class XWriter2latexHolder implements org.omg.CORBA.portable.Streamable
|
|
||||||
{
|
|
||||||
public org.libreoffice.example.XWriter2latex value = null;
|
|
||||||
|
|
||||||
public XWriter2latexHolder ()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public XWriter2latexHolder (org.libreoffice.example.XWriter2latex initialValue)
|
|
||||||
{
|
|
||||||
value = initialValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void _read (org.omg.CORBA.portable.InputStream i)
|
|
||||||
{
|
|
||||||
value = org.libreoffice.example.XWriter2latexHelper.read (i);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void _write (org.omg.CORBA.portable.OutputStream o)
|
|
||||||
{
|
|
||||||
org.libreoffice.example.XWriter2latexHelper.write (o, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public org.omg.CORBA.TypeCode _type ()
|
|
||||||
{
|
|
||||||
return org.libreoffice.example.XWriter2latexHelper.type ();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
package org.libreoffice.example;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* org/libreoffice/example/XWriter2latexOperations.java .
|
|
||||||
* Generated by the IDL-to-Java compiler (portable), version "3.2"
|
|
||||||
* from XWriter2latex.idl
|
|
||||||
* Friday, 7 July 2017 12:51:34 o'clock MSK
|
|
||||||
*/
|
|
||||||
|
|
||||||
public interface XWriter2latexOperations
|
|
||||||
{
|
|
||||||
} // interface XWriter2latexOperations
|
|
|
@ -1,50 +0,0 @@
|
||||||
package org.libreoffice.example;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* org/libreoffice/example/_XWriter2latexStub.java .
|
|
||||||
* Generated by the IDL-to-Java compiler (portable), version "3.2"
|
|
||||||
* from XWriter2latex.idl
|
|
||||||
* Friday, 7 July 2017 12:51:34 o'clock MSK
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class _XWriter2latexStub extends org.omg.CORBA.portable.ObjectImpl implements org.libreoffice.example.XWriter2latex
|
|
||||||
{
|
|
||||||
|
|
||||||
// Type-specific CORBA::Object operations
|
|
||||||
private static String[] __ids = {
|
|
||||||
"IDL:org/libreoffice/example/XWriter2latex:1.0"};
|
|
||||||
|
|
||||||
public String[] _ids ()
|
|
||||||
{
|
|
||||||
return (String[])__ids.clone ();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void readObject (java.io.ObjectInputStream s) throws java.io.IOException
|
|
||||||
{
|
|
||||||
String str = s.readUTF ();
|
|
||||||
String[] args = null;
|
|
||||||
java.util.Properties props = null;
|
|
||||||
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init (args, props);
|
|
||||||
try {
|
|
||||||
org.omg.CORBA.Object obj = orb.string_to_object (str);
|
|
||||||
org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate ();
|
|
||||||
_set_delegate (delegate);
|
|
||||||
} finally {
|
|
||||||
orb.destroy() ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void writeObject (java.io.ObjectOutputStream s) throws java.io.IOException
|
|
||||||
{
|
|
||||||
String[] args = null;
|
|
||||||
java.util.Properties props = null;
|
|
||||||
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init (args, props);
|
|
||||||
try {
|
|
||||||
String str = orb.object_to_string (this);
|
|
||||||
s.writeUTF (str);
|
|
||||||
} finally {
|
|
||||||
orb.destroy() ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} // class _XWriter2latexStub
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,30 +0,0 @@
|
||||||
This directory contains idl specifications for the custom uno interfaces
|
|
||||||
defined by the Writer2LaTeX and Writer2xhtml extensions
|
|
||||||
|
|
||||||
To avoid dependencies on the OOo SDK in the build process, compiled versions
|
|
||||||
are included here.
|
|
||||||
|
|
||||||
If you need to rebuild it, the complete SDK is required. These are the steps:
|
|
||||||
|
|
||||||
To create the registry database for Writer2LaTeX:
|
|
||||||
|
|
||||||
idlc -I<path to SDK>\idl XW2LStarMathConverter.idl
|
|
||||||
regmerge writer2latex.rdb /UCR XW2LStarMathConverter.urd
|
|
||||||
|
|
||||||
To create the java interface
|
|
||||||
|
|
||||||
javamaker -BUCR -Torg.openoffice.da.writer2latex.XW2LStarMathConverter -nD <path to the OOo installation>\program\types.rdb writer2latex.rdb
|
|
||||||
|
|
||||||
and likewise for Writer2xhtml:
|
|
||||||
|
|
||||||
idlc -I<path to SDK>\idl XBatchConverter.idl
|
|
||||||
regmerge writer2xhtml.rdb /UCR XBatchConverter.urd
|
|
||||||
|
|
||||||
To create the java interfaces
|
|
||||||
|
|
||||||
javamaker -BUCR -Torg.openoffice.da.writer2xhtml.XBatchConverter -nD <path to the OOo installation>\program\types.rdb writer2xhtml.rdb
|
|
||||||
javamaker -BUCR -Torg.openoffice.da.writer2xhtml.XBatchHandler -nD <path to the OOo installation>\program\types.rdb writer2xhtml.rdb
|
|
||||||
|
|
||||||
|
|
||||||
If you need to use the interfaces from C++ you will also need to run cppumaker
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
#ifndef __org_openoffice_da_writer2latex_XW2LStarMathConverter_idl__
|
|
||||||
#define __org_openoffice_da_writer2latex_XW2LStarMathConverter_idl__
|
|
||||||
#include <com/sun/star/uno/XInterface.idl>
|
|
||||||
|
|
||||||
module org { module openoffice { module da { module writer2latex {
|
|
||||||
|
|
||||||
interface XW2LStarMathConverter : com::sun::star::uno::XInterface
|
|
||||||
{
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2latex::XW2LStarMathConverter::convertFormula
|
|
||||||
string convertFormula ( [in] string sStarMathFormula );
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2latex::XW2LStarMathConverter::getPreamble
|
|
||||||
string getPreamble ( );
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}; }; }; };
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,52 +0,0 @@
|
||||||
#ifndef __org_openoffice_da_writer2xhtml_XBatchConverter_idl__
|
|
||||||
#define __org_openoffice_da_writer2xhtml_XBatchConverter_idl__
|
|
||||||
#include <com/sun/star/uno/XInterface.idl>
|
|
||||||
#include <com/sun/star/beans/PropertyValue.idl>
|
|
||||||
|
|
||||||
module org { module openoffice { module da { module writer2xhtml {
|
|
||||||
|
|
||||||
// This interface is an IDL version of the java interface (writer2latex.api.BatchHandler)
|
|
||||||
interface XBatchHandler : com::sun::star::uno::XInterface
|
|
||||||
{
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::startConversion
|
|
||||||
void startConversion ();
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::endConversion
|
|
||||||
void endConversion ();
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::startDirectory
|
|
||||||
void startDirectory ( [in] string sName );
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::endDirectory
|
|
||||||
void endDirectory ( [in] string sName, [in] boolean bSuccess );
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::startFile
|
|
||||||
void startFile ( [in] string sName );
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::endFile
|
|
||||||
void endFile ( [in] string sName, [in] boolean bSuccess );
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchHandler::cancel
|
|
||||||
boolean cancel ();
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// This interface is an IDL version of the java interface (writer2latex.api.BatchConverter)
|
|
||||||
interface XBatchConverter : com::sun::star::uno::XInterface
|
|
||||||
{
|
|
||||||
|
|
||||||
// method org::openoffice::da::writer2xhtml::XBatchConverter::convert
|
|
||||||
void convert ( [in] string sSourceURL,
|
|
||||||
[in] string sTargetURL,
|
|
||||||
[in] sequence< com::sun::star::beans::PropertyValue > lArguments,
|
|
||||||
[in] XBatchHandler handler );
|
|
||||||
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
}; }; }; };
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -25,7 +25,7 @@ import org.slf4j.LoggerFactory;
|
||||||
import com.sun.star.uno.XComponentContext;
|
import com.sun.star.uno.XComponentContext;
|
||||||
|
|
||||||
import w2phtml.Application;
|
import w2phtml.Application;
|
||||||
import w2phtml.rdf.Metadata;
|
import w2phtml.rdf.MetadataContainer;
|
||||||
|
|
||||||
public class ConversionExecutor {
|
public class ConversionExecutor {
|
||||||
|
|
||||||
|
|
|
@ -263,14 +263,14 @@ public class EpubPanel extends JPanel {
|
||||||
|
|
||||||
JCheckBox addPagination(HashMap<String, Component> configuration, UIPreferences preferences) {
|
JCheckBox addPagination(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||||
cb_Pagination_1 = new JCheckBox(Localizer.get(LABEL_PAGINATION));
|
cb_Pagination_1 = new JCheckBox(Localizer.get(LABEL_PAGINATION));
|
||||||
cb_Pagination_1.setSelected(Boolean.getBoolean(preferences.get(PREF_PAGINATION)));
|
cb_Pagination_1.setSelected(Boolean.valueOf(preferences.get(PREF_PAGINATION)));
|
||||||
configuration.put(ARG_PAGINATION, cb_Pagination_1);
|
configuration.put(ARG_PAGINATION, cb_Pagination_1);
|
||||||
return cb_Pagination_1;
|
return cb_Pagination_1;
|
||||||
}
|
}
|
||||||
|
|
||||||
JCheckBox addConvertToPX(HashMap<String, Component> configuration, UIPreferences preferences) {
|
JCheckBox addConvertToPX(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||||
cb_convertToPx_1 = new JCheckBox(Localizer.get(LABEL_CONVERT_TO_PX));
|
cb_convertToPx_1 = new JCheckBox(Localizer.get(LABEL_CONVERT_TO_PX));
|
||||||
cb_convertToPx_1.setSelected(Boolean.getBoolean(preferences.get(PREF_CONVERT_TO_PX)));
|
cb_convertToPx_1.setSelected(Boolean.valueOf(preferences.get(PREF_CONVERT_TO_PX)));
|
||||||
configuration.put(ARG_CONVERT_TO_PX, cb_convertToPx_1);
|
configuration.put(ARG_CONVERT_TO_PX, cb_convertToPx_1);
|
||||||
return cb_convertToPx_1;
|
return cb_convertToPx_1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -303,14 +303,14 @@ public class HTMLPanel extends JPanel{
|
||||||
|
|
||||||
JCheckBox addPagination(HashMap<String, Component> configuration, UIPreferences preferences) {
|
JCheckBox addPagination(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||||
cb_Pagination_1 = new JCheckBox(Localizer.get(LABEL_PAGINATION));
|
cb_Pagination_1 = new JCheckBox(Localizer.get(LABEL_PAGINATION));
|
||||||
cb_Pagination_1.setSelected(Boolean.getBoolean(preferences.get(PREF_PAGINATION)));
|
cb_Pagination_1.setSelected(Boolean.valueOf(preferences.get(PREF_PAGINATION)));
|
||||||
configuration.put(ARG_PAGINATION, cb_Pagination_1);
|
configuration.put(ARG_PAGINATION, cb_Pagination_1);
|
||||||
return cb_Pagination_1;
|
return cb_Pagination_1;
|
||||||
}
|
}
|
||||||
|
|
||||||
JCheckBox addConvertToPX(HashMap<String, Component> configuration, UIPreferences preferences) {
|
JCheckBox addConvertToPX(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||||
cb_convertToPx_1 = new JCheckBox(Localizer.get(LABEL_CONVERT_TO_PX));
|
cb_convertToPx_1 = new JCheckBox(Localizer.get(LABEL_CONVERT_TO_PX));
|
||||||
cb_convertToPx_1.setSelected(Boolean.getBoolean(preferences.get(PREF_CONVERT_TO_PX)));
|
cb_convertToPx_1.setSelected(Boolean.valueOf(preferences.get(PREF_CONVERT_TO_PX)));
|
||||||
configuration.put(ARG_CONVERT_TO_PX, cb_convertToPx_1);
|
configuration.put(ARG_CONVERT_TO_PX, cb_convertToPx_1);
|
||||||
return cb_convertToPx_1;
|
return cb_convertToPx_1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -340,14 +340,14 @@ public class RDFPanel extends JPanel {
|
||||||
|
|
||||||
JCheckBox addPagination(HashMap<String, Component> configuration, UIPreferences preferences) {
|
JCheckBox addPagination(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||||
cb_Pagination_1 = new JCheckBox(Localizer.get(LABEL_PAGINATION));
|
cb_Pagination_1 = new JCheckBox(Localizer.get(LABEL_PAGINATION));
|
||||||
cb_Pagination_1.setSelected(Boolean.getBoolean(preferences.get(PREF_PAGINATION)));
|
cb_Pagination_1.setSelected(Boolean.valueOf(preferences.get(PREF_PAGINATION)));
|
||||||
configuration.put(ARG_PAGINATION, cb_Pagination_1);
|
configuration.put(ARG_PAGINATION, cb_Pagination_1);
|
||||||
return cb_Pagination_1;
|
return cb_Pagination_1;
|
||||||
}
|
}
|
||||||
|
|
||||||
JCheckBox addConvertToPX(HashMap<String, Component> configuration, UIPreferences preferences) {
|
JCheckBox addConvertToPX(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||||
cb_convertToPx_1 = new JCheckBox(Localizer.get(LABEL_CONVERT_TO_PX));
|
cb_convertToPx_1 = new JCheckBox(Localizer.get(LABEL_CONVERT_TO_PX));
|
||||||
cb_convertToPx_1.setSelected(Boolean.getBoolean(preferences.get(PREF_CONVERT_TO_PX)));
|
cb_convertToPx_1.setSelected(Boolean.valueOf(preferences.get(PREF_CONVERT_TO_PX)));
|
||||||
configuration.put(ARG_CONVERT_TO_PX, cb_convertToPx_1);
|
configuration.put(ARG_CONVERT_TO_PX, cb_convertToPx_1);
|
||||||
return cb_convertToPx_1;
|
return cb_convertToPx_1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,13 +6,11 @@ import static w2phtml.office.XMLString.TEXT_LIST_ITEM;
|
||||||
import static w2phtml.office.XMLString.TEXT_LIST;
|
import static w2phtml.office.XMLString.TEXT_LIST;
|
||||||
import static w2phtml.office.XMLString.TEXT_SOFT_PAGE_BREAK;
|
import static w2phtml.office.XMLString.TEXT_SOFT_PAGE_BREAK;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.w3c.dom.Node;
|
import org.w3c.dom.Node;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
|
|
||||||
import pro.litvinovg.xml.Debug;
|
|
||||||
import w2phtml.office.OfficeReader;
|
import w2phtml.office.OfficeReader;
|
||||||
|
|
||||||
public class ListSplitter extends BasicSplitter implements ISplitter {
|
public class ListSplitter extends BasicSplitter implements ISplitter {
|
||||||
|
@ -60,9 +58,14 @@ public class ListSplitter extends BasicSplitter implements ISplitter {
|
||||||
} else {
|
} else {
|
||||||
list.removeChild(child);
|
list.removeChild(child);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
//Debug.printNode(child);
|
||||||
|
//Found SPB at start of the list
|
||||||
|
//Add SPB before the list
|
||||||
|
if (isRootElement(list)) {
|
||||||
|
parent.insertBefore(softPageBreak, list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Debug.printNode(child);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
// Not with SPB yet, move node, set dataMoved=true
|
// Not with SPB yet, move node, set dataMoved=true
|
||||||
|
@ -96,7 +99,7 @@ public class ListSplitter extends BasicSplitter implements ISplitter {
|
||||||
while (freeNodes.getLength() > 0) {
|
while (freeNodes.getLength() > 0) {
|
||||||
Node freeNode = freeNodes.item(i);
|
Node freeNode = freeNodes.item(i);
|
||||||
String freeNodeName = freeNode.getNodeName();
|
String freeNodeName = freeNode.getNodeName();
|
||||||
if (StringUtils.equals(TEXT_LIST, freeNodeName)) {
|
if (TEXT_LIST.equals(freeNodeName)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
parent.insertBefore(freeNode, list);
|
parent.insertBefore(freeNode, list);
|
||||||
|
|
|
@ -37,9 +37,9 @@ public class DocumentPart {
|
||||||
private String parentPath;
|
private String parentPath;
|
||||||
private String name = null;
|
private String name = null;
|
||||||
private String order = null;
|
private String order = null;
|
||||||
private Metadata metadata = null;
|
private MetadataContainer metadata = null;
|
||||||
|
|
||||||
public DocumentPart(XhtmlDocument document,Metadata metadata) {
|
public DocumentPart(XhtmlDocument document,MetadataContainer metadata) {
|
||||||
this.excerptDoc = document;
|
this.excerptDoc = document;
|
||||||
this.metadata = metadata;
|
this.metadata = metadata;
|
||||||
extractPath();
|
extractPath();
|
||||||
|
@ -50,7 +50,7 @@ public class DocumentPart {
|
||||||
extractAnnotationMetadata();
|
extractAnnotationMetadata();
|
||||||
}
|
}
|
||||||
|
|
||||||
public DocumentPart(String path, Metadata metadata) {
|
public DocumentPart(String path, MetadataContainer metadata) {
|
||||||
this.path = path;
|
this.path = path;
|
||||||
this.metadata = metadata;
|
this.metadata = metadata;
|
||||||
this.name = "";
|
this.name = "";
|
||||||
|
|
|
@ -19,28 +19,28 @@ import org.slf4j.LoggerFactory;
|
||||||
import com.opencsv.CSVReaderHeaderAware;
|
import com.opencsv.CSVReaderHeaderAware;
|
||||||
import com.opencsv.exceptions.CsvValidationException;
|
import com.opencsv.exceptions.CsvValidationException;
|
||||||
|
|
||||||
public class Metadata {
|
public class MetadataContainer {
|
||||||
private static final String SUBTITLE = "subtitle";
|
private static final String SUBTITLE = "subtitle";
|
||||||
private static final String FILENAME = "Filename";
|
private static final String FILENAME = "Filename";
|
||||||
private static final String SECTION = "Section";
|
private static final String SECTION = "Section";
|
||||||
private static final Logger logger = LoggerFactory.getLogger(Metadata.class);
|
private static final Logger logger = LoggerFactory.getLogger(MetadataContainer.class);
|
||||||
|
|
||||||
private HashMap<String, ArrayList<Map<String, String>>> sectionsMetadata;
|
private HashMap<String, ArrayList<Map<String, String>>> sectionsMetadata;
|
||||||
|
|
||||||
public Metadata() {
|
public MetadataContainer() {
|
||||||
sectionsMetadata = new HashMap<String, ArrayList<Map<String, String>>>();
|
sectionsMetadata = new HashMap<String, ArrayList<Map<String, String>>>();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void read(String metadataFilePath) {
|
public void read(String filePath) {
|
||||||
if (metadataFilePath == null) {
|
if (filePath == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
File file = new File(metadataFilePath);
|
File file = new File(filePath);
|
||||||
if (!file.exists() || !file.canRead()) {
|
if (!file.exists() || !file.canRead()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
readCSVFile(metadataFilePath);
|
readCSVFile(filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void readCSVFile(String filePath) {
|
private void readCSVFile(String filePath) {
|
|
@ -20,6 +20,7 @@ import org.apache.jena.rdf.model.Resource;
|
||||||
import org.apache.jena.vocabulary.*;
|
import org.apache.jena.vocabulary.*;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import static w2phtml.util.Transliteration.*;
|
||||||
|
|
||||||
import w2phtml.xhtml.XhtmlConfig;
|
import w2phtml.xhtml.XhtmlConfig;
|
||||||
import w2phtml.xhtml.XhtmlDocument;
|
import w2phtml.xhtml.XhtmlDocument;
|
||||||
|
@ -27,36 +28,32 @@ import w2phtml.xhtml.XhtmlDocument;
|
||||||
import org.apache.jena.rdf.model.Property;
|
import org.apache.jena.rdf.model.Property;
|
||||||
|
|
||||||
|
|
||||||
public class DocumentStructure {
|
public class RDFDocument {
|
||||||
|
|
||||||
|
private static final String FORMAT_RDF = "RDF/XML-ABBREV";
|
||||||
private static final String AFFILIATED_ORGANIZATION_POSTAL_CODE = "affiliated organization postal code";
|
private static final String AFFILIATED_ORGANIZATION_POSTAL_CODE = "affiliated organization postal code";
|
||||||
|
|
||||||
private static final String AFFILIATED_ORGANIZATION_ADDRESS = "affiliated organization address";
|
private static final String AFFILIATED_ORGANIZATION_ADDRESS = "affiliated organization address";
|
||||||
|
|
||||||
private static final String AFFILIATED_ORGANIZATION_OFFICIAL_NAME = "affiliated organization official name";
|
private static final String AFFILIATED_ORGANIZATION_OFFICIAL_NAME = "affiliated organization official name";
|
||||||
|
|
||||||
private static final String AFFILIATED_ORGANIZATION_NAME = "affiliated organization name";
|
private static final String AFFILIATED_ORGANIZATION_NAME = "affiliated organization name";
|
||||||
|
|
||||||
private static final String AUTHOR_INITIALS = "author initials";
|
private static final String AUTHOR_INITIALS = "author initials";
|
||||||
|
|
||||||
private static final String AUTHOR_EMAIL = "author email";
|
private static final String AUTHOR_EMAIL = "author email";
|
||||||
|
|
||||||
private static final String AUTHOR_FAMILY = "author family";
|
private static final String AUTHOR_FAMILY = "author family";
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(RDFDocument.class);
|
||||||
private static final Logger logger = LoggerFactory.getLogger(DocumentStructure.class);
|
|
||||||
|
|
||||||
private static final String AUTHOR_GIVEN_NAME = "author given name";
|
private static final String AUTHOR_GIVEN_NAME = "author given name";
|
||||||
private static final String MODIFICATION_TIME = "modificationTime";
|
private static final String MODIFICATION_TIME = "modificationTime";
|
||||||
private static final String HTML_EXCERPT_PROPERTY = "htmlExcerpt";
|
private static final String HTML_EXCERPT_PROPERTY = "htmlExcerpt";
|
||||||
private static final String TOCITEM = "TOCItem";
|
private static final String TOC_ITEM = "TOCItem";
|
||||||
private static final String TS = "https://litvinovg.pro/text_structures#";
|
private static final String TS = "https://litvinovg.pro/text_structures#";
|
||||||
|
private static final String POINTS_TO = TS + "pointsTo";
|
||||||
|
private static final String ITEM_NUMBER = TS + "itemNumber";
|
||||||
|
private static final String HAS_TOC_ITEM = TS + "hasTOCItem";
|
||||||
|
private static final String HAS_TEXT = TS + "hasText";
|
||||||
//private static final String PARSERNAME = "w2phtml";
|
//private static final String PARSERNAME = "w2phtml";
|
||||||
private static final String TEXT_EXCERPT = "textExcerpt";
|
private static final String TEXT_EXCERPT = "textExcerpt";
|
||||||
private static final String TOC_LEVEL = "TOCLevel";
|
private static final String TOC_LEVEL = "TOCLevel";
|
||||||
private static final String TABLE_OF_CONTENTS = "TOC";
|
private static final String TABLE_OF_CONTENTS = "TOC";
|
||||||
private static final String PARTICIPANT = "publicationParticipant";
|
private static final String PARTICIPANT = "publicationParticipant";
|
||||||
private static final String ORGANIZATION = "organization";
|
private static final String ORGANIZATION = "organization";
|
||||||
|
|
||||||
private static final String PUBLICATION = "publication";
|
private static final String PUBLICATION = "publication";
|
||||||
private static final String BOOK = "book";
|
private static final String BOOK = "book";
|
||||||
private static final String JOURNAL = "journal";
|
private static final String JOURNAL = "journal";
|
||||||
|
@ -81,10 +78,10 @@ public class DocumentStructure {
|
||||||
|
|
||||||
private HashMap<String, Resource> tocLevels;
|
private HashMap<String, Resource> tocLevels;
|
||||||
private HashMap<String, DocumentPart> inputParts;
|
private HashMap<String, DocumentPart> inputParts;
|
||||||
private Metadata metadata;
|
private MetadataContainer metadata;
|
||||||
private Date currentTime;
|
private Date currentTime;
|
||||||
|
|
||||||
public DocumentStructure(Vector<XhtmlDocument> files,String fileName, XhtmlConfig config,Metadata metadata) {
|
public RDFDocument(Vector<XhtmlDocument> files,String fileName, XhtmlConfig config, MetadataContainer metadata) {
|
||||||
this.tocLevels = new HashMap<String, Resource>();
|
this.tocLevels = new HashMap<String, Resource>();
|
||||||
this.inputParts = new HashMap<String, DocumentPart>();
|
this.inputParts = new HashMap<String, DocumentPart>();
|
||||||
this.m = ModelFactory.createOntologyModel();
|
this.m = ModelFactory.createOntologyModel();
|
||||||
|
@ -94,11 +91,10 @@ public class DocumentStructure {
|
||||||
this.tocClass = textOntology.createClass(TS + TABLE_OF_CONTENTS);
|
this.tocClass = textOntology.createClass(TS + TABLE_OF_CONTENTS);
|
||||||
this.organizationClass = textOntology.createClass(TS + ORGANIZATION);
|
this.organizationClass = textOntology.createClass(TS + ORGANIZATION);
|
||||||
this.participantClass = textOntology.createClass(TS + PARTICIPANT);
|
this.participantClass = textOntology.createClass(TS + PARTICIPANT);
|
||||||
this.itemClass = textOntology.createClass(TS + TOCITEM);
|
this.itemClass = textOntology.createClass(TS + TOC_ITEM);
|
||||||
setDocID(fileName);
|
formatDocID(fileName);
|
||||||
this.currentTime = Calendar.getInstance().getTime();
|
this.currentTime = Calendar.getInstance().getTime();
|
||||||
String publicationType = config.getRDFType();
|
setPublicationType(config.getRDFType());
|
||||||
setPublicationType(publicationType);
|
|
||||||
this.documentClass = textOntology.createClass(TS + documentType);
|
this.documentClass = textOntology.createClass(TS + documentType);
|
||||||
this.excerptClass = textOntology.createClass(TS + excerptType);
|
this.excerptClass = textOntology.createClass(TS + excerptType);
|
||||||
for(int i = 0 ; i< files.size();i++) {
|
for(int i = 0 ; i< files.size();i++) {
|
||||||
|
@ -108,6 +104,12 @@ public class DocumentStructure {
|
||||||
addPart(part);
|
addPart(part);
|
||||||
}
|
}
|
||||||
addEmptyParts();
|
addEmptyParts();
|
||||||
|
createElements();
|
||||||
|
createTOCItems();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printModel(OutputStream os) {
|
||||||
|
m.write(os,FORMAT_RDF);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setPublicationType(String publicationType) {
|
private void setPublicationType(String publicationType) {
|
||||||
|
@ -155,30 +157,6 @@ public class DocumentStructure {
|
||||||
}
|
}
|
||||||
return emptyPath.toString();
|
return emptyPath.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void printModel(String fileName) {
|
|
||||||
File outFile = new File(fileName + ".rdf");
|
|
||||||
FileWriter fw = null;
|
|
||||||
try {
|
|
||||||
outFile.createNewFile();
|
|
||||||
fw = new FileWriter(outFile);
|
|
||||||
m.write(fw,"RDF/XML-ABBREV");
|
|
||||||
|
|
||||||
} catch (IOException e) {
|
|
||||||
System.out.println("File couldn't be created");
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
fw.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public void printModel(OutputStream os) {
|
|
||||||
m.write(os,"RDF/XML-ABBREV");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addPart(DocumentPart docExcerpt) {
|
private void addPart(DocumentPart docExcerpt) {
|
||||||
inputParts.put(docExcerpt.getPath(), docExcerpt);
|
inputParts.put(docExcerpt.getPath(), docExcerpt);
|
||||||
|
@ -273,13 +251,13 @@ public class DocumentStructure {
|
||||||
Property initialsProperty = m.createProperty(TS + "participantInitials");
|
Property initialsProperty = m.createProperty(TS + "participantInitials");
|
||||||
participant.addProperty( initialsProperty, authorInitials.trim());
|
participant.addProperty( initialsProperty, authorInitials.trim());
|
||||||
}
|
}
|
||||||
attachOrganization(participant, map, order, postfix);
|
addOrganization(participant, map, order, postfix);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void attachOrganization(Resource participant, Map<String, String> map, String order, String postfix) {
|
private void addOrganization(Resource participant, Map<String, String> map, String order, String postfix) {
|
||||||
String orgName = map.get(AFFILIATED_ORGANIZATION_NAME + postfix);
|
String orgName = map.get(AFFILIATED_ORGANIZATION_NAME + postfix);
|
||||||
if (orgName == null) {
|
if (orgName == null) {
|
||||||
System.out.println(orgName + " not found");
|
System.out.println(orgName + " not found");
|
||||||
|
@ -402,19 +380,18 @@ public class DocumentStructure {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
private void createTOCItem(DocumentPart docPart) {
|
private void createTOCItem(DocumentPart docPart) {
|
||||||
String tocItemName = TS + TOCITEM + "/" + docID + docPart.getSafePath();
|
String tocItemUri = TS + TOC_ITEM + "/" + docID + docPart.getSafePath();
|
||||||
Resource tocItem = m.createIndividual(tocItemName,itemClass);
|
Resource tocItem = m.createIndividual(tocItemUri,itemClass);
|
||||||
tocItem.addProperty( RDFS.label, docPart.getName());
|
tocItem.addProperty( RDFS.label, docPart.getName());
|
||||||
Property pointsTo = m.createProperty(TS + "pointsTo");
|
Property pointsTo = m.createProperty(POINTS_TO);
|
||||||
Property itemNumber = m.createProperty(TS + "itemNumber");
|
Property itemNumber = m.createProperty(ITEM_NUMBER);
|
||||||
Property hasTOCItem = m.createProperty(TS + "hasTOCItem");
|
Property hasTOCItem = m.createProperty(HAS_TOC_ITEM);
|
||||||
tocItem.addLiteral(itemNumber, docPart.getNumber());
|
tocItem.addLiteral(itemNumber, docPart.getNumber());
|
||||||
m.add(tocItem, pointsTo, tocLevels.get(docPart.getPath()));
|
m.add(tocItem, pointsTo, tocLevels.get(docPart.getPath()));
|
||||||
if (!docPart.getPath().isEmpty()) {
|
if (!docPart.getPath().isEmpty()) {
|
||||||
Resource parent = tocLevels.get(docPart.getParentPath());
|
Resource parent = tocLevels.get(docPart.getParentPath());
|
||||||
m.add(parent, hasTOCItem, tocItem);
|
m.add(parent, hasTOCItem, tocItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void attachExcerpt(DocumentPart docPart, Resource element) {
|
private void attachExcerpt(DocumentPart docPart, Resource element) {
|
||||||
|
@ -426,7 +403,7 @@ public class DocumentStructure {
|
||||||
}
|
}
|
||||||
Resource excerpt = createExcerpt(docPart);
|
Resource excerpt = createExcerpt(docPart);
|
||||||
excerpt.addProperty( RDFS.label, docPart.getName());
|
excerpt.addProperty( RDFS.label, docPart.getName());
|
||||||
Property hasText = m.createProperty(TS + "hasText");
|
Property hasText = m.createProperty(HAS_TEXT);
|
||||||
element.addProperty(hasText, excerpt);
|
element.addProperty(hasText, excerpt);
|
||||||
if (!docPart.isMasterPart()) {
|
if (!docPart.isMasterPart()) {
|
||||||
addMetadataProperties(excerpt, docPart);
|
addMetadataProperties(excerpt, docPart);
|
||||||
|
@ -435,11 +412,6 @@ public class DocumentStructure {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createTree() {
|
|
||||||
createElements();
|
|
||||||
createTOCItems();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createTOCItems() {
|
private void createTOCItems() {
|
||||||
Set<String> paths = inputParts.keySet();
|
Set<String> paths = inputParts.keySet();
|
||||||
for (String path : paths) {
|
for (String path : paths) {
|
||||||
|
@ -462,48 +434,10 @@ public class DocumentStructure {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setDocID(String fileName) {
|
private void formatDocID(String fileName) {
|
||||||
String identifier = fileName.replaceAll("\\s+", "_");
|
String identifier = fileName.replaceAll("\\s+", "_");
|
||||||
identifier = transliterateToEn(identifier);
|
identifier = transliterateToEn(identifier);
|
||||||
identifier = identifier.replaceAll("[^a-zA-Z0-9_.-]", "");
|
identifier = identifier.replaceAll("[^a-zA-Z0-9_.-]", "");
|
||||||
this.docID = identifier;
|
this.docID = identifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String transliterateToEn(String fileName) {
|
|
||||||
return fileName
|
|
||||||
.replaceAll("[аА]", "a")
|
|
||||||
.replaceAll("[бБ]", "b")
|
|
||||||
.replaceAll("[вВ]", "v")
|
|
||||||
.replaceAll("[гГ]", "g")
|
|
||||||
.replaceAll("[дД]", "d")
|
|
||||||
.replaceAll("[еЕ]", "e")
|
|
||||||
.replaceAll("[ёЁ]", "e")
|
|
||||||
.replaceAll("[жЖ]", "zh")
|
|
||||||
.replaceAll("[зЗ]", "z")
|
|
||||||
.replaceAll("[иИ]", "i")
|
|
||||||
.replaceAll("[йЙ]", "y")
|
|
||||||
.replaceAll("[кК]", "k")
|
|
||||||
.replaceAll("[лЛ]", "l")
|
|
||||||
.replaceAll("[мМ]", "m")
|
|
||||||
.replaceAll("[нН]", "n")
|
|
||||||
.replaceAll("[оО]", "o")
|
|
||||||
.replaceAll("[пП]", "p")
|
|
||||||
.replaceAll("[рР]", "r")
|
|
||||||
.replaceAll("[сС]", "s")
|
|
||||||
.replaceAll("[тТ]", "t")
|
|
||||||
.replaceAll("[уУ]", "u")
|
|
||||||
.replaceAll("[фФ]", "f")
|
|
||||||
.replaceAll("[хХ]", "kh")
|
|
||||||
.replaceAll("[цЦ]", "ts")
|
|
||||||
.replaceAll("[чЧ]", "ch")
|
|
||||||
.replaceAll("[шШ]", "sh")
|
|
||||||
.replaceAll("[щЩ]", "sch")
|
|
||||||
.replaceAll("[ъЪ]", "")
|
|
||||||
.replaceAll("[ыЫ]", "y")
|
|
||||||
.replaceAll("[ьЬ]", "")
|
|
||||||
.replaceAll("[эЭ]", "e")
|
|
||||||
.replaceAll("[юЮ]", "yu")
|
|
||||||
.replaceAll("[яЯ]", "ya");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -17,17 +17,15 @@ public class RDFDocumentResult implements OutputFile {
|
||||||
private ConverterResult xhtmlResult;
|
private ConverterResult xhtmlResult;
|
||||||
private String sFileName;
|
private String sFileName;
|
||||||
private XhtmlConfig config;
|
private XhtmlConfig config;
|
||||||
private DocumentStructure rdfStructure = null;
|
private RDFDocument rdfDocument = null;
|
||||||
|
|
||||||
|
|
||||||
public RDFDocumentResult(Vector<XhtmlDocument> outFiles, String fileName, XhtmlConfig config) {
|
public RDFDocumentResult(Vector<XhtmlDocument> outFiles, String fileName, XhtmlConfig config) {
|
||||||
this.sFileName = Misc.removeExtension(fileName);
|
this.sFileName = Misc.removeExtension(fileName);
|
||||||
this.config = config;
|
this.config = config;
|
||||||
Metadata metadata = new Metadata();
|
MetadataContainer metadata = new MetadataContainer();
|
||||||
metadata.read(config.getCSVMetadataFile());
|
metadata.read(config.getCSVMetadataFile());
|
||||||
rdfStructure = new DocumentStructure(outFiles,sFileName,config,metadata);
|
rdfDocument = new RDFDocument(outFiles,sFileName,config,metadata);
|
||||||
rdfStructure.createTree();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +46,7 @@ public class RDFDocumentResult implements OutputFile {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void write(OutputStream os) throws IOException {
|
@Override public void write(OutputStream os) throws IOException {
|
||||||
rdfStructure.printModel(os);
|
rdfDocument.printModel(os);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>The package writer2latex.util</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<p>Some general utility classes.</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
41
src/main/java/w2phtml/util/Transliteration.java
Normal file
41
src/main/java/w2phtml/util/Transliteration.java
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
package w2phtml.util;
|
||||||
|
|
||||||
|
public class Transliteration {
|
||||||
|
|
||||||
|
public static String transliterateToEn(String fileName) {
|
||||||
|
return fileName
|
||||||
|
.replaceAll("[аА]", "a")
|
||||||
|
.replaceAll("[бБ]", "b")
|
||||||
|
.replaceAll("[вВ]", "v")
|
||||||
|
.replaceAll("[гГ]", "g")
|
||||||
|
.replaceAll("[дД]", "d")
|
||||||
|
.replaceAll("[еЕ]", "e")
|
||||||
|
.replaceAll("[ёЁ]", "e")
|
||||||
|
.replaceAll("[жЖ]", "zh")
|
||||||
|
.replaceAll("[зЗ]", "z")
|
||||||
|
.replaceAll("[иИ]", "i")
|
||||||
|
.replaceAll("[йЙ]", "y")
|
||||||
|
.replaceAll("[кК]", "k")
|
||||||
|
.replaceAll("[лЛ]", "l")
|
||||||
|
.replaceAll("[мМ]", "m")
|
||||||
|
.replaceAll("[нН]", "n")
|
||||||
|
.replaceAll("[оО]", "o")
|
||||||
|
.replaceAll("[пП]", "p")
|
||||||
|
.replaceAll("[рР]", "r")
|
||||||
|
.replaceAll("[сС]", "s")
|
||||||
|
.replaceAll("[тТ]", "t")
|
||||||
|
.replaceAll("[уУ]", "u")
|
||||||
|
.replaceAll("[фФ]", "f")
|
||||||
|
.replaceAll("[хХ]", "kh")
|
||||||
|
.replaceAll("[цЦ]", "ts")
|
||||||
|
.replaceAll("[чЧ]", "ch")
|
||||||
|
.replaceAll("[шШ]", "sh")
|
||||||
|
.replaceAll("[щЩ]", "sch")
|
||||||
|
.replaceAll("[ъЪ]", "")
|
||||||
|
.replaceAll("[ыЫ]", "y")
|
||||||
|
.replaceAll("[ьЬ]", "")
|
||||||
|
.replaceAll("[эЭ]", "e")
|
||||||
|
.replaceAll("[юЮ]", "yu")
|
||||||
|
.replaceAll("[яЯ]", "ya");
|
||||||
|
}
|
||||||
|
}
|
|
@ -119,6 +119,7 @@ public class ListParser extends Parser {
|
||||||
Element list = converter.createElement("ul");
|
Element list = converter.createElement("ul");
|
||||||
StyleInfo listInfo = new StyleInfo();
|
StyleInfo listInfo = new StyleInfo();
|
||||||
getListSP().applyStyle(nLevel,sStyleName,listInfo);
|
getListSP().applyStyle(nLevel,sStyleName,listInfo);
|
||||||
|
getListSP().readParentStyle(nLevel, sStyleName, listInfo);
|
||||||
writeStyle(listInfo,list);
|
writeStyle(listInfo,list);
|
||||||
hnode.appendChild(list);
|
hnode.appendChild(list);
|
||||||
traverseList(onode,nLevel,sStyleName,list);
|
traverseList(onode,nLevel,sStyleName,list);
|
||||||
|
|
|
@ -6,7 +6,6 @@ import java.util.List;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
@ -25,6 +24,6 @@ public class PageBreaksBeforeHeading {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/heading_with_page_break_before.html");
|
File result = new File("./testdocuments/output/heading_with_page_break_before.html");
|
||||||
File model = new File("./testdocuments/model/heading_with_page_break_before.html");
|
File model = new File("./testdocuments/model/heading_with_page_break_before.html");
|
||||||
assertTrue( FileUtils.contentEquals(result, model),"The files differ!");
|
assertTrue( TestFiles.equals(result, model),"The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package w2phtml.regressionTests;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public class TestFiles {
|
||||||
|
public static boolean equals(File file1, File file2) {
|
||||||
|
byte[] f1;
|
||||||
|
byte[] f2;
|
||||||
|
try {
|
||||||
|
f1 = Files.readAllBytes(file1.toPath());
|
||||||
|
f2 = Files.readAllBytes(file2.toPath());
|
||||||
|
return Arrays.equals(f1, f2);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
|
@ -26,6 +27,6 @@ public class BreakAfterTest {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + name + ".html");
|
File result = new File("./testdocuments/output/" + name + ".html");
|
||||||
File model = new File("./testdocuments/model/" + name + ".html");
|
File model = new File("./testdocuments/model/" + name + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class BulletList {
|
public class BulletList {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("List on multiple pages")
|
@DisplayName("List on multiple pages")
|
||||||
|
@ -26,6 +27,6 @@ public class BulletList {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + name + ".html");
|
File result = new File("./testdocuments/output/" + name + ".html");
|
||||||
File model = new File("./testdocuments/model/" + name + ".html");
|
File model = new File("./testdocuments/model/" + name + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class GreenstoneHeadings {
|
public class GreenstoneHeadings {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("Greenstone3 tags headings")
|
@DisplayName("Greenstone3 tags headings")
|
||||||
|
@ -25,6 +26,6 @@ public class GreenstoneHeadings {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + testName + ".html");
|
File result = new File("./testdocuments/output/" + testName + ".html");
|
||||||
File model = new File("./testdocuments/model/" + testName + ".html");
|
File model = new File("./testdocuments/model/" + testName + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class HardPageBreaksInLists {
|
public class HardPageBreaksInLists {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("Hard page breaks inside list")
|
@DisplayName("Hard page breaks inside list")
|
||||||
|
@ -26,6 +27,6 @@ public class HardPageBreaksInLists {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + name + ".html");
|
File result = new File("./testdocuments/output/" + name + ".html");
|
||||||
File model = new File("./testdocuments/model/" + name + ".html");
|
File model = new File("./testdocuments/model/" + name + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class HeadingWithSections {
|
public class HeadingWithSections {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("Heading with sections")
|
@DisplayName("Heading with sections")
|
||||||
|
@ -24,6 +25,6 @@ public class HeadingWithSections {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/"+testName+".html");
|
File result = new File("./testdocuments/output/"+testName+".html");
|
||||||
File model = new File("./testdocuments/model/"+testName+".html");
|
File model = new File("./testdocuments/model/"+testName+".html");
|
||||||
assertTrue( FileUtils.contentEquals(result, model),"The files differ!");
|
assertTrue(TestFiles.equals(result, model),"The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class ImageAfterSection {
|
public class ImageAfterSection {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("image after section")
|
@DisplayName("image after section")
|
||||||
|
@ -24,6 +25,6 @@ public class ImageAfterSection {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + testName + ".html");
|
File result = new File("./testdocuments/output/" + testName + ".html");
|
||||||
File model = new File("./testdocuments/model/" + testName + ".html");
|
File model = new File("./testdocuments/model/" + testName + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
package w2phtml.regressionTests.html5;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.DisplayName;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
|
public class ListAfterText {
|
||||||
|
@Test
|
||||||
|
@DisplayName("List after soft page break")
|
||||||
|
void testExample() throws Exception {
|
||||||
|
String name = "list_after_spb";
|
||||||
|
File input = new File("./testdocuments/input/" + name + ".odt");
|
||||||
|
assertTrue(input.exists());
|
||||||
|
List<String> arguments = new ArrayList<String>();
|
||||||
|
arguments.add("-page_break_style");
|
||||||
|
arguments.add("height:3em;margin-top:1em;margin-bottom:1em;background-color:red;");
|
||||||
|
arguments.add("-html5");
|
||||||
|
arguments.add("./testdocuments/input/" + name + ".odt");
|
||||||
|
arguments.add("./testdocuments/output/" + name + ".html");
|
||||||
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
|
File result = new File("./testdocuments/output/" + name + ".html");
|
||||||
|
File model = new File("./testdocuments/model/" + name + ".html");
|
||||||
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class ListInSection {
|
public class ListInSection {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("List in section")
|
@DisplayName("List in section")
|
||||||
|
@ -26,6 +27,6 @@ public class ListInSection {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + name + ".html");
|
File result = new File("./testdocuments/output/" + name + ".html");
|
||||||
File model = new File("./testdocuments/model/" + name + ".html");
|
File model = new File("./testdocuments/model/" + name + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class ListInTable {
|
public class ListInTable {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("list in table")
|
@DisplayName("list in table")
|
||||||
|
@ -24,6 +25,6 @@ public class ListInTable {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + testName + ".html");
|
File result = new File("./testdocuments/output/" + testName + ".html");
|
||||||
File model = new File("./testdocuments/model/" + testName + ".html");
|
File model = new File("./testdocuments/model/" + testName + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class ListTableSection {
|
public class ListTableSection {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("list in table in section")
|
@DisplayName("list in table in section")
|
||||||
|
@ -24,6 +25,6 @@ public class ListTableSection {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + testName + ".html");
|
File result = new File("./testdocuments/output/" + testName + ".html");
|
||||||
File model = new File("./testdocuments/model/" + testName + ".html");
|
File model = new File("./testdocuments/model/" + testName + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class PageStartWith10 {
|
public class PageStartWith10 {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("start page from 10 in section")
|
@DisplayName("start page from 10 in section")
|
||||||
|
@ -24,6 +25,6 @@ public class PageStartWith10 {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + testName + ".html");
|
File result = new File("./testdocuments/output/" + testName + ".html");
|
||||||
File model = new File("./testdocuments/model/" + testName + ".html");
|
File model = new File("./testdocuments/model/" + testName + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class PageStartWith10InSection {
|
public class PageStartWith10InSection {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("start page from 10")
|
@DisplayName("start page from 10")
|
||||||
|
@ -24,6 +25,6 @@ public class PageStartWith10InSection {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + testName + ".html");
|
File result = new File("./testdocuments/output/" + testName + ".html");
|
||||||
File model = new File("./testdocuments/model/" + testName + ".html");
|
File model = new File("./testdocuments/model/" + testName + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class SoftPageBreakInListTest {
|
public class SoftPageBreakInListTest {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("Soft page break in list")
|
@DisplayName("Soft page break in list")
|
||||||
|
@ -26,6 +27,6 @@ public class SoftPageBreakInListTest {
|
||||||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||||
File result = new File("./testdocuments/output/" + name + ".html");
|
File result = new File("./testdocuments/output/" + name + ".html");
|
||||||
File model = new File("./testdocuments/model/" + name + ".html");
|
File model = new File("./testdocuments/model/" + name + ".html");
|
||||||
assertTrue(FileUtils.contentEquals(result, model), "The files differ!");
|
assertTrue(TestFiles.equals(result, model), "The files differ!");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,10 +6,11 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import w2phtml.regressionTests.TestFiles;
|
||||||
|
|
||||||
public class SplitFilesAlignToPages {
|
public class SplitFilesAlignToPages {
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("Split files align to pages")
|
@DisplayName("Split files align to pages")
|
||||||
|
@ -28,8 +29,8 @@ public class SplitFilesAlignToPages {
|
||||||
File result2 = new File("./testdocuments/output/" + testName + "1.html");
|
File result2 = new File("./testdocuments/output/" + testName + "1.html");
|
||||||
File model1 = new File("./testdocuments/model/" + testName + ".html");
|
File model1 = new File("./testdocuments/model/" + testName + ".html");
|
||||||
File model2 = new File("./testdocuments/model/" + testName + "1.html");
|
File model2 = new File("./testdocuments/model/" + testName + "1.html");
|
||||||
assertTrue(FileUtils.contentEquals(result1, model1), "The files differ!");
|
assertTrue(TestFiles.equals(result1, model1), "The files differ!");
|
||||||
assertTrue(FileUtils.contentEquals(result2, model2), "The files differ!");
|
assertTrue(TestFiles.equals(result2, model2), "The files differ!");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
BIN
testdocuments/input/list_after_spb.odt
Normal file
BIN
testdocuments/input/list_after_spb.odt
Normal file
Binary file not shown.
43
testdocuments/model/list_after_spb.html
Normal file
43
testdocuments/model/list_after_spb.html
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru-RU" xml:lang="ru-RU" xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Default</title>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<style media="all" type="text/css">
|
||||||
|
body {margin-left:auto;max-width:800px;font-size:1.0rem;font-family:'IPH Lib Serif';margin-right:auto;}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body dir="ltr">
|
||||||
|
<div class="pageNum" page="1">
|
||||||
|
<div class="pageContainer" style="column-count: 1;">
|
||||||
|
<p class="Textbody" style="margin-left:0;border:none;padding:0;text-indent:2.1259842rem;font-size:1.0rem;margin-top:0;font-family:'IPH Astra Serif',serif;margin-bottom:0.58346456rem;margin-right:0;">text0</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pageBreak" style="height:3em;margin-top:1em;margin-bottom:1em;background-color:red;"> </div>
|
||||||
|
<div class="pageNum" page="2">
|
||||||
|
<div class="pageContainer" style="column-count: 1;">
|
||||||
|
<ul class="listlevel1List2" style="margin-left:0;list-style-type:none;padding-left:0;clear:left;margin-top:0;font-family:'IPH Astra Serif',serif;margin-bottom:0;">
|
||||||
|
<li>
|
||||||
|
<p class="Textbody" style="margin-left:0;border:none;padding:0;text-indent:2.1259842rem;font-size:1.0rem;margin-top:0;font-family:'IPH Astra Serif',serif;margin-bottom:0.58346456rem;margin-right:0;"><span class="ItemNumber">– </span>list1</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pageBreak" style="height:3em;margin-top:1em;margin-bottom:1em;background-color:red;"> </div>
|
||||||
|
<div class="pageNum" page="3">
|
||||||
|
<div class="pageContainer" style="column-count: 1;">
|
||||||
|
<ul class="listlevel1List2" style="margin-left:0;list-style-type:none;padding-left:0;clear:left;margin-top:0;font-family:'IPH Astra Serif',serif;margin-bottom:0;">
|
||||||
|
<li>
|
||||||
|
<p class="Textbody" style="margin-left:0;border:none;padding:0;text-indent:2.1259842rem;font-size:1.0rem;margin-top:0;font-family:'IPH Astra Serif',serif;margin-bottom:0.58346456rem;margin-right:0;"><span class="ItemNumber">– </span>list2</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pageBreak" style="height:3em;margin-top:1em;margin-bottom:1em;background-color:red;"> </div>
|
||||||
|
<div class="pageNum" page="4">
|
||||||
|
<div class="pageContainer" style="column-count: 1;">
|
||||||
|
<p class="Textbody" style="margin-left:0;border:none;padding:0;text-indent:2.1259842rem;font-size:1.0rem;margin-top:0;font-family:'IPH Astra Serif',serif;margin-bottom:0.58346456rem;margin-right:0;">text4</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -2,9 +2,9 @@
|
||||||
<description xmlns="http://openoffice.org/extensions/update/2006"
|
<description xmlns="http://openoffice.org/extensions/update/2006"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<identifier value="pro.litvinovg.writer2paginatedhtml"/>
|
<identifier value="pro.litvinovg.writer2paginatedhtml"/>
|
||||||
<version value="0.9.27" />
|
<version value="0.9.29" />
|
||||||
<update-download>
|
<update-download>
|
||||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/w2phtml/uploads/3214fab2e306f7e972f9b143e07e32a3/w2phtml.oxt" />
|
<src xlink:href="https://dev.litvinovg.pro/litvinovg/w2phtml/uploads/649b20bfbf3225a7c11ee1a01fdf6cf9/w2phtml.oxt" />
|
||||||
</update-download>
|
</update-download>
|
||||||
<release-notes>
|
<release-notes>
|
||||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/w2phtml/-/raw/master/src/main/oxt/releasenotes.txt" lang="en" />
|
<src xlink:href="https://dev.litvinovg.pro/litvinovg/w2phtml/-/raw/master/src/main/oxt/releasenotes.txt" lang="en" />
|
||||||
|
|
Loading…
Add table
Reference in a new issue