Ir al contenido

Creación de su propio Document Converter

Puede crear su propio Document Converter.

Condiciones:

  • La nueva clase Document Converter debe implementar la interfaz “Converter”.
  • La nueva clase Document Converter debe declararse en el paquete “com.openkm.plugin.conversion”.
  • La nueva clase Document Converter debe anotarse con “@PluginImplementation”.
  • La nueva clase Document Converter debe extender BasePlugin.

Interfaz Document Converter:

package com.openkm.plugin.conversion;
import com.openkm.core.ConversionException;
import net.xeoh.plugins.base.Plugin;
import java.io.File;
import java.io.IOException;
import java.util.List;
public interface Converter extends Plugin {
int TO_PDF = 0;
int TO_IMAGE = 1;
int TO_SVG = 2;
int TO_PDFA = 3;
void makeConversion(File input, String mimeType, File output) throws IOException, ConversionException;
List<String> getSourceMimeTypes();
int getConversionType();
}

La nueva clase debe cargarse en el paquete com.openkm.plugin.conversion porque el sistema de plugins de la aplicación intentará cargarla desde ahí.

Descripciones de los métodos

Método Tipo Descripción
makeConversion(File input, String mimeType, File output) void El método convierte el fichero de entrada a un formato específico y lo escribe en el fichero de salida.
getSourceMimeTypes() List Devuelve una lista de tipos MIME de documento válidos que pueden convertirse.
getConversionType() int Devuelve el valor del tipo MIME al que se convertirá el documento de entrada.
Valores permitidos:
- Converter.TO_PDF
- Converter.TO_IMAGE
- Converter.TO_SVG
- Converter.TO_PDFA
Cuando elige Converter.TO_IMAGE, se espera que devuelva una imagen en formato PNG.

Ejemplo de implementación de Document Converter

Sección titulada «Ejemplo de implementación de Document Converter»
package com.openkm.plugin.conversion;
import com.openkm.core.ConversionException;
import com.openkm.core.MimeTypeConfig;
import com.openkm.plugin.BasePlugin;
import com.openkm.util.DocConverter;
import net.xeoh.plugins.base.annotations.PluginImplementation;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@PluginImplementation
public class SqlToPdfConversion extends BasePlugin implements Converter {
String[] sourceMimeTypes = new String[]{MimeTypeConfig.MIME_SQL};
@Autowired
private DocConverter docConverter;
@Override
public void makeConversion(File input, String mimeType, File output) throws IOException, ConversionException {
docConverter.src2pdf(input, output, "sql");
}
@Override
public List<String> getSourceMimeTypes() {
return Arrays.asList(sourceMimeTypes);
}
@Override
public int getConversionType() {
return Converter.TO_PDF;
}
}