blog de nomarlegnar

¿Cómo edito metadatos de archivos de word?

Hola comunidad, solicitando su valioso apoyo, estoy tratando de modificar los metadatos de un archivo de word de office 365, con la librería de POI 3.9 como muestro a continuación.

       public static void main(String[] args) throws FileNotFoundException, InvalidFormatException, IOException {
        FileInputStream fs = new FileInputStream("D:\\text2.docx");
        OPCPackage opc = OPCPackage.open(fs);
        opc.getPackageProperties().setDescriptionProperty("pprrueba");
        opc.getPackageProperties().setTitleProperty("seeeee");
        opc.getPackageProperties().setRevisionProperty("666");
        opc.flush();
        opc.close();
        fs.close();
    }
//hasta este punto si los modifica en tiempo de ejecución, pero al archivo físico no le hace nada.

En todas las fuentes que consulté no alcanzo a visualizar en que momento está modificación se guarda en mi archivo. Por lo tanto aunque ejecute esta rutina no sucede nada, en el archivo no cambia los metadatos cuando los veo desde las propiedades del documento.

Java 4 ever trailer

Trailer de la tan esperada sátira JAVA vs .Net!!!

xD Disfrutenla!

http://jz10.java.no/java-4-ever-trailer.html

Ordenar un List<> ArrayList de objetos

Esta ocasión explicaré como ordenar una lista de tipo arraylist de objetos predeterminados.

Tengo mi clase del objeto Empleado.

package ordenarLista;

public class Empleado implements Comparable<Empleado> {
    private String nombre;
    private int edad;
    private String domicilio;

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }

    public String getDomicilio() {
        return domicilio;
    }

    public void setDomicilio(String domicilio) {
        this.domicilio = domicilio;
    }
   
    @Override
     public int compareTo(Empleado o) {
        String a=new String(String.valueOf(this.getEdad())+this.getNombre());
        String b=new String(String.valueOf(o.getEdad())+o.getNombre());
        return a.compareTo(b);
    }
}

Observese la linea donde aparece el compareTo(), este método me permitirá ordenar mi lista según el criterio especifico. (Primero por Edad luego por Nombre).

 

Leer XML de un CFDI para darle el tratamiento que quieras usando XMLBeans...

Recientemente se han timbrado los CFDI de nomina que generamos en la empresa...
en una entrada anterior a mi Blog expongo la solución para eso.... ahora para llevar un control interno de los mismos ocupamos meterlos a una BD, para lo cual la solución a la que YO llegué fue leer el contenido y depositarlo en la BD..

Expongo aquí lo siguiente.

public class AlmacenaCFDINomina {
   
   
    public AlmacenaCFDINomina() throws Exception{
       
    }
   
    public static void main(String args[]) throws XmlException, IOException, Exception{
    //public static void almacenarCFDI()throws XmlException, IOException, Exception{
        try{
       
        //Archivo XML a leer.
        String filePath="web/Humanos/Nomina/Talones/CFDI/XMLS/my-file.xml";
        File inputXmlFile=new File(filePath);
        Connection connection= ConnectionManager.getConnection();
        SQL query=new SQL(connection);
       
        //Datos exraidos del comprobante XML
        ComprobanteDocument comprobanteDocument=ComprobanteDocument.Factory.parse(inputXmlFile);

CFDI con JAVA y XMLBeans.

Buen día, espero que esto le sea de utilidad a alguien de esta tan excelsa comunidad.

En días pasados se ha hablado mucho de las reformas que en México se han venido aplicando, una de ellas es la reforma fiscal que obliga a las empresas a expedir CFDI del recibo de nómina que "normalmente" se le da al trabajador, para lo cual en la empresa donde laboro se me encomendó la labor de investigar que es lo que se tenía que hacer para cumplir con esta obligación, así que sin mas preámbulos vamos a lo que requiere la tan temida Facturación Electronica de este comprobante...

jQueryMobile para movil WEBApps

Hace tiempo me eché un clavado en el desarrollo de aplicaciones para dispositivos móviles enfocado exclusivamente en dispositivos de Apple y al trabajar con el XCODE logré concluir un minijueguito de pong el cual fue mi proyecto final de tesis, durante el proceso realice varios "pininos" con diversas herramientas que me permitian crear interfaces graficas compatibles con pantallas tactiles, entre los cuales se encuentra el InterfaceBuilder utilería interesantisima que forma parte del kit de herramientas que disponemos con XCODE, pues para no hacer el cuento largo, la creación de interfaces graficas con estas herramientas es muy sencilla, basta con arrastrar los componentes y configurarlos de la menara correcta... pero eso es otra historia.

Leer contenido de un PDF y extraerlo a un TXT con el mismo nombre.

Saludos, espero que mi primer aporte le sea útil a alguien...

Clase que permite leer el contenido de un PDF e imprimirlo en un TXT.

package leerpdf;

import java.awt.Rectangle;
import java.awt.print.PageFormat;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.List;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.util.PDFTextStripperByArea;

public class LeerPdf {

    public static void main(String[] args) {
       LeerPdf leerPDF =new LeerPdf();
       leerPDF.lecturaPDF();
    }
   
    public void lecturaPDF(){
        String ln = System.getProperty("line.separator");
        File dir = new File("d:\\carpeta");//CREO UN OBJETO CON TODOS LOS ARCHIVOS QUE CONTIENE LA CARPETA QUE CONTIENE LOS PDFS.
        String[] ficheros = dir.list();//ARREGLO QUE ALMACENARÁ TODOS LOS NOMBRES DE LOS ARCHIVOS QUE ESTAN DENTRO DEL OBJETO.
       
        if (ficheros == null)//EXCEPCION

Distribuir contenido