1import{_ as r,r as o,c,d as a,b as s,w as t,a as i,o as d,e as p}from"./app-P091f_m-.js";const u={};function m(g,n){const e=o("RouteLink"),l=o("Playground");return d(),c("div",null,[n[2]||(n[2]=a("h1",{id:"imagen-de-internet",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#imagen-de-internet"},[a("span",null,"Imagen de internet")])],-1)),n[3]||(n[3]=a("p",null,[a("code",null,"DescargarImagenDeInternetEImprimir")],-1)),n[4]||(n[4]=a("p",null,"Descarga una imagen de internet y la imprime. La imagen debe ser accesible públicamente usando solo la URL. La imagen será convertida a blanco y negro. Si el ancho de la imagen es mayor que el máximo ancho especificado, la imagen será redimensionada para que coincida. El algoritmo se refiere al algoritmo utilizado al imprimir la imagen, que puede ser 0 para usar el método Raster Bit Image, 1 para Bit Image Column Format y 2 para NV Graphics. Las impresoras más recientes soportan NV Graphics, las antiguas soportan Raster Bit Image e Image Column Format. Lo recomendable es que el usuario pruebe con los 3 algoritmos para encontrar el más adecuado. Más información sobre los algoritmos: https://parzibyte.me/blog/2024/01/17/metodos-imprimir-imagenes-impresoras-termicas/ . El parámetro sobre el dithering indica si se debe aplicar el algoritmo Floyd-Steinberg-Dithering a la imagen antes de ser impresa. Es recomendado aplicarlo en fotografÃas, asà se mantiene la iluminación y los detalles incluso al ser convertida a blanco y negro. Más información sobre dithering: https://parzibyte.me/blog/2024/07/28/algoritmo-floyd-steinberg-dithering-golang/",-1)),a("p",null,[s(e,{to:"/es/area-pruebas.html?operacion=DescargarImagenDeInternetEImprimir"},{default:t(()=>n[0]||(n[0]=[p("Pruébalo en el área de pruebas")])),_:1})]),n[5]||(n[5]=i(`<h2 id="argumentos" tabindex="-1"><a class="header-anchor" href="#argumentos"><span>Argumentos</span></a></h2><h3 id="url-de-imagen-argumentos-0" tabindex="-1"><a class="header-anchor" href="#url-de-imagen-argumentos-0"><span>URL de imagen (<code>argumentos[0]</code>)</span></a></h3><p><strong>Descripción:</strong> URL de imagen</p><p><strong>Ãndice:</strong> <code>0</code></p><p><strong>Tipo:</strong> <code>string</code></p><p><strong>Ejemplo:</strong> <code>https://github.com/parzibyte.png</code></p><h3 id="maximo-ancho-de-la-imagen-si-el-verdadero-ancho-es-mayor-se-reducira-argumentos-1" tabindex="-1"><a class="header-anchor" href="#maximo-ancho-de-la-imagen-si-el-verdadero-ancho-es-mayor-se-reducira-argumentos-1"><span>Máximo ancho de la imagen. Si el verdadero ancho es mayor, se reducirá (<code>argumentos[1]</code>)</span></a></h3><p><strong>Descripción:</strong> Máximo ancho de la imagen. Si el verdadero ancho es mayor, se reducirá</p><p><strong>Ãndice:</strong> <code>1</code></p><p><strong>Tipo:</strong> <code>float64</code></p><p><strong>Ejemplo:</strong> <code>380</code></p><h3 id="algoritmo-para-convertir-imagen-a-bytes-esc-pos-0-1-o-2-argumentos-2" tabindex="-1"><a class="header-anchor" href="#algoritmo-para-convertir-imagen-a-bytes-esc-pos-0-1-o-2-argumentos-2"><span>Algoritmo para convertir imagen a bytes ESC POS (0, 1 o 2) (<code>argumentos[2]</code>)</span></a></h3><p><strong>Descripción:</strong> Algoritmo para convertir imagen a bytes ESC POS (0, 1 o 2)</p><p><strong>Ãndice:</strong> <code>2</code></p><p><strong>Tipo:</strong> <code>float64</code></p><p><strong>Ejemplo:</strong> <code>0</code></p><h3 id="aplicar-algoritmo-dithering-recomendado-en-fotografias-no-ilustraciones-argumentos-3" tabindex="-1"><a class="header-anchor" href="#aplicar-algoritmo-dithering-recomendado-en-fotografias-no-ilustraciones-argumentos-3"><span>Aplicar algoritmo dithering. Recomendado en fotografÃas, no ilustraciones (<code>argumentos[3]</code>)</span></a></h3><p><strong>Descripción:</strong> Aplicar algoritmo dithering. Recomendado en fotografÃas, no ilustraciones</p><p><strong>Ãndice:</strong> <code>3</code></p><p><strong>Tipo:</strong> <code>bool</code></p><p><strong>Ejemplo:</strong> <code>true</code></p><h2 id="ejemplo" tabindex="-1"><a class="header-anchor" href="#ejemplo"><span>Ejemplo</span></a></h2><p>Agrega esta operación a la lista de operaciones que enviarás en la clave <code>operaciones</code>.</p><p>Su nombre es <code>DescargarImagenDeInternetEImprimir</code>, asà que ese valor va en la clave <code>nombre</code>. Después coloca los argumentos en el arreglo <code>argumentos</code></p><p>No olvides revisar el tipo de dato de cada argumento</p><div class="language-json line-numbers-mode" data-highlighter="prismjs" data-ext="json" data-title="json"><pre><code><span class="line"><span class="token punctuation">{</span></span> 2<span class="line"> <span class="token property">"nombre"</span><span class="token operator">:</span> <span class="token string">"DescargarImagenDeInternetEImprimir"</span><span class="token punctuation">,</span></span> 3<span class="line"> <span class="token property">"argumentos"</span><span class="token operator">:</span> <span class="token punctuation">[</span></span> 4<span class="line">
4 <span class="token string">"https://github.com/parzibyte.png"</span><span class="token punctuation">,</span></span> 5<span class="line"> <span class="token number">380</span><span class="token punctuation">,</span></span> 6<span class="line"> <span class="token number">0</span><span class="token punctuation">,</span></span> 7<span class="line"> <span class="token boolean">true</span></span> 8<span class="line"> <span class="token punctuation">]</span></span> 9<span class="line"><span class="token punctuation">}</span></span> 10<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="hint-container tip"><p class="hint-container-title">Consejos</p><p><strong>Recuerda:</strong> la lista de operaciones (<code>operaciones</code>) puede tener infinitas operaciones, esta es solo una de ellas</p></div><h2 id="ejemplo-javascript-lado-del-cliente" tabindex="-1"><a class="header-anchor" href="#ejemplo-javascript-lado-del-cliente"><span>Ejemplo (JavaScript lado del cliente)</span></a></h2><h3 id="area-de-pruebas" tabindex="-1"><a class="header-anchor" href="#area-de-pruebas"><span>Ãrea de pruebas</span></a></h3>`,29)),a("p",null,[s(e,{to:"/es/area-pruebas.html?operacion=DescargarImagenDeInternetEImprimir"},{default:t(()=>n[1]||(n[1]=[p("Pruébalo en el área de pruebas")])),_:1})]),s(l,{urlBase:"../..",nombreOperacion:"DescargarImagenDeInternetEImprimir",ocultarOperacionesDisponibles:!0}),n[6]||(n[6]=i(`<h3 id="ejemplo-de-codigo" tabindex="-1"><a class="header-anchor" href="#ejemplo-de-codigo"><span>Ejemplo de código</span></a></h3><div class="language-javascript line-numbers-mode" data-highlighter="prismjs" data-ext="js" data-title="js"><pre><code><span class="line"><span class="token keyword">const</span> cargaUtil <span class="token operator">=</span> <span class="token punctuation">{</span></span> 11<span class="line"> <span class="token string-property property">"serial"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span></span> 12<span class="line"> <span class="token string-property property">"nombreImpresora"</span><span class="token operator">:</span> <span class="token string">"Nombre_impresora"</span><span class="token punctuation">,</span></span> 13<span class="line"> <span class="token string-property property">"operaciones"</span><span class="token operator">:</span> <span class="token punctuation">[</span></span> 14<span class="line"> <span class="token punctuation">{</span></span> 15<span class="line"> <span class="token string-property property">"nombre"</span><span class="token operator">:</span> <span class="token string">"DescargarImagenDeInternetEImprimir"</span><span class="token punctuation">,</span></span> 16<span class="line"> <span class="token string-property property">"argumentos"</span><span class="token operator">:</span> <span class="token punctuation">[</span></span> 17<span class="line"> <span class="token string">"https://github.com/parzibyte.png"</span><span class="token punctuation">,</span></span> 18<span class="line"> <span class="token number">380</span><span class="token punctuation">,</span></span> 19<span class="line"> <span class="token number">0</span><span class="token punctuation">,</span></span> 20<span class="line"> <span class="token boolean">true</span></span> 21<span class="line"> <span class="token punctuation">]</span></span> 22<span class="line"> <span class="token punctuation">}</span></span> 23<span class="line"> <span class="token punctuation">]</span></span> 24<span class="line"><span class="token punctuation">}</span><span class="token punctuation">;</span></span> 25<span class="line"><span class="token keyword">const</span> respuestaHttp <span class="token operator">=</span> <span class="token keyword">await</span> <span class="token function">fetch</span><span class="token punctuation">(</span><span class="token string">"http://localhost:8000/imprimir"</span><span class="token punctuation">,</span></span> 26<span class="line"> <span class="token punctuation">{</span></span> 27<span class="line">
27 <span class="token literal-property property">method</span><span class="token operator">:</span> <span class="token string">"POST"</span><span class="token punctuation">,</span></span> 28<span class="line"> <span class="token literal-property property">body</span><span class="token operator">:</span> <span class="token constant">JSON</span><span class="token punctuation">.</span><span class="token function">stringify</span><span class="token punctuation">(</span>cargaUtil<span class="token punctuation">)</span><span class="token punctuation">,</span></span> 29<span class="line"> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span> 30<span class="line"></span> 31<span class="line"><span class="token keyword">const</span> respuestaComoJson <span class="token operator">=</span> <span class="token keyword">await</span> respuestaHttp<span class="token punctuation">.</span><span class="token function">json</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span> 32<span class="line"><span class="token keyword">if</span> <span class="token punctuation">(</span>respuestaComoJson<span class="token punctuation">.</span>ok<span class="token punctuation">)</span> <span class="token punctuation">{</span></span> 33<span class="line"> <span class="token comment">// Todo bien</span></span> 34<span class="line"> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"Impreso correctamente"</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span> 35<span class="line"><span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span></span> 36<span class="line"> <span class="token comment">// El error está en la propiedad message</span></span> 37<span class="line"> console<span class="token punctuation">.</span><span class="token function">error</span><span class="token punctuation">(</span>respuestaComoJson<span class="token punctuation">.</span>message<span class="token punctuation">)</span></span> 38<span class="line"><span class="token punctuation">}</span></span> 39<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="json-de-ejemplo-sin-codificar" tabindex="-1"><a class="header-anchor" href="#json-de-ejemplo-sin-codificar"><span>JSON de ejemplo sin codificar</span></a></h2><p>Codifica el siguiente JSON y envÃalo a <code>http://localhost:8000/imprimir</code> con el método POST</p><div class="language-json line-numbers-mode" data-highlighter="prismjs" data-ext="json" data-title="json"><pre><code><span class="line"><span class="token punctuation">{</span></span> 40<span class="line"> <span class="token property">"serial"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span></span> 41<span class="line"> <span class="token property">"nombreImpresora"</span><span class="token operator">:</span> <span class="token string">"Nombre_impresora"</span><span class="token punctuation">,</span></span> 42<span class="line"> <span class="token property">"operaciones"</span><span class="token operator">:</span> <span class="token punctuation">[</span></span> 43<span class="line">
43 <span class="token punctuation">{</span></span> 44<span class="line"> <span class="token property">"nombre"</span><span class="token operator">:</span> <span class="token string">"DescargarImagenDeInternetEImprimir"</span><span class="token punctuation">,</span></span> 45<span class="line"> <span class="token property">"argumentos"</span><span class="token operator">:</span> <span class="token punctuation">[</span></span> 46<span class="line"> <span class="token string">"https://github.com/parzibyte.png"</span><span class="token punctuation">,</span></span> 47<span class="line"> <span class="token number">380</span><span class="token punctuation">,</span></span> 48<span class="line"> <span class="token number">0</span><span class="token punctuation">,</span></span> 49<span class="line"> <span class="token boolean">true</span></span> 50<span class="line"> <span class="token punctuation">]</span></span> 51<span class="line"> <span class="token punctuation">}</span></span> 52<span class="line"> <span class="token punctuation">]</span></span> 53<span class="line"><span class="token punctuation">}</span></span> 54<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="json-de-ejemplo-codificado" tabindex="-1"><a class="header-anchor" href="#json-de-ejemplo-codificado"><span>JSON de ejemplo codificado</span></a></h2><p>EnvÃa esta cadena JSON ya codificada a <code>http://localhost:8000/imprimir</code> con el método POST</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text" data-title="text"><pre><code><span class="line">{"serial":"","nombreImpresora":"Nombre_impresora","operaciones":[{"nombre":"DescargarImagenDeInternetEImprimir","argumentos":["https://github.com/parzibyte.png",380,0,true]}]}</span> 55<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div>`,8))])}const k=r(u,[["render",m],["__file","imagen-de-internet.html.vue"]]),b=JSON.parse('{"path":"/es/esc-pos/imagen-de-internet.html","title":"Imagen de internet","lang":"es","frontmatter":{},"headers":[{"level":2,"title":"Argumentos","slug":"argumentos","link":"#argumentos","children":[{"level":3,"title":"URL de imagen (argumentos[0])","slug":"url-de-imagen-argumentos-0","link":"#url-de-imagen-argumentos-0","children":[]},{"level":3,"title":"Máximo ancho de la imagen. Si el verdadero ancho es mayor, se reducirá (argumentos[1])","slug":"maximo-ancho-de-la-imagen-si-el-verdadero-ancho-es-mayor-se-reducira-argumentos-1","link":"#maximo-ancho-de-la-imagen-si-el-verdadero-ancho-es-mayor-se-reducira-argumentos-1","children":[]},{"level":3,"title":"Algoritmo para convertir imagen a bytes ESC POS (0, 1 o 2) (argumentos[2])","slug":"algoritmo-para-convertir-imagen-a-bytes-esc-pos-0-1-o-2-argumentos-2","link":"#algoritmo-para-convertir-imagen-a-bytes-esc-pos-0-1-o-2-argumentos-2","children":[]},{"level":3,"title":"Aplicar algoritmo dithering. Recomendado en fotografÃas, no ilustraciones (argumentos[3])","slug":"aplicar-algoritmo-dithering-recomendado-en-fotografias-no-ilustraciones-argumentos-3","link":"#aplicar-algoritmo-dithering-recomendado-en-fotografias-no-ilustraciones-argumentos-3","children":[]}]},{"level":2,"title":"Ejemplo","slug":"ejemplo","link":"#ejemplo","children":[]},{"level":2,"title":"Ejemplo (JavaScript lado del cliente)","slug":"ejemplo-javascript-lado-del-cliente","link":"#ejemplo-javascript-lado-del-cliente","children":[{"level":3,"title":"Ãrea de pruebas","slug":"area-de-pruebas","link":"#area-de-pruebas","children":[]},{"level":3,"title":"Ejemplo de código","slug":"ejemplo-de-codigo","link":"#ejemplo-de-codigo","children":[]}]},{"level":2,"title":"JSON de ejemplo sin codificar","slug":"json-de-ejemplo-sin-codificar","link":"#json-de-ejemplo-sin-codificar","children":[]},{"level":2,"title":"JSON de ejemplo codificado","slug":"json-de-ejemplo-codificado","link":"#json-de-ejemplo-codificado","children":[]}
55],"git":{"updatedTime":1726786024000},"filePathRelative":"es/esc-pos/imagen-de-internet.md"}');export{k as comp,b as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.