Categorías
hoy aprendí ...

…a limpiar listas de correo (o preparar listado para mailing)

Me pasan un choclazo de correos en varios formatos, algunos con los nombres y apellidos, otros con los correos entre <>

Hay que ponero todas las direcciones separadas por comas, límpias. Notapad++.

1 – Hacer un reemplazo extendido para que todo quede en líneas separadas

Buscar: ,Reemplazar: \n

2 – Reemplazar con RegEx dejando sólo los mailto:

.*(mailto:)([a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?>)

reemplazar por

\1\2,

Funcionó casi perfecto, nos quedaron unos elementos con comillas que limpiar a mano, y luego reemplazar todos los mailto: y juntar todas las líneas.

3 – Reemplazar extendido los mailto: y las nuevas líneas por ,

 

Categorías
hoy aprendí ...

… a hacer figuras básicas con CSS

Pacer un ribete

Formas básicas con CSS: triángulos, círculos, trapecios, rectángulos, cuadrados …

Categorías
hoy aprendí ...

… a entender un poco de catalogación.

Con vistas de mejorar la organización de archivos en el catálogo de fotos, videos y documentos en el trabajo me puse a buscar la forma de codificar y algunas reglas.

Encuentro este artículo interesante:

System Basic Computer Computer Freak – Técnica de Archivo

(Mención especial al diseño del sitio web, un fósil viviente de los años dorados de las web1.0, un auténtico viaje al pasado.)

Ahí encuentro algo del «Reglas del Library Bureau»

https://encrypted.google.com/search?q=Reglas+del+Library+Bureau&oq=Reglas+del+Library+Bureau

El mundo de la Catalogación y sus reglas principales

El mundo de la Catalogación y sus reglas principales


Continuará

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
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.