<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>malditoraton.com &#187; Marat</title>
	<atom:link href="http://www.malditoraton.com/author/Marat/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.malditoraton.com</link>
	<description>Va a acabar conmigo</description>
	<lastBuildDate>Thu, 26 May 2011 18:18:05 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Eliminar imágenes de PDF con Java y iText</title>
		<link>http://www.malditoraton.com/erase-pdf-images-itext/</link>
		<comments>http://www.malditoraton.com/erase-pdf-images-itext/#comments</comments>
		<pubDate>Thu, 26 May 2011 18:16:28 +0000</pubDate>
		<dc:creator>Marat</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[PDF]]></category>

		<guid isPermaLink="false">http://www.malditoraton.com/?p=181</guid>
		<description><![CDATA[A pesar del título, ya avanzo que no se trata de eliminar imégenes sino de ocultarlas a la vista y redimensionandolas para que no pesen. En mi deformación de copia-pega y después de buscar código que me permitiese eliminar todas las imágenes de un archivo pdf,me dí cuenta que la mejor solución sería utilizar las [...]]]></description>
			<content:encoded><![CDATA[<p>A pesar del título, ya avanzo que no se trata de eliminar imégenes sino de ocultarlas a la vista y redimensionandolas para que no pesen. En mi deformación de <em>copia-pega</em> y después de buscar código que me permitiese eliminar todas las imágenes de un archivo pdf,me dí cuenta que la mejor solución sería utilizar las librerías de <a title="iText" href="http://itextpdf.com/" target="_blank">iText</a>.<span id="more-181"></span></p>
<p>Con estas librerías podría redimensionar las imágenes existentes en el pdf. El código, completamente funcional que se presenta a continuación lo permite. Está basado en un código traducido de C# cuyo autor no he conseguido encontrar ( y a quien estaré encantado en atribuir si alguien me lo proporciona) y en un ejemplo propio de iText para redimensionar imágenes con referencia conocida.</p>
<p>La ventaja de mi código es que lee cualquier archivo sin protección, &#8220;oculta&#8221; todas las imágenes de todas las páginas y con cambios menores puede personalizarse cuantas y cuáles imágenes serán ocultadas.</p>
<p>En contados documentos, en algunos dispositivos como eReaders, teléfonos,&#8230; o versiones antiguas de Adobe Acrobat Reader puede ocasionar un ocultamiento del texto. Se investigará</p>
<p>&nbsp;</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*
 * ResizeImage.java
 * =========================
 * ===    ResizeImage       ===
 * =========================
 * ResizeImage is a sample, about resampling images within a PDF file
 * Some information is available at http://www.malditoraton.com/erase-pdf-images-itext/
 * Copyright (c) 2011 Owners ofwww.malditoraton.com,
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * @author http://www.malditoraton.com
 */</span>
<span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">resizeimage</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.FileOutputStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Iterator</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.itextpdf.text.pdf.PdfDictionary</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.itextpdf.text.pdf.PdfName</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.itextpdf.text.pdf.PdfReader</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.itextpdf.text.pdf.PdfObject</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.itextpdf.text.pdf.PRStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.itextpdf.text.pdf.PdfNumber</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.itextpdf.text.pdf.PdfStamper</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.itextpdf.text.pdf.parser.PdfImageObject</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.Graphics2D</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.geom.AffineTransform</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.awt.image.BufferedImage</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.ByteArrayOutputStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.imageio.ImageIO</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ResizeImage <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> SOURCE <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Full path to any pdf existing file&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> RESULT <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Full path to the new pdf file&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">float</span> FACTOR <span style="color: #339933;">=</span> 0.99f<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">static</span>  <span style="color: #003399;">String</span> pdfFileName<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span> 
&nbsp;
            PdfReader readPdf <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PdfReader<span style="color: #009900;">&#40;</span>SOURCE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">int</span> n <span style="color: #339933;">=</span> readPdf.<span style="color: #006633;">getNumberOfPages</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span>n<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                PdfDictionary pagDictionary <span style="color: #339933;">=</span> readPdf.<span style="color: #006633;">getPageN</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                PdfDictionary resDictionary <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>PdfDictionary<span style="color: #009900;">&#41;</span>PdfReader.<span style="color: #006633;">getPdfObject</span><span style="color: #009900;">&#40;</span>pagDictionary.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">RESOURCES</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                PdfDictionary xobDictionary <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>PdfDictionary<span style="color: #009900;">&#41;</span>PdfReader.<span style="color: #006633;">getPdfObject</span><span style="color: #009900;">&#40;</span>resDictionary.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">XOBJECT</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>xobDictionary <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Iterator</span> it <span style="color: #339933;">=</span> xobDictionary.<span style="color: #006633;">getKeys</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">iterator</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> it.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        PdfObject objPdf <span style="color: #339933;">=</span> xobDictionary.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>PdfName<span style="color: #009900;">&#41;</span>it.<span style="color: #006633;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>objPdf <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">||</span> objPdf.<span style="color: #006633;">isStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #666666; font-style: italic;">/*obj.isIndirect()*/</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                            PdfDictionary odfDictionary <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>PdfDictionary<span style="color: #009900;">&#41;</span>PdfReader.<span style="color: #006633;">getPdfObject</span><span style="color: #009900;">&#40;</span>objPdf<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                            <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>odfDictionary <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">continue</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
                            PdfObject stObject <span style="color: #339933;">=</span> odfDictionary.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">SUBTYPE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                            <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>stObject <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">continue</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
                            PdfName type <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>PdfName<span style="color: #009900;">&#41;</span>PdfReader.<span style="color: #006633;">getPdfObject</span><span style="color: #009900;">&#40;</span>stObject<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                            <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">IMAGE</span>.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span>type<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                                PdfObject obdObject <span style="color: #339933;">=</span> PdfReader.<span style="color: #006633;">getPdfObject</span><span style="color: #009900;">&#40;</span>objPdf,xobDictionary<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                PdfReader.<span style="color: #006633;">killIndirect</span><span style="color: #009900;">&#40;</span>objPdf<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                PRStream odbStream <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>PRStream<span style="color: #009900;">&#41;</span>obdObject<span style="color: #339933;">;</span>
                                PdfImageObject image <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PdfImageObject<span style="color: #009900;">&#40;</span>odbStream<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                <span style="color: #003399;">BufferedImage</span> bi <span style="color: #339933;">=</span> image.<span style="color: #006633;">getBufferedImage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>bi <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
                                <span style="color: #000066; font-weight: bold;">int</span> width <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>bi.<span style="color: #006633;">getWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> FACTOR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                <span style="color: #000066; font-weight: bold;">int</span> height <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>bi.<span style="color: #006633;">getHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> FACTOR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>width<span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> width <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
                                <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>height<span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> height <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
                                <span style="color: #003399;">BufferedImage</span> img <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">BufferedImage</span><span style="color: #009900;">&#40;</span>width,
                                        height, <span style="color: #003399;">BufferedImage</span>.<span style="color: #006633;">TYPE_INT_RGB</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                <span style="color: #003399;">AffineTransform</span> at <span style="color: #339933;">=</span> <span style="color: #003399;">AffineTransform</span>.<span style="color: #006633;">getScaleInstance</span><span style="color: #009900;">&#40;</span>FACTOR, FACTOR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                <span style="color: #003399;">Graphics2D</span> g <span style="color: #339933;">=</span> img.<span style="color: #006633;">createGraphics</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                g.<span style="color: #006633;">drawRenderedImage</span><span style="color: #009900;">&#40;</span>bi, at<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                <span style="color: #003399;">ByteArrayOutputStream</span> imgBytes <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ByteArrayOutputStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                ImageIO.<span style="color: #006633;">write</span><span style="color: #009900;">&#40;</span>img, <span style="color: #0000ff;">&quot;JPG&quot;</span>, imgBytes<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                odbStream.<span style="color: #006633;">clear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                odbStream.<span style="color: #006633;">setData</span><span style="color: #009900;">&#40;</span>imgBytes.<span style="color: #006633;">toByteArray</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #000066; font-weight: bold;">false</span>, PRStream.<span style="color: #006633;">BEST_SPEED</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                odbStream.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">TYPE</span>, PdfName.<span style="color: #006633;">XOBJECT</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                odbStream.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">SUBTYPE</span>, PdfName.<span style="color: #006633;">IMAGE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                odbStream.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">FILTER</span>, PdfName.<span style="color: #006633;">DCTDECODE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                odbStream.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">WIDTH</span>, <span style="color: #000000; font-weight: bold;">new</span> PdfNumber<span style="color: #009900;">&#40;</span>width<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                odbStream.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">HEIGHT</span>, <span style="color: #000000; font-weight: bold;">new</span> PdfNumber<span style="color: #009900;">&#40;</span>height<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                odbStream.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">BITSPERCOMPONENT</span>, <span style="color: #000000; font-weight: bold;">new</span> PdfNumber<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                odbStream.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>PdfName.<span style="color: #006633;">COLORSPACE</span>, PdfName.<span style="color: #006633;">DEVICERGB</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                            <span style="color: #009900;">&#125;</span> 
&nbsp;
                        <span style="color: #009900;">&#125;</span>
                    <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>
                i<span style="color: #339933;">=</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #003399;">FileOutputStream</span> foStream <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">FileOutputStream</span><span style="color: #009900;">&#40;</span>RESULT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            PdfStamper stamper <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PdfStamper<span style="color: #009900;">&#40;</span>readPdf, foStream<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            stamper.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> ex<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.malditoraton.com/erase-pdf-images-itext/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cvBlobsLib against MinGW</title>
		<link>http://www.malditoraton.com/cvblobslib-against-mingw/</link>
		<comments>http://www.malditoraton.com/cvblobslib-against-mingw/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 21:44:13 +0000</pubDate>
		<dc:creator>Marat</dc:creator>
				<category><![CDATA[c++]]></category>
		<category><![CDATA[MinGW]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[openCV]]></category>

		<guid isPermaLink="false">http://www.malditoraton.com/?p=156</guid>
		<description><![CDATA[cvBlobsLib is a library to perform binary images connected component labelling (similar to regionprops Matlab function). It also provides functions to manipulate, filter and extract results from the extracted blobs, see features section for more information. It is distribuited in a static library (.lib). To use it, it is needed to build the .lib file [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://opencv.willowgarage.com/wiki/cvBlobsLib" target="_blank">cvBlobsLib </a>is a library to perform binary images connected component labelling (similar to regionprops Matlab function). It also provides functions to manipulate, filter and extract results from the extracted blobs, see features section for more information.</p>
<p>It is distribuited in a static library (<tt>.lib</tt>). To use it, it is needed to build the <tt>.lib</tt> file and later use that lib file in the desired project. The problem is that for windows it&#8217;s distribuited for using it in MSVC++.</p>
<p>Here you can get  the necesary to build it, as debug or release version, with MinGW ot MinGW-QT if installed. Simply open the project folder with Netbeans 6.9 and build it. It will generate a libcvblobslib.a ready to use with your projects.</p>
<p>If you find any problem, please, feel free to post it.</p>
<p><a href="http://www.malditoraton.com/media/cvblobslib.7z" target="_blank">Direct link to cvBlobsLib for Netbeans 6.9</a></p>
<p>The project hopes to find:</p>
<p>OpenCV binaries at  <strong>C:\OpenCV2.1\bin</strong></p>
<p><strong> </strong>OpenCV includes at <strong>C:\OpenCV2.1\include\opencv</strong></p>
<p>Anyway you can change your Netbeans project propeties in order to match with your OpenCV installation path. Enjoy it!.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malditoraton.com/cvblobslib-against-mingw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manifiesto “En defensa de los derechos fundamentales en internet”</title>
		<link>http://www.malditoraton.com/manifiesto-%e2%80%9cen-defensa-de-los-derechos-fundamentales-en-internet%e2%80%9d/</link>
		<comments>http://www.malditoraton.com/manifiesto-%e2%80%9cen-defensa-de-los-derechos-fundamentales-en-internet%e2%80%9d/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 18:46:14 +0000</pubDate>
		<dc:creator>Marat</dc:creator>
				<category><![CDATA[Apoyamos]]></category>
		<category><![CDATA[Internet libre]]></category>

		<guid isPermaLink="false">http://www.malditoraton.com/?p=153</guid>
		<description><![CDATA[Manifiesto “En defensa de los derechos fundamentales en internet” Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet [...]]]></description>
			<content:encoded><![CDATA[<p>Manifiesto “En defensa de los derechos fundamentales en internet”</p>
<p>Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…</p>
<p>1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.</p>
<p>2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial – un organismo dependiente del ministerio de Cultura -, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.</p>
<p>3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.</p>
<p>4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.<br />
<span id="more-153"></span><br />
5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.</p>
<p>6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.</p>
<p>7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.</p>
<p>8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.</p>
<p>9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.</p>
<p>10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.</p>
<p>Este manifiesto, elaborado de forma conjunta por varios autores, es de todos y de ninguno. Si quieres sumarte a él, difúndelo por Internet.</p>
<p>También puedes firmar la petición en:</p>
<p><a href="http://www.petitiononline.com/ed021209/petition.html" target="_blank">http://www.petitiononline.com/ed021209/petition.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.malditoraton.com/manifiesto-%e2%80%9cen-defensa-de-los-derechos-fundamentales-en-internet%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arduino y los Steppers</title>
		<link>http://www.malditoraton.com/arduino-y-los-steppers/</link>
		<comments>http://www.malditoraton.com/arduino-y-los-steppers/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 07:00:02 +0000</pubDate>
		<dc:creator>Marat</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[stepper]]></category>

		<guid isPermaLink="false">http://www.malditoraton.com/?p=142</guid>
		<description><![CDATA[Existen dos tipos generalizados de motores paso a paso (steppers), los unipolares, en los que nos encontramos típicamente 5 o 6 hilos, uno o dos de los cuales, respectivamente, son comunes al resto y los bipolares, en los que nos encontramos cuatro hilos, ninguno de los cuales hace de común. Existe amplia información al respecto [...]]]></description>
			<content:encoded><![CDATA[<p>Existen dos tipos generalizados de motores paso a paso (steppers), los unipolares, en los que nos encontramos típicamente 5 o 6 hilos, uno o dos de los cuales, respectivamente, son comunes al resto y los bipolares, en los que nos encontramos cuatro hilos, ninguno de los cuales hace de común.<br />
Existe amplia información al respecto de estos motores y para quien quiera mejorar su formación puede hacerlo en los siguientes enlaces:</p>
<p><a href="http://www.cs.uiowa.edu/~jones/step/">Control of Stepping motors</a>. Douglas W. Jones.<br />
<a href="http://robots-argentina.com.ar/MotorPP_basico.htm">Motores paso a paso. Características básicas</a>. Eduardo J. Carletti.<br />
<a href="http://www.tigoe.net/pcomp/code/category/code/arduinowiring/51">Stepper Motor Control</a>. Tom Igoe.</p>
<p>Arduino dispone de una librería para el manejo de estos motores en modo unipolar y bipolar.  Sin embargo, el soporte para motores unipolares es muy pobre, ya que se basa en controlar el motor con dos hilos.  El manejo del motor se hace basándose en este esquema:</p>
<pre>  Step C0 C1
     1  0  <strong>1</strong>
     2  <strong>1  1</strong>
     3  <strong>1</strong>  0
     4  0  0</pre>
<p>Mi propuesta es poder usar los motores unipolares con cuatro hilos, manejando hasta tres motores de este tipo con una Arduino duodecimilanove y un circuito con tres ULN2003. Las librerías para manejarlo se pueden descargar desde este mismo artículo y pueden manejar motores pap unipolares con las siguientes secuencias:</p>
<p>Mode Single (Modo simple, se excita una bobina por paso)</p>
<pre>  Step C0 C1 C2 C3
     1  <strong>1</strong>  0  0  0
     2  0  <strong>1</strong>  0  0
     3  0  0  <strong>1</strong>  0
     4  0  0  0  <strong>1</strong></pre>
<p>Mode HighTorque ( Ofrece el máximo par del motor, se excitan dos bobinas simultaneamente en cada paso)</p>
<pre>  Step C0 C1 C2 C3
     1  <strong>1  1</strong>  0  0
     2  0  <strong>1  1</strong>  0
     3  0  0  <strong>1  1</strong>
     4  <strong>1</strong>  0  0 <strong> 1</strong></pre>
<p>Mode HalfStep (El motor saca &#8220;medios pasos&#8221;, uno simple y el siguiente de lato par).</p>
<pre>  Step C0 C1 C2 C3
     1  <strong>1</strong>  0  0  0
     2  <strong>1  1</strong>  0  0
     3  0  <strong>1</strong>  0  0
     4  0  <strong>1  1</strong>  0
     5  0  0  <strong>1</strong>  0
     6  0  0  <strong>1  1</strong>
     7  0  0  0  <strong>1</strong>
     8 <strong> 1</strong>  0  0  <strong>1</strong></pre>
<p>El constructor de la librería original para 4 hilos se ha modificado quedando de la siguiente manera:</p>
<pre>    Stepper(int number_of_steps, int mode, int motor_pin_1,
 int motor_pin_2, int motor_pin_3, int motor_pin_4);</pre>
<p>Donde los modos aceptados (<code>int mode</code>) son Single, HighTorque, HalfStep y Bipolar.</p>
<p>El autor nos ha pedido hospedar las librerías, así que aquí las tenéis: <a href="http://www.malditoraton.com/wp-content/uploads/2009/11/MrStepper.7z">MrStepper</a><a href="http://www.malditoraton.com/media/MrStepper.7z"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.malditoraton.com/arduino-y-los-steppers/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Arduino 0017 y Java</title>
		<link>http://www.malditoraton.com/arduino-0017-y-java/</link>
		<comments>http://www.malditoraton.com/arduino-0017-y-java/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 17:00:33 +0000</pubDate>
		<dc:creator>Marat</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.malditoraton.com/?p=133</guid>
		<description><![CDATA[Todos los que empezamos a cacharrear con Arduino y, además nos encantaría hacerlo con Java en general y, con el IDE Netbeans en particular, acabamos encontrándonos con el post de Siverira Nieto en su web. Interesante artículo que nos permite empezar a explorar las posibilidades de ambos mundos. Sin embargo, la versión de arduino usada [...]]]></description>
			<content:encoded><![CDATA[<p>Todos los que empezamos a cacharrear con Arduino y, además nos encantaría hacerlo con Java en general y, con el IDE Netbeans en particular, acabamos encontrándonos  con el <a href="http://silveiraneto.net/2009/03/01/arduino-and-java/">post de Siverira Nieto en su web</a>.<br />
Interesante artículo que nos permite empezar a explorar las posibilidades de ambos mundos. Sin embargo, la versión de arduino usada en dicho artículo es la 0013 y desde entonces ha habido un cambio en una clase, de la que depende Arduino (Preferences), que hace que el código de ejemplo servido por Silveira sea inusable.<br />
Dicha librería tira un error de acceso protegido en Preferences.init(). La solución está en extender la clase Preferences. Así el código del tutorial de Silveira Nieto quedaría del siguiente modo:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*
 * Original from http://silveiraneto.net/2009/03/01/arduino-and-java/
 * Modified for Arduino 0017 by http://www.malditoraton.com
 */</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">serialtalker</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">gnu.io.CommPortIdentifier</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">gnu.io.SerialPort</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.InputStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.OutputStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">processing.app.Preferences</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Main <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">InputStream</span> input<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">OutputStream</span> output<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MyPrefs <span style="color: #000000; font-weight: bold;">extends</span> Preferences <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            Preferences.<span style="color: #006633;">init</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/home/malditoraton/.arduino/preferences.txt&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span><span style="color: #009900;">&#123;</span>
        MyPrefs.<span style="color: #006633;">init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Using port: &quot;</span> <span style="color: #339933;">+</span> MyPrefs.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;serial.port&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Using board: &quot;</span> <span style="color: #339933;">+</span> MyPrefs.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;board&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        CommPortIdentifier portId <span style="color: #339933;">=</span> CommPortIdentifier.<span style="color: #006633;">getPortIdentifier</span><span style="color: #009900;">&#40;</span>
                MyPrefs.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;serial.port&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        SerialPort port <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>SerialPort<span style="color: #009900;">&#41;</span>portId.<span style="color: #006633;">open</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;serial talker&quot;</span>, <span style="color: #cc66cc;">4000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        input <span style="color: #339933;">=</span> port.<span style="color: #006633;">getInputStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        output <span style="color: #339933;">=</span> port.<span style="color: #006633;">getOutputStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        port.<span style="color: #006633;">setSerialPortParams</span><span style="color: #009900;">&#40;</span>MyPrefs.<span style="color: #006633;">getInteger</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;serial.debug_rate&quot;</span><span style="color: #009900;">&#41;</span>,
                SerialPort.<span style="color: #006633;">DATABITS_8</span>,
                SerialPort.<span style="color: #006633;">STOPBITS_1</span>,
                SerialPort.<span style="color: #006633;">PARITY_NONE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>input.<span style="color: #006633;">available</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">print</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>input.<span style="color: #006633;">read</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ahora que está resuelto ya podemos seguir con nuestro desarrollos en Arduino con Java.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malditoraton.com/arduino-0017-y-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CRRCsim para Ubuntu 9.04 Jaunty Jackalope</title>
		<link>http://www.malditoraton.com/crrcsim-para-ubuntu-904-jaunty-jackalope/</link>
		<comments>http://www.malditoraton.com/crrcsim-para-ubuntu-904-jaunty-jackalope/#comments</comments>
		<pubDate>Wed, 20 May 2009 22:54:26 +0000</pubDate>
		<dc:creator>Marat</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[aeromodelismo]]></category>
		<category><![CDATA[deb]]></category>

		<guid isPermaLink="false">http://www.malditoraton.com/?p=121</guid>
		<description><![CDATA[CRRCsim simulador de aeromodelos para Linux. Usado para aprendizaje de vuelo, test de nuevos aeromodelos o perfeccionamiento en el vuelo sin poner en riesgo la integridad física de nuestras joyas. Puede ser usado con una emisora RC conectada al PC, ratón, joystick o teclado. El paquete que os traigo es una debianización para Ubuntu Jaunty [...]]]></description>
			<content:encoded><![CDATA[<p><img src="file:///tmp/moz-screenshot.jpg" alt="" /></p>
<div class="mceTemp">
<dl id="attachment_122" class="wp-caption alignleft" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://www.malditoraton.com/wp-content/uploads/2009/05/crrcsim_allegro.jpg"><img class="size-medium wp-image-122" title="Pantallazo CRRCsim " src="http://www.malditoraton.com/wp-content/uploads/2009/05/crrcsim_allegro-300x231.jpg" alt="Pantallazo CRRCsim " width="300" height="231" /></a></dt>
</dl>
</div>
<p>CRRCsim simulador de aeromodelos para Linux. Usado para aprendizaje de vuelo, test de nuevos aeromodelos o perfeccionamiento en el vuelo sin poner en riesgo la integridad física de nuestras joyas.</p>
<p>Puede ser usado con una emisora RC conectada al PC, ratón, joystick o teclado.</p>
<p>El paquete que os traigo es una debianización para Ubuntu Jaunty de la versión 0.9.10. Podeis encontrar más información en la wiki de <a title="CRRCSim" href="http://crrcsim.berlios.de/wiki/" target="_blank">CRRCSim</a>.</p>
<p>El paquete debianizado por malditoraton.com, lo podeis descargar desde aquí:  <a title="crrcsim_0.9.10-1_i386.deb" href="http://www.malditoraton.com/media/crrcsim_0.9.10-1_i386.deb" target="_self">crrcsim_0.9.10-1_i386.deb</a>.</p>
<p>¡Difrutadlo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malditoraton.com/crrcsim-para-ubuntu-904-jaunty-jackalope/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

