Skip to content

Instantly share code, notes, and snippets.

View rodrigocananea's full-sized avatar
🏠
Working from home

Rodrigo Aguiar Vidal Cananea rodrigocananea

🏠
Working from home
View GitHub Profile
@rodrigocananea
rodrigocananea / GTINUtil.java
Created May 28, 2024 14:22
Útil para validação de códigos GTIN, aplicado cálculos baseado no GS1.
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Pattern;
@rodrigocananea
rodrigocananea / ImageBorderDetector.java
Created November 19, 2023 23:54
Reconhecer conteúdo de imagem e forçar uma margem de 30px ao redor, recortando o conteúdo excedente da margem
/**
*
* @author Rodrigo Cananea <rodrigoaguiar35@gmail.com>
*/
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
@rodrigocananea
rodrigocananea / TabelaPoi.java
Last active March 3, 2023 15:06
Exemplo de geração de tabela xlsx com Apache POI 3.17+
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
@rodrigocananea
rodrigocananea / ELabel.java
Last active February 9, 2023 17:22
Java Swing Component JLabel with option 'requiredShow' https://prnt.sc/cD4v5CngTiWf
import com.formdev.flatlaf.ui.FlatTextBorder;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.RenderingHints;
import javax.swing.BorderFactory;
@rodrigocananea
rodrigocananea / formatar_cnpj_cpf.md
Created January 20, 2023 14:09 — forked from davidalves1/formatar_cnpj_cpf.md
Função para formatar CNPJ e CPF, disponível em PHP e JS

PHP

function formatCnpjCpf($value)
{
  $CPF_LENGTH = 11;
  $cnpj_cpf = preg_replace("/\D/", '', $value);
  
  if (strlen($cnpj_cpf) === $CPF_LENGTH) {
    return preg_replace("/(\d{3})(\d{3})(\d{3})(\d{2})/", "\$1.\$2.\$3-\$4", $cnpj_cpf);
  } 
@rodrigocananea
rodrigocananea / ELabelFontResize.java
Created July 15, 2022 16:34
JLabel responsiva, redimensionar conforme na largura/altura disponivel
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class ELabelFontResize extends JLabel {
@rodrigocananea
rodrigocananea / AbrirGavetaUtil.java
Last active July 4, 2022 12:03
Abrir gaveta de dinheiro usando Epson ou Bematech por comando de impressão - Java
public static void abrirGaveta() {
javax.print.DocPrintJob dpj = PrinterService.getImpressoraPadrao().createPrintJob();
javax.print.DocFlavor flavor = javax.print.DocFlavor.BYTE_ARRAY.AUTOSENSE;
//byte[] bematech = new byte[]{(byte) 29, (byte) 249, (byte) 32, (byte) 0, (byte) 27, (byte) 118, (byte) 140};
byte[] epson = new byte[]{(byte) 27, (byte) 112, (byte) 0, (byte) 10, (byte) 100};
javax.print.Doc doc = new javax.print.SimpleDoc(epson, flavor, null);
try {
dpj.print(doc, null);
//JOptionPane.showMessageDialog(null, "Gaveta aberta!", "Atenção", JOptionPane.INFORMATION_MESSAGE);
@rodrigocananea
rodrigocananea / ElapsedTime.java
Created July 10, 2021 01:00
Java 8 Elapsed time with Guava
import com.google.common.base.Stopwatch;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.time.Duration;
import javax.swing.Timer;
/**
*
* @author Rodrigo
@rodrigocananea
rodrigocananea / limitFiles.java
Last active June 24, 2021 01:23
Java 8 Limit files by last modified (.sql / .zip)
// Days of limit
final int limitDays = 5;
List<File> files = Files.list(Paths.get("D:\Backup"))
.filter(Files::isRegularFile) // only files
.filter(path -> path.toString().endsWith(".zip")
|| path.toString().endsWith(".sql"))
// convert to milliseconds and compare
.filter(path -> LocalDateTime.ofInstant(Instant.ofEpochMilli(path.toFile().lastModified()),
@rodrigocananea
rodrigocananea / TableSelectAllOnEditing.java
Created June 2, 2021 19:10
Java Swing JTable select all text on editing
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.util.EventObject;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.text.JTextComponent;