domingo, 11 de marzo de 2018

unoconv ejecutarlo desde PHP / apache y no morir en el intento

Configurar apache para ejecutar unoconv

Fichero script: libreofficeconverter.sh

#!/bin/bash

if [ -z "$1" ]; then
    echo "Must pass source file to convert to pdf";
    exit 10;
fi

# This assumes your unoconv executable is located at /usr/bin/unoconv
# If that's not true try a `which unoconv` to get the path and update
# the path below to your path

/usr/bin/unoconv -f pdf --output $1 $2
chown www-data $1
chgrp www-data $1
 
Como root ejecutaremos el comanbdo

visudo
 
Al final del archivo añadimos nuestro script para que apache pueda ejecutarlo


# Script que queremos ejecutar desde apache
www-data ALL=NOPASSWD: /ruta/al/script/libreofficeconverter.sh
 
 Guardamos los cambios

y el script en php:

$fichero_origen = "/ruita/del/archivo/a/convertir/fichero.odt";
$fichero_salida = "/ruta/destino/donde/queremos/generar/el/archivo/resultado.pdf";

    shell_exec('sudo /ruta/al/script/libreofficeconverter.sh ' . $fichero_salida .' '.$fichero_origen);
 
Ten en cuenta que le pasamos dos variables al script $1 y S2 que son el origen y el destino

 y con esto ya tenemos el problema solucionado

jueves, 28 de diciembre de 2017

Imprimir sin abrir desde vb.net

Imprimir un documento sin abrirlo desde vb.net

La idea es poder abrir un documento en PDF y enviarlo a la impresora que nosotros le indiquemos

en la linea p.StartInfo.Arguments hemos puesto como impresora la XPS de microsoft, pero podemos poner la nuestra "HP Deskjet" o cualquier otra. Esto permite abrir el documento y enviarlo a imprimir por la impresora especifica

En la linea p.WaitForExit(5000) espera 5 segundos (5000 milisegundos) para procesar, realmente no es necesario pero lo he utilizado para envie correctamente el archivo a la cola de impresión, solo me he encontrado alguna vez que si el archivo es muy grande, no envia el doumento correctamente a imprimir (faltan hojas)

Closemainwindow será el proceso que cierre la ventana principal, yo lo he sustituido por kill, porque se quedaba la aplicación del adobe reader abierta.


Using p As New Process

p.StartInfo.FileName = "C:\ruta\del\documento.pdf"
p.StartInfo.Verb = "PrintTo"
p.StartInfo.Arguments = Chr(34) & "Microsoft XPS Document Writer" & Chr(34)
p.StartInfo.CreateNoWindow = True
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
p.Start()
p.WaitForExit(5000)
'p.CloseMainWindow()
p.Kill()
p.Close()

End Using


Espero que os sirva

domingo, 14 de diciembre de 2014

Vaciar la caché de los contactos de Outlook


Outlook à Archivo à opciones à Correo à Dentro del apartado "Enviar mensajes" à pulsar el botón "Vaciar lista de autocompletar" (tal y como indico en la captura: )

viernes, 26 de septiembre de 2014

VB2010.NET Recorrer un DataGridView

 Esto es una forma facil de recurrer un DataGridView en Visual Basic .NET 2010

Para la primera columna :
row.Cells(0).Value

Para otras columnas reemplazaremos X por un número:
row.Cells(X).Value

For Each row As DataGridViewRow In DataGridView1.Rows
            MsgBox(row.Cells(0).Value)

Next


Con MsgBox hacemos que nos muestre un mensaje con el valor

jueves, 4 de septiembre de 2014

php generar cadena caracteres aleatorios

función php para generar una cadena de caracteres aleatorios


function generarCodigo($longitud) {
  $key = '';
  $pattern = '1234567890abcdefghijklmnopqrstuvwxyz';
  $max = strlen($pattern)-1;
  for($i=0;$i < $longitud;$i++) $key .= $pattern{mt_rand(0,$max)};
  return $key;
 }

 
Para llamar a la función algo tan sencillo como esto, donde le indicamos la longitud mediante un numerito:
 
 $CadenaAleatoria = generarCodigo(15);


$cadenaAleatoria  genera un código de 15 caracteres de longitud.

jueves, 28 de agosto de 2014

Evitar que se muestren los errores en php

Para evitar que se muestren los errores con php, tan solo hemos de añadir al principio del documento php la siguiente secuencia: "ini_set('display_errors','off');"

Véase un ejemplo:



ini_set('display_errors','off');



Esto es util si vamos a desarrollar una aplicación web bajo AndroPHP, de esta forma no hay que ser root para poder cambiar las propiedades del php.ini