Archivo de la categoría: Programación
[Programación] Cómo recortar imágenes en Java
Y aquí me tienen de nuevo colocando de nueva cuenta algo sobre Java, referente al proyecto que ando realizando actualmente. En este caso está asociado con la edición de imágenes en esta plataforma, la que con ayuda de una clase hecha por Kushal hace el trabajo bastante bien.
El código fuente lo pueden encontrar en su respectiva página.
Fuente | Saanjal.com
[Programación] Cómo sobreponer un PDF sobre otro
Tal vez esto resulte un poco fuera de tema, ya que todo el blog ha tratado básicamente de Ubuntu, Linux, y software libre. Este será el primer post que hago referente a algo de programación, pero espero que, como a mi me ha servido para sacar adelante un proyecto, a alguien más le facilite la vida.
Resulta que me habían encargado hacer una especie de edición de un PDF de manera que, en pocas palabras, tendría que sobreponer un formato sobre otro.
Gracias a una excelente herramienta para la edición de PDFs iText que me encontré un buen día navegando en internet buscando la solución a mi problema, y a un libro en línea que trata de la edición de PDFs también, logré encontrar el método infalible para sobreponer dos archivos para hacerlos uno solo en Java (cabe remarcar que esto lo encontré después de haber pasado una gran odisea con unos compañeros de la universidad, cerca de la 1 de la madrugada). Había estado todo el día investigando acerca de cómo resolver esto, así que (después de haber pasado horas y horas buscando frente a la computadora) me cayó como anillo al dedo. Es bastante útil, y muy simple de comprender.
El código es el siguiente:
import java.io.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
...
private void superposePDF(String m, String watermark, String output){
try {
PdfReader document= new PdfReader(m);
int num_pages= document.getNumberOfPages();
PdfReader mark = new PdfReader(watermark);
Rectangle mark_page_size= mark.getPageSize(1);
PdfStamper writer = new PdfStamper(document, new FileOutputStream(output));
PdfImportedPage mark_page = writer.getImportedPage(mark, 1);
for( int ii= 0; ii< num_pages; ) {
++ii;
Rectangle doc_page_size= document.getPageSize( ii );
float h_scale= doc_page_size.getWidth()/mark_page_size.getWidth();
float v_scale= doc_page_size.getHeight()/mark_page_size.getHeight();
float mark_scale= (h_scale< v_scale) ? h_scale : v_scale;
float h_trans = (float)((doc_page_size.getWidth()-
mark_page_size.getWidth( )* mark_scale)/2.0);
float v_trans= (float)((doc_page_size.getHeight( )-
mark_page_size.getHeight( )* mark_scale)/2.0);
PdfContentByte contentByte= writer.getUnderContent( ii );
contentByte.addTemplate( mark_page,
mark_scale, 0,
0, mark_scale,
h_trans, v_trans );
writer.close( );
}
catch( Exception ee ) {
ee.printStackTrace( );
}
}
Eso sería todo. Simplemente hay que enviar la dirección de los archivos que se quieren juntar y el nombre del archivo de salida, en el que aparecerán los dos sobrepuestos.
Vía | FreeOpenBook | iText

