Ir al contenido

Script - Convert TIF to PDF

Transforma todos los ficheros TIF del repositorio a PDF.

  • Hay un fichero de log de salida llamado “ConvertTIFToPDFXXX.log” en la carpeta logs.
  • Debido al tamaño de los repositorios grandes, la consulta SQL se ejecuta con un cursor de base de datos.
import org.springframework.web.context.*;
import com.openkm.module.db.base.*;
import com.openkm.util.*;
import com.openkm.servlet.frontend.util.ConversionUtils;
import org.hibernate.*;
WebApplicationContext cc = (WebApplicationContext) ContextWrapper.getContext();
SessionFactory sessionFactory = cc.getBean(SessionFactory.class);
ConversionUtils conversionUtils = cc.getBean(ConversionUtils.class);
StatelessSession session = sessionFactory.openStatelessSession();
String LOG_NAME = "ConvertTIFToPDF";
ScrollableResults results = null;
try {
FileLogger.info(LOG_NAME, "### BEGIN conversion from TIF to PDF");
String sql = "select nb.NBS_UUID from OKM_NODE_BASE nb where nb.NBS_NAME LIKE '%.tif'";
Query query = session.createSQLQuery(sql);
query.setReadOnly(true);
query.setFetchSize(10);
// Execute query
results = query.scroll(ScrollMode.FORWARD_ONLY);
while (results.next()) {
String nodeUuid = results.get(0);
try {
String dstPath = conversionUtils.convertToPDF(nodeUuid);
FileLogger.error(LOG_NAME, nodeUuid + " > " + dstPath);
} catch (Exception e) {
FileLogger.error(LOG_NAME, "Error in node " + nodeUuid + " caused by " + e.getMessage());
FileLogger.error(LOG_NAME + "-Error", "Error in node " + nodeUuid + " caused by \n" + StackTraceUtils.toString(e));
}
}
FileLogger.info(LOG_NAME, "### END conversion from TIF to PDF");
} catch (Exception e) {
print(StackTraceUtils.toString(e));
FileLogger.error(LOG_NAME, StackTraceUtils.toString(e));
} finally {
results.close();
session.close();
}