Categorías
hoy aprendí ...

A reemplazar una etiqueta HTML con jQuery

Para reemplazar una etiqueta HTML conservando su contenido, por ejemplo:

<code>
    <p>contenido html</p>
</code>

Por

<pre>
    <p>contenido html</p>
</pre>

Ejecutar

$('code').replaceWith(function(){
    return $("<pre />").append($(this).contents());
});

Atención a la nota que indica que conserva el HTML dentro.

Gracias: https://stackoverflow.com/questions/7093417/using-jquery-to-replace-one-tag-with-another/7093472#7093472

Categorías
hacer

Warhammer 40K – Space Marine Dreadnought Mk V

Retomando el proyecto de realizar un papercraft épico (luego del primer intento-un-poco-fallido con la motocicleta de Kaneda, que luego mostraé) me puse a buscar algo y encontré

Warhammer 40K – Space Marine Dreadnought Mk V

Esta vez decidí imprimir las plantillas en papel tipo chambril de 120gr/m2 y laser y armarme de mucha paciencia. Arranqué este viernes entre 1 y 2 horas por día aprovechando el fin de semana largo.

Cuando llegué a la parte de los laterales rojos, me di cuenta que la cosa se ponía seria a nivel detalle. Necesito una dosis extra de paciencia.

Continúa

Categorías
hoy aprendí ...

… a intercalar páginas desde dos archivos PDFs

El tema surgió hace un par de semana, cuando tenía un PDF de un libro exportado en páginas dobles, es decir, cada página era un pliego con 2 páginas (par e impar). Tocaba producir un PDF de página simple.

Opción 1: recurrir al archivo de origen y exportar de esa manera.

Opción 2: usando el PDF de página dobles generar por un lado las páginas izquierdas, luego las derechas y al final intercalar.

La opción 2 se realizó recortando de las páginas la mitad que no correspondía para cada mometo, es decir, recortar la mitad derecha para exportar las página pares. Desde el Acrobat se puede muy sencillo, luego guardar como libro_paginas_pares.pdf. Lo mismo pero inverso para las otras.

La cuestión era hacer el intercalado. En un documento corto se puede hacer a mano, pero con 200 páginas mejor algo automático.

Búsqueda rápida: https://duckduckgo.com/?q=intercalando+p%C3%A1ginas+de+2+archivos+PDF&t=ffsb&ia=web

Y gracias a que todos tenemos los mismos problemas en algún momento, alguien ya tenía la solución. Pero lo importantes es que la compartió.

https://desfaziendoentuertos.prepress.es/mezclar-e-intercalar-paginas-pares-e-impares-de-dos-pdf-en-un-unico-documento-script-gratuito-para-acrobat-9-y-x/

Lleva a un foro de Adobe donde también se compartió la solución.

https://forums.adobe.com/message/3945387

Un script en javascript que se «instala» en el Acrobat Profesional (yo estaba usando la versión X) y agrega un item al menú. Muy fácil de usar.

// Complements: Planet PDF (http://www.planetpdf.com/)

// Modified by Jeff Baitis for Acrobat 9 and Acrobat X compatibility

// Improved Collate function with status bar.

 

// Add a menu item to reverse all pages in the active document

app.addMenuItem({  cName: «Reverse», cParent: «Edit», cExec: «trustedReversePages();»,  cEnable: «event.rc = (event.target != null);», nPos: 0 });

// Add a menu item to collate with another document on the filesystem

app.addMenuItem({  cName: «Collate», cParent: «Edit», cExec: «trustedCollatePages();»,  cEnable: «event.rc = (event.target != null);», nPos: 0 });

 

trustedReversePages = app.trustedFunction(function()

{

app.beginPriv(); // Explicitly raise privileges

var t = app.thermometer;

t.duration = this.numPages;

t.begin();

for (i = this.numPages – 1; i >= 0; i–)

{

t.value = (i-this.numPages)*-1;

this.movePage(i);

t.text = ‘Moving page ‘ + (i + 1);

}

t.end();

app.endPriv();

})

 

// Collating pages

/*

Title: Collate Document

Purpose: User is prompted to select document to insert/collate.

Author: Sean Stewart, ARTS PDF, www.artspdf.com

*/

 

trustedCollatePages = app.trustedFunction(function()

{

app.beginPriv(); // Explicitly raise privileges

// create an array to use as the rect parameter in the browse for field

 

var arRect = new Array();

arRect[0] = 0;

arRect[1] = 0;

arRect[2] = 0;

arRect[3] = 0;

 

// create a non-visible form field to use as a browse for field

 

var f = this.addField(«txtFilename», «text», this.numPages – 1, arRect);

 

f.delay = true;

f.fileSelect = true;

f.delay = false;

 

// user prompted to select file to collate the open document with

 

app.alert(«Select the PDF file to merge with»)

 

// open the browse for dialog

 

f.browseForFileToSubmit();

var evenDocPath = f.value;

 

var q = this.numPages;

 

var t = app.thermometer;

t.duration = q;

t.begin();

 

// insert pages from selected document into open document

 

for (var i = 0; i < q; i++) {

var j = i*2;

this.insertPages(j, evenDocPath, i);

t.value = i;

t.text = ‘Inserting page ‘ + (i+1);

}

t.end();

 

// remove unused field

 

this.removeField(«txtFilename»);

app.endPriv();

})

Y chau.

Categorías
La cuentita

Sobre los tickets y los productos

Anásis sobre los productos, los códigos de barras, los códigos en los tickets y los diferentes supermercados. El objetivo es poder determinar una relación de datos, si los códigos que figuran en el ticket es stock interno o se relaciona con el código de barras del producto.

Tomando como muestras 2 tickets, una de Carrefour y otro de Coto encuentro que:

  • Yogurt La Serenisima Yogurisimo c/Rockets: 7-791337-090118
    • Coto: 285244
    • Carrefour: 090118

Es decir, en el ticket de Coto figura el código de stock interno, mientras que en el Carrefour es la última parte del código de barras.

Por lo que pude investigar en www.gs1.org.ar, www.codigosargentina.com y codigosdebarras-argentina.com los códigos no en si no tienen guardada ninguna categorización más allá del país en el cual se produce el producto. En GS1 indican se existen diferentes tipos de código según el tipo de producto, pero nada más.

Respecto a las base de datos de código ya existentes, encontré este blog que en un post del 2009 hablaba algo al respecto, pero que ya no están los datos disponibles para descargar libremente. En el sitio www.upcdatabase.com se puede crear una cuenta para ingresar y hacer consultas sobre los códigos, pero no bajar toda la base de datos (o por lo menos no se ve a simple vista). El sitio es algo viejo, no parece completo pero se puede contribuir. No tiene API a la vista.

Hay otro sitio para hacer consultar que parece tener API en XML https://www.ean-search.org/

Al realizar una consulta genera un enlace a Amazon para comprar dicho producto (mmmmmmmm…….).


Como primera medida se me ocurre utilizar alguna estructura de este sitio

https://www.upcdatabase.com/item/7791337012035

Item Record

EAN/UCC-13 7791337012035
Description casamcream
Size/Weight 300 gr
Issuing Country Argentina
Last Modified 8 Feb 2014, 5:16 PM

Una tabla con los productos y sus códigos EAN/UCC, así como sus descripciones y características.

Otra tabla con el código EAN/UCC y los códigos de stock de los diferentes supermercados.

Categorías
La cuentita

Iniciando las cuentitas

Finalmente, luego de varios años de postergación, arranco el proyecto de finanzas personales integral.

Surgido como idea para hacer las compras de víveres y demás cosas, en almacenes, supermercados y otras tiendas, así como la gestión de stock en la alacena y la búsqueda de precios se complementa con la alimentación online y colectiva de datos.

En esta primera etapa estoy investigando sobre los tickets de supermercado y los códigos de productos con el fin de obtener una base de datos desde la cual arrancar con los listados de compras realizadas.

El respositorio público en https://github.com/almendro/lacuentita


Editado 1: Como todo en la vida internética, ya a alguién se le había ocurrido algo similar, encontré este artículo sobre tu-alacena.com un emprendimiento similar pero que no he tenido la ocación de probar. Hay un registro en la página inicial que no se bien para qué es.