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:
|
||||
- build
|
||||
|
|
27
.project
27
.project
|
@ -2,22 +2,21 @@
|
|||
<projectDescription>
|
||||
<name>w2phtml</name>
|
||||
<comment></comment>
|
||||
<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>
|
||||
<projects/>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
||||
</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>
|
||||
|
|
49
build.gradle
49
build.gradle
|
@ -16,40 +16,37 @@ sourceSets {
|
|||
regressionTests {
|
||||
java {
|
||||
compileClasspath += main.output + test.output
|
||||
runtimeClasspath += main.output + files('src/main/java')
|
||||
java.srcDir file('src/r_tests/java')
|
||||
runtimeClasspath += main.output + test.output + files('src/main/java')
|
||||
srcDir file('src/r_tests/java')
|
||||
}
|
||||
}
|
||||
}
|
||||
sourceCompatibility = 1.8
|
||||
configurations{
|
||||
bundledLibs
|
||||
regressionTestsCompile.extendsFrom mainCompile
|
||||
regressionTestsRuntime.extendsFrom mainRuntime
|
||||
regressionTestsRuntime.extendsFrom bundledLibs
|
||||
regressionTestsRuntime.extendsFrom compileClasspath
|
||||
regressionTestsImplementation.extendsFrom compileClasspath
|
||||
}
|
||||
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-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'
|
||||
bundledLibs 'org.libreoffice:juh:5.3.2'
|
||||
bundledLibs 'org.libreoffice:ridl:5.3.2'
|
||||
bundledLibs 'org.libreoffice:unoil:5.3.2'
|
||||
bundledLibs 'org.json:json:20190722'
|
||||
bundledLibs group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
|
||||
bundledLibs group: 'ch.qos.logback', name: 'logback-core', version: '1.2.3'
|
||||
bundledLibs group: 'com.miglayout', name: 'miglayout-swing', version: '5.2'
|
||||
bundledLibs group: 'org.apache.jena', name: 'jena-core', version: '3.15.0'
|
||||
bundledLibs group: 'org.apache.jena', name: 'jena-arq', version: '3.15.0'
|
||||
bundledLibs group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
|
||||
bundledLibs group: 'com.opencsv', name: 'opencsv', version: '5.1'
|
||||
bundledLibs group: 'org.imgscalr', name: 'imgscalr-lib', version: '4.2'
|
||||
bundledLibs group: 'org.apache.commons', name: 'commons-imaging', version: '1.0-alpha2'
|
||||
compileClasspath 'org.libreoffice:jurt:5.3.2'
|
||||
compileClasspath 'org.libreoffice:juh:5.3.2'
|
||||
compileClasspath 'org.libreoffice:ridl:5.3.2'
|
||||
compileClasspath 'org.libreoffice:unoil:5.3.2'
|
||||
compileClasspath 'org.json:json:20190722'
|
||||
compileClasspath group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
|
||||
compileClasspath group: 'ch.qos.logback', name: 'logback-core', version: '1.2.3'
|
||||
compileClasspath group: 'com.miglayout', name: 'miglayout-swing', version: '5.2'
|
||||
compileClasspath group: 'org.apache.jena', name: 'jena-core', version: '3.15.0'
|
||||
compileClasspath group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
|
||||
compileClasspath group: 'com.opencsv', name: 'opencsv', version: '5.1'
|
||||
compileClasspath group: 'org.imgscalr', name: 'imgscalr-lib', version: '4.2'
|
||||
compileClasspath group: 'org.apache.commons', name: 'commons-imaging', version: '1.0-alpha2'
|
||||
|
||||
configurations.compile.extendsFrom(configurations.bundledLibs)
|
||||
}
|
||||
jar {
|
||||
archiveName 'w2phtml.jar'
|
||||
|
@ -60,8 +57,9 @@ jar {
|
|||
"Class-Path" : "jasp.jar parser.jar")
|
||||
}
|
||||
|
||||
duplicatesStrategy = 'exclude'
|
||||
from {
|
||||
configurations.bundledLibs.collect { it.isDirectory() ? it : zipTree(it) }
|
||||
configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }
|
||||
}
|
||||
from('src/main/java') {
|
||||
include '**/*.properties'
|
||||
|
@ -85,9 +83,10 @@ task xhtml(type: Jar) {
|
|||
"RegistrationClassName" : "pro.litvinovg.w2phtml.RegistrationHandler",
|
||||
"Class-Path" : "jasp.jar parser.jar")
|
||||
}
|
||||
duplicatesStrategy = 'exclude'
|
||||
baseName = "writer2phtml"
|
||||
from {
|
||||
configurations.bundledLibs.collect {
|
||||
configurations.compileClasspath.collect {
|
||||
exclude 'module-info.class'
|
||||
exclude '.gradle'
|
||||
exclude '**/LICENSE*'
|
||||
|
@ -108,6 +107,7 @@ task xhtml(type: Jar) {
|
|||
include 'etc/*'
|
||||
include 'com/**'
|
||||
include 'com/**/*'
|
||||
exclude '**/DEPENDENCIES'
|
||||
include 'w2phtml/pageSplitters/**/*.class'
|
||||
include 'pro/litvinovg/**/*.class'
|
||||
include 'pro/litvinovg/**/*.png'
|
||||
|
@ -130,6 +130,7 @@ task xhtml(type: Jar) {
|
|||
exclude '.gradle'
|
||||
}
|
||||
from ('src/main/java'){
|
||||
exclude '**/DEPENDENCIES'
|
||||
exclude '.gradle'
|
||||
include 'w2phtml/xhtml/**/*.properties'
|
||||
include 'w2phtml/xhtml/**/**/*.properties'
|
||||
|
@ -161,10 +162,10 @@ task oxt(type: Zip){
|
|||
from ('build/libs/writer2phtml.jar'){
|
||||
include '*'
|
||||
}
|
||||
from 'idl/writer2paginatedhtml.rdb'
|
||||
from 'releasenotes.txt'
|
||||
include '*'
|
||||
}
|
||||
|
||||
task regressionTests(type: Test) {
|
||||
testClassesDirs = sourceSets.regressionTests.output.classesDirs
|
||||
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 w2phtml.Application;
|
||||
import w2phtml.rdf.Metadata;
|
||||
import w2phtml.rdf.MetadataContainer;
|
||||
|
||||
public class ConversionExecutor {
|
||||
|
||||
|
|
|
@ -263,14 +263,14 @@ public class EpubPanel extends JPanel {
|
|||
|
||||
JCheckBox addPagination(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||
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);
|
||||
return cb_Pagination_1;
|
||||
}
|
||||
|
||||
JCheckBox addConvertToPX(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||
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);
|
||||
return cb_convertToPx_1;
|
||||
}
|
||||
|
|
|
@ -303,14 +303,14 @@ public class HTMLPanel extends JPanel{
|
|||
|
||||
JCheckBox addPagination(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||
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);
|
||||
return cb_Pagination_1;
|
||||
}
|
||||
|
||||
JCheckBox addConvertToPX(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||
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);
|
||||
return cb_convertToPx_1;
|
||||
}
|
||||
|
|
|
@ -340,14 +340,14 @@ public class RDFPanel extends JPanel {
|
|||
|
||||
JCheckBox addPagination(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||
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);
|
||||
return cb_Pagination_1;
|
||||
}
|
||||
|
||||
JCheckBox addConvertToPX(HashMap<String, Component> configuration, UIPreferences preferences) {
|
||||
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);
|
||||
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_SOFT_PAGE_BREAK;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
import pro.litvinovg.xml.Debug;
|
||||
import w2phtml.office.OfficeReader;
|
||||
|
||||
public class ListSplitter extends BasicSplitter implements ISplitter {
|
||||
|
@ -60,9 +58,14 @@ public class ListSplitter extends BasicSplitter implements ISplitter {
|
|||
} else {
|
||||
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;
|
||||
} else {
|
||||
// Not with SPB yet, move node, set dataMoved=true
|
||||
|
@ -96,7 +99,7 @@ public class ListSplitter extends BasicSplitter implements ISplitter {
|
|||
while (freeNodes.getLength() > 0) {
|
||||
Node freeNode = freeNodes.item(i);
|
||||
String freeNodeName = freeNode.getNodeName();
|
||||
if (StringUtils.equals(TEXT_LIST, freeNodeName)) {
|
||||
if (TEXT_LIST.equals(freeNodeName)) {
|
||||
break;
|
||||
}
|
||||
parent.insertBefore(freeNode, list);
|
||||
|
|
|
@ -37,9 +37,9 @@ public class DocumentPart {
|
|||
private String parentPath;
|
||||
private String name = 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.metadata = metadata;
|
||||
extractPath();
|
||||
|
@ -50,7 +50,7 @@ public class DocumentPart {
|
|||
extractAnnotationMetadata();
|
||||
}
|
||||
|
||||
public DocumentPart(String path, Metadata metadata) {
|
||||
public DocumentPart(String path, MetadataContainer metadata) {
|
||||
this.path = path;
|
||||
this.metadata = metadata;
|
||||
this.name = "";
|
||||
|
|
|
@ -19,28 +19,28 @@ import org.slf4j.LoggerFactory;
|
|||
import com.opencsv.CSVReaderHeaderAware;
|
||||
import com.opencsv.exceptions.CsvValidationException;
|
||||
|
||||
public class Metadata {
|
||||
public class MetadataContainer {
|
||||
private static final String SUBTITLE = "subtitle";
|
||||
private static final String FILENAME = "Filename";
|
||||
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;
|
||||
|
||||
public Metadata() {
|
||||
public MetadataContainer() {
|
||||
sectionsMetadata = new HashMap<String, ArrayList<Map<String, String>>>();
|
||||
|
||||
}
|
||||
|
||||
public void read(String metadataFilePath) {
|
||||
if (metadataFilePath == null) {
|
||||
public void read(String filePath) {
|
||||
if (filePath == null) {
|
||||
return;
|
||||
}
|
||||
File file = new File(metadataFilePath);
|
||||
File file = new File(filePath);
|
||||
if (!file.exists() || !file.canRead()) {
|
||||
return;
|
||||
}
|
||||
readCSVFile(metadataFilePath);
|
||||
readCSVFile(filePath);
|
||||
}
|
||||
|
||||
private void readCSVFile(String filePath) {
|
|
@ -20,6 +20,7 @@ import org.apache.jena.rdf.model.Resource;
|
|||
import org.apache.jena.vocabulary.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import static w2phtml.util.Transliteration.*;
|
||||
|
||||
import w2phtml.xhtml.XhtmlConfig;
|
||||
import w2phtml.xhtml.XhtmlDocument;
|
||||
|
@ -27,36 +28,32 @@ import w2phtml.xhtml.XhtmlDocument;
|
|||
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_ADDRESS = "affiliated organization address";
|
||||
|
||||
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 AUTHOR_INITIALS = "author initials";
|
||||
|
||||
private static final String AUTHOR_EMAIL = "author email";
|
||||
|
||||
private static final String AUTHOR_FAMILY = "author family";
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(DocumentStructure.class);
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(RDFDocument.class);
|
||||
private static final String AUTHOR_GIVEN_NAME = "author given name";
|
||||
private static final String MODIFICATION_TIME = "modificationTime";
|
||||
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 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 TEXT_EXCERPT = "textExcerpt";
|
||||
private static final String TOC_LEVEL = "TOCLevel";
|
||||
private static final String TABLE_OF_CONTENTS = "TOC";
|
||||
private static final String PARTICIPANT = "publicationParticipant";
|
||||
private static final String ORGANIZATION = "organization";
|
||||
|
||||
private static final String PUBLICATION = "publication";
|
||||
private static final String BOOK = "book";
|
||||
private static final String JOURNAL = "journal";
|
||||
|
@ -81,10 +78,10 @@ public class DocumentStructure {
|
|||
|
||||
private HashMap<String, Resource> tocLevels;
|
||||
private HashMap<String, DocumentPart> inputParts;
|
||||
private Metadata metadata;
|
||||
private MetadataContainer metadata;
|
||||
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.inputParts = new HashMap<String, DocumentPart>();
|
||||
this.m = ModelFactory.createOntologyModel();
|
||||
|
@ -94,11 +91,10 @@ public class DocumentStructure {
|
|||
this.tocClass = textOntology.createClass(TS + TABLE_OF_CONTENTS);
|
||||
this.organizationClass = textOntology.createClass(TS + ORGANIZATION);
|
||||
this.participantClass = textOntology.createClass(TS + PARTICIPANT);
|
||||
this.itemClass = textOntology.createClass(TS + TOCITEM);
|
||||
setDocID(fileName);
|
||||
this.itemClass = textOntology.createClass(TS + TOC_ITEM);
|
||||
formatDocID(fileName);
|
||||
this.currentTime = Calendar.getInstance().getTime();
|
||||
String publicationType = config.getRDFType();
|
||||
setPublicationType(publicationType);
|
||||
setPublicationType(config.getRDFType());
|
||||
this.documentClass = textOntology.createClass(TS + documentType);
|
||||
this.excerptClass = textOntology.createClass(TS + excerptType);
|
||||
for(int i = 0 ; i< files.size();i++) {
|
||||
|
@ -108,6 +104,12 @@ public class DocumentStructure {
|
|||
addPart(part);
|
||||
}
|
||||
addEmptyParts();
|
||||
createElements();
|
||||
createTOCItems();
|
||||
}
|
||||
|
||||
public void printModel(OutputStream os) {
|
||||
m.write(os,FORMAT_RDF);
|
||||
}
|
||||
|
||||
private void setPublicationType(String publicationType) {
|
||||
|
@ -155,30 +157,6 @@ public class DocumentStructure {
|
|||
}
|
||||
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) {
|
||||
inputParts.put(docExcerpt.getPath(), docExcerpt);
|
||||
|
@ -273,13 +251,13 @@ public class DocumentStructure {
|
|||
Property initialsProperty = m.createProperty(TS + "participantInitials");
|
||||
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);
|
||||
if (orgName == null) {
|
||||
System.out.println(orgName + " not found");
|
||||
|
@ -402,19 +380,18 @@ public class DocumentStructure {
|
|||
return true;
|
||||
}
|
||||
private void createTOCItem(DocumentPart docPart) {
|
||||
String tocItemName = TS + TOCITEM + "/" + docID + docPart.getSafePath();
|
||||
Resource tocItem = m.createIndividual(tocItemName,itemClass);
|
||||
String tocItemUri = TS + TOC_ITEM + "/" + docID + docPart.getSafePath();
|
||||
Resource tocItem = m.createIndividual(tocItemUri,itemClass);
|
||||
tocItem.addProperty( RDFS.label, docPart.getName());
|
||||
Property pointsTo = m.createProperty(TS + "pointsTo");
|
||||
Property itemNumber = m.createProperty(TS + "itemNumber");
|
||||
Property hasTOCItem = m.createProperty(TS + "hasTOCItem");
|
||||
Property pointsTo = m.createProperty(POINTS_TO);
|
||||
Property itemNumber = m.createProperty(ITEM_NUMBER);
|
||||
Property hasTOCItem = m.createProperty(HAS_TOC_ITEM);
|
||||
tocItem.addLiteral(itemNumber, docPart.getNumber());
|
||||
m.add(tocItem, pointsTo, tocLevels.get(docPart.getPath()));
|
||||
if (!docPart.getPath().isEmpty()) {
|
||||
Resource parent = tocLevels.get(docPart.getParentPath());
|
||||
m.add(parent, hasTOCItem, tocItem);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void attachExcerpt(DocumentPart docPart, Resource element) {
|
||||
|
@ -426,7 +403,7 @@ public class DocumentStructure {
|
|||
}
|
||||
Resource excerpt = createExcerpt(docPart);
|
||||
excerpt.addProperty( RDFS.label, docPart.getName());
|
||||
Property hasText = m.createProperty(TS + "hasText");
|
||||
Property hasText = m.createProperty(HAS_TEXT);
|
||||
element.addProperty(hasText, excerpt);
|
||||
if (!docPart.isMasterPart()) {
|
||||
addMetadataProperties(excerpt, docPart);
|
||||
|
@ -435,11 +412,6 @@ public class DocumentStructure {
|
|||
}
|
||||
}
|
||||
|
||||
public void createTree() {
|
||||
createElements();
|
||||
createTOCItems();
|
||||
}
|
||||
|
||||
private void createTOCItems() {
|
||||
Set<String> paths = inputParts.keySet();
|
||||
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+", "_");
|
||||
identifier = transliterateToEn(identifier);
|
||||
identifier = identifier.replaceAll("[^a-zA-Z0-9_.-]", "");
|
||||
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 String sFileName;
|
||||
private XhtmlConfig config;
|
||||
private DocumentStructure rdfStructure = null;
|
||||
private RDFDocument rdfDocument = null;
|
||||
|
||||
|
||||
public RDFDocumentResult(Vector<XhtmlDocument> outFiles, String fileName, XhtmlConfig config) {
|
||||
this.sFileName = Misc.removeExtension(fileName);
|
||||
this.config = config;
|
||||
Metadata metadata = new Metadata();
|
||||
MetadataContainer metadata = new MetadataContainer();
|
||||
metadata.read(config.getCSVMetadataFile());
|
||||
rdfStructure = new DocumentStructure(outFiles,sFileName,config,metadata);
|
||||
rdfStructure.createTree();
|
||||
|
||||
rdfDocument = new RDFDocument(outFiles,sFileName,config,metadata);
|
||||
}
|
||||
|
||||
|
||||
|
@ -48,7 +46,7 @@ public class RDFDocumentResult implements OutputFile {
|
|||
}
|
||||
|
||||
@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");
|
||||
StyleInfo listInfo = new StyleInfo();
|
||||
getListSP().applyStyle(nLevel,sStyleName,listInfo);
|
||||
getListSP().readParentStyle(nLevel, sStyleName, listInfo);
|
||||
writeStyle(listInfo,list);
|
||||
hnode.appendChild(list);
|
||||
traverseList(onode,nLevel,sStyleName,list);
|
||||
|
|
|
@ -6,7 +6,6 @@ import java.util.List;
|
|||
|
||||
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.Test;
|
||||
|
||||
|
@ -25,6 +24,6 @@ public class PageBreaksBeforeHeading {
|
|||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||
File result = new File("./testdocuments/output/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.util.ArrayList;
|
||||
import java.util.List;
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
|
@ -26,6 +27,6 @@ public class BreakAfterTest {
|
|||
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(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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class BulletList {
|
||||
@Test
|
||||
@DisplayName("List on multiple pages")
|
||||
|
@ -26,6 +27,6 @@ public class BulletList {
|
|||
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(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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class GreenstoneHeadings {
|
||||
@Test
|
||||
@DisplayName("Greenstone3 tags headings")
|
||||
|
@ -25,6 +26,6 @@ public class GreenstoneHeadings {
|
|||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||
File result = new File("./testdocuments/output/" + 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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class HardPageBreaksInLists {
|
||||
@Test
|
||||
@DisplayName("Hard page breaks inside list")
|
||||
|
@ -26,6 +27,6 @@ public class HardPageBreaksInLists {
|
|||
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(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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class HeadingWithSections {
|
||||
@Test
|
||||
@DisplayName("Heading with sections")
|
||||
|
@ -24,6 +25,6 @@ public class HeadingWithSections {
|
|||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||
File result = new File("./testdocuments/output/"+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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class ImageAfterSection {
|
||||
@Test
|
||||
@DisplayName("image after section")
|
||||
|
@ -24,6 +25,6 @@ public class ImageAfterSection {
|
|||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||
File result = new File("./testdocuments/output/" + 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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class ListInSection {
|
||||
@Test
|
||||
@DisplayName("List in section")
|
||||
|
@ -26,6 +27,6 @@ public class ListInSection {
|
|||
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(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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class ListInTable {
|
||||
@Test
|
||||
@DisplayName("list in table")
|
||||
|
@ -24,6 +25,6 @@ public class ListInTable {
|
|||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||
File result = new File("./testdocuments/output/" + 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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class ListTableSection {
|
||||
@Test
|
||||
@DisplayName("list in table in section")
|
||||
|
@ -24,6 +25,6 @@ public class ListTableSection {
|
|||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||
File result = new File("./testdocuments/output/" + 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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class PageStartWith10 {
|
||||
@Test
|
||||
@DisplayName("start page from 10 in section")
|
||||
|
@ -24,6 +25,6 @@ public class PageStartWith10 {
|
|||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||
File result = new File("./testdocuments/output/" + 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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class PageStartWith10InSection {
|
||||
@Test
|
||||
@DisplayName("start page from 10")
|
||||
|
@ -24,6 +25,6 @@ public class PageStartWith10InSection {
|
|||
w2phtml.Application.main(arguments.toArray(new String[0]));
|
||||
File result = new File("./testdocuments/output/" + 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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class SoftPageBreakInListTest {
|
||||
@Test
|
||||
@DisplayName("Soft page break in list")
|
||||
|
@ -26,6 +27,6 @@ public class SoftPageBreakInListTest {
|
|||
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(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.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import w2phtml.regressionTests.TestFiles;
|
||||
|
||||
public class SplitFilesAlignToPages {
|
||||
@Test
|
||||
@DisplayName("Split files align to pages")
|
||||
|
@ -28,8 +29,8 @@ public class SplitFilesAlignToPages {
|
|||
File result2 = new File("./testdocuments/output/" + testName + "1.html");
|
||||
File model1 = new File("./testdocuments/model/" + testName + ".html");
|
||||
File model2 = new File("./testdocuments/model/" + testName + "1.html");
|
||||
assertTrue(FileUtils.contentEquals(result1, model1), "The files differ!");
|
||||
assertTrue(FileUtils.contentEquals(result2, model2), "The files differ!");
|
||||
assertTrue(TestFiles.equals(result1, model1), "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"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<identifier value="pro.litvinovg.writer2paginatedhtml"/>
|
||||
<version value="0.9.27" />
|
||||
<version value="0.9.29" />
|
||||
<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>
|
||||
<release-notes>
|
||||
<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