Script

O script abaixo serve para gerar um arquivo PDF a partir de um arquivo DOCX fazendo com que não seja possível fazer CTRL+C e que tenha marca d'água.

Isso é muito útil quando elaboramos uma lista de exercícios e não desejamos que os estudantes usem o recurso de copiar o texto para usar em uma ferramenta de I.A. (Inteligência Artificial)

É claro, o método não é infalível, mas dificulta o processo de copiar e colar o texto.

Uma forma de dificultar o processo pode ser ainda, colocar alguma frase no meio to texto em tamanho muito pequeno, tipo 2, e escrito em branco no meio do texto normal do arquivo. Desse modo o estudante ao copiar e colar o texto, pode ter uma surpresa no meio da geração de uma possível resposta gerada pela ferramenta de I.A.

Uso o sistema operacional GNU/Linux Ubuntu 24.04 LTS

Crie o arquivo "script.sh"

Fazendo pelo terminal, ficará assim:

touch script.sh

ou, se quiser criar e editar (vim instalado) o arquivo imediatamente

vi script.sh

Copie o código abaixo

O script é:

#!/bin/bash
# 🧰 Verifica e instala dependências
echo "🔧 Verificando e instalando dependências..."
DEPS=(libreoffice imagemagick poppler-utils)
for pkg in "${DEPS[@]}"; do
if ! dpkg -s "$pkg" >/dev/null 2>&1; then
echo "📦 Instalando $pkg..."
sudo apt-get install -y "$pkg"
else
echo "✅ $pkg já está instalado.""
fi
done
# Caminho do arquivo DOCX original
ARQUIVO_DOCX="$1"
# Verifica se foi passado um arquivo
if [ -z "$ARQUIVO_DOCX" ]; then
echo "Uso: ./script.sh arquivo.docx"
exit 1
fi
# Nome base do arquivo
BASE=$(basename "$ARQUIVO_DOCX" .docx)
PDF_ORIGINAL="${BASE}.pdf"
PDF_FINAL="${BASE}_protegido.pdf"
echo "📄 Convertendo $ARQUIVO_DOCX para PDF..."
libreoffice --headless --convert-to pdf "$ARQUIVO_DOCX" --outdir .
# Cria diretórios temporários
mkdir -p temp_imgs
mkdir -p temp_imgs_wm
echo "🖼️ Convertendo PDF em imagens..."
pdftoppm "$PDF_ORIGINAL" temp_imgs/pagina -jpeg -r 150
echo "💧 Adicionando marca d'água em caada página..."
for img in temp_imgs/*.jpg; do
nome=$(basename "$img")
convert "$img" -gravity center \
-fill 'rgba(180,180,180,0.3)' -pointsize 100 \
-annotate 55 '-EXERCÍCIOS-EXERCICIOS-EXERCICIOS-EXERCICIOS-' "temp_imgs_wm/$nome"
done
echo "📚 Reunindo imagens em PDF final..."
convert temp_imgs_wm/*.jpg "$PDF_FINAL"
# Limpa arquivos temporários
rm -rf temp_imgs temp_imgs_wm "$PDF_ORIGINAL"
echo "✅ PDF com marca d'água gerado: $PDF_FINAL"

Após copiar o código, no editor VIM, pressione a tecla "i" (INSERÇÃO) e depois faça CTRL+SHIFT+V

Para salvar e sair do arquivo pressione ":", depois as teclas "w" e "q". O comando ":wq" entra no MODO de COMANDO do VIM e as letras "w" e "q" significam WRITE (ESCREVER o arquivo) e QUIT (SAIR do editor vim)

Para poder usar o script, primeiro é necessário dar permissão de execução ao script.sh

chmod +x script.sh

Feito isso, basta adicionar o arquivo DOCX na mesma pasta onde o script está e executar:

./script.sh nome_do_arquivo.docx


Desenvolvido por Fumachi