Editando arquivos em PDF no Ubuntu

por Bruno Detomi

E pensar que arquivos no formato PDF já foram taxados como IMPOSSÍVEIS de modificar. Hoje, existem aplicativos para todo tipo de formatação (sejam aplicativos livres ou proprietários).

Porém, no nosso querido Ubuntu, existe uma ferramenta capaz de unir ou dividir arquivos em PDF. Claro, utilizando nosso amigo poderosíssimo, o Terminal! Essa ferramenta é conhecida como PDFtk.

Então vamos aos procedimentos para instalação e uso. Para instalar, basta chamarmos no Terminal o seguinte comando:

sudo apt-get-install pdftk

No final do processo, a ferramenta estará instalada e pronta para o uso. Vejamos como unir e como dividir os arquivos em PDF (lembrando que para isso, o caminho corrente utilizado no Terminal deve ser aquele onde encontra(m)-se o(s) arquivo(s) em PDF).

Para divirmos um arquivo PDF, utiliza-se o seguinte comando (pelo Terminal):

pdftk arquivoCompleto.pdf burst

No final do processo, o resultado será vários PDF’s individuais (na quantidade de páginas contidas no arquivoCompleto.pdf), sendo criados como: pg_0001.pdf, pg_0002.pdf, pg_0003.pdf.. O processo irá gerar um arquivo TXT, com o resumo da divisão.

Para unirmos vários arquivos PDF’s, utilizamos o seguinte comando:

pdftk arq1.pdf arq2.pdf arq3.pdf cat output Unico.pdf

Como resultado final, teremos um único arquivo pdf (Unico.pdf), formado pelos arquivos arq1, arq2 e arq3. Nota: una quantos arquivos quiserem e forem necessários.

Para os que trabalham muito com esse tipo de arquivo, fica essa ótima dica!
Abraços, ubunters.

Editando arquivos PDF pelo OpenOffice

Podemos editar arquivos PDF pelo suíte de escritório OpenOffice, agora chamado de LibreOffice.

Para isso, devemos baixar a extensão PDF Import, depois abrir o DRAW (Desenho) e clicar em Ferramentas > Gerenciador de Extensões > Adicionar…, ache a extensão.OXT, instale. Depois procure por novas atualizações na mesma janela. Se tiver, atualize.

Pronto.

Agora basta abrir o PDF e sair editando e depois salvando em PDF novamente. Maravilha!

Tudo sobre o Grub 2

Tudo sobre o Grub 2 no Ubuntu. Todas as dicas de como editar o GRUB 2 no Linux.

Esse tópico é uma tradução livre e resumida de : Documentação da Comunidade Ubuntu, GRUB 2.

Estive tentado a fazer isso com o GRUB antigo e agora aproveitei a oportunidade do lançamento do GRUB 2. São abordados só detalhes da estrutura e da configuração. Quem desejar mais  é só ir na Fonte. A intenção é que seja um guia para os novos usuários do GRUB 2.

O que é o GRUB 2?

O GRUB 2 é agora o gerenciador de boot do Ubuntu 9.10 (Karmic Koala) e muitos outros sistemas operacionais. Na inicialização do computador o GRUB 2 apresenta o menu e espera a atuação do usuário dentro do tempo fixado ou transfere automaticamente o controle para o sistema operacional. GRUB 2 é um software Open Source. Ele é descendente do GRUB (GRand Unified Bootloader). Foi completamente reescrito para dar ao usuário flexibilidade e performance significativamente aumentadas.

Melhorias

As melhorias em relação ao GRUB incluem:

– apoio de scripts
– módulo de carregamento dinâmico
– modo de recuperação
– menus personalizados
– temas
– suporte ao menu gráfico
– imagens iso de Live CD de boot diretamente do disco rígido
– nova estrutura de arquivos de configuração
– sem suporte a plataforma x-86 (tal como PowerPc)
– suporte universal a UUIDs (não apenas o Ubuntu)

GRUB vs GRUB 2

O menu do GRUB 2 parecerá familiar aos usuários do Grub mas há muitas diferenças internamente.

– numa instalação limpa do Ubuntu 9.10 sem nenhum outro sistema operacional instalado o Grub 2 inicializará
diretamente na tela de login ou Desktop.
– pressione a tecla SHIFT para mostrar o menu durante o boot (no GRUB legacy formalmente ESC)
/boot/grub/menu.lst do GRUB legacy foi substituido por /boot/grub/grub.cfg no GRUB 2
– não há “/find boot/grub/stage1” no prompt do grub. Stage 1.5 foi eliminado
– o principal arquivo de menu /boot/grub/grub.cfg não é para ser editado mesmo pelo “root”
grub.cfg é sobrescrito sempre que houver uma atualização, um kernel for adicionado/removido ou o usuário
executar update-grub
– o usuário pode criar um arquivo personalizado em /etc/grub.d/40_custom com suas próprias entradas. Esse
arquivo não será sobrescrito
– o arquivo de configuração principal para alterar as configurações do menu é o /etc/default/grub
– existem vários arquivos para configurar o menu – /etc/default/grub mencionado acima e todos os arquivos
da pasta /etc/grub.d/
– mudou a numeração das partições. A primeira partição agora é 1 em vez de 0. O primeiro dispositivo no entanto
continua 0 (não mudou)
– buscas automáticas para outros sistema operacionais como Windows sempre que update-grub é executado
– nenhuma mudança na configuração dos arquivos acontecerá até que o comando

Código:
sudo update-grub

seja executado

Instalação

Você pode checar a versão instalada no seu sistema pelo Synaptic ou pelo Terminal digitando :
Código:

grub-install -v

O GRUB 2 vem instalado por padrão no Ubuntu 9.10 (Karmic Koala). O pacote do GRUB 2 é o grub-pc. O pacote grub-common também será instalado. grub2 é um pacote simulado de transição, pode ser seguramente removido e é mostrado no Synaptic como não instalado.

Upgrade para GRUB 2

A atualização para GRUB 2 a partir do GRUB comum é relativamente fácil.
Os desenvolvedores decidiram não usar uma atualização automática para o GRUB 2 como padrão em instalações de atualização.  Quem fizer upgrade para o Ubuntu 9.10 pode continuar usando o GRUB legacy se desejar,
Para fazer a atualização para GRUB 2 : Upgrade para GRUB 2

Estrutura de arquivos

GRUB 2 incorpora um diretório totalmente revisado e uma hierarquia de arquivos. Para saber onde o GRUB 2 está instalado digite no terminal

Código:
sudo grub-probe -t device /boot/grub

para a partição e

Código:
sudo grub-probe -t fs_uuid /boot/grub

para a UUID.

Hierarquia de arquivos e diretórios

/boot/grub/grub.cfg

É o que mais se assemelha ao /boot/grub/menu.lst do GRUB mas diferentemente desse o grub.cfg não se destina a ser editado. Cada seção é claramente delimitada com “(### BEGIN)” e a referência do arquivo na pasta /etc/grub.d a partir da qual a informação foi gerada. grub.cfg é atualizado executando o comando

Código:
sudo update-grub

e é automaticamente modificado quando há uma atualização ou instalação/remoção de kernel.
Por padrão, e sempre que o comando update-grub é executado, este arquivo é feito “somente leitura”. Isto porque a intenção é que o arquivo não seja editado manualmente.
O usuário também verá uma infinidade de arquivos *. mod na pasta /boot/grub . Esses arquivos são da natureza modular do GRUB 2 e são carregados necessariamente pelo GRUB 2.

/etc/default/grub

Esse arquivo pode ser editado e configurado. Detalhes da configuração estão mais adiante em Configurando GRUB 2.

/etc/grub.d/ (diretório)

Os arquivos nessa pasta são lidos durante a execução do comando

Código:
sudo update-grub

e suas instruções são incorporadas ao /boot/grub/grub.cfg.
A colocação dos ítens de menu no grub.cfg é determinada pela ordem em que os arquivos são executados nessa pasta. Arquivos com  numeral no início são executados primeiro começando pelo menor. 10_linux é executado antes de 20_mentest que é executado antes de 40_custon
Entradas personalizadas podem ser criadas no arquivo 40_custom ou num outro recém criado.
Somente arquivos executáveis geram saída para o grub.cfg durante a execução do update-grub.

Os arquivos default nesta pasta são:

– 00_header : suas configurações normalmente são importadas de informações do /etc/default/grub e os usuários não precisam mudar esse arquivo.

– 05_debian_theme : configura splash image, cor do texto, cor de realce e tema. Na ausência de splash image esse arquivo configura um tema monocromático para o menu inicial.

– 10_hurd : não usada.

– 10_linux : localiza kernels no root device para o sistema operacional em uso. Leva essa informação e estabelece os nomes apresentados no menu para estes kernels.

– 20_memtest86+ : procura por /boot/memtest86+.bin e o inclue como opção no menu do GRUB 2. Não há opção para remover essa entrada do menu.Pode ser inibido removendo o executável desse arquivo sudo chmod -x /etc/grub.d/20_memtest86+ e executando depois sudo update-grub.

– 30_os-prober : procura por Linux e outros sistemas operacionais.Resultados são colocados no grub.cfg baseando-se nos scripts desse arquivo. O arquivo é dividido em 4 seções representando os tipos de sistemas operacionais manipulados pelos scripts : Linux, Windows, OSX e Hurd. Variáveis nesse arquivo determinam o formato dos nomes exibidos no /boot/grub/grub.cfg e no menu do GRUB 2. Usuários familiarizados com scripts básico podem alterar essas variáveis e mudar o formato das entradas de menu exibidas. Alternativamente o usuário pode inserir uma entrada no /etc/default/grub a qual desativa esse script.

– 40_custom : Para adicionar entradas de menu personalizado que serão inseridas no grub.cfg depois de update-grub. Mais informações sobre esse arquivo na parte de configuração.

Configuração

Alterações na configuração são normalmente feitas em /etc/default/grub e nos arquivos da pasta /etc/grub.d.
O arquivo /boot/grub/grub.cfg não deve ser editado pelo usuário; mudanças nesse arquivo são feitas pelos scripts de configuração.
Algumas das alterações mais comuns como OS/kernel default, menu timeout podem ser feitas pelo StartUp-Manager.

Arquivo /etc/default/grub

É o principal arquivo de configuração para alterar as configurações padrão.
Após a instalação as seguintes linhas podem ser alteradas pelo usuário :

GRUB_DEFAULT
– Configura a entrada padrão do menu.
Entradas podem ser numéricas ou “saved” (última usada)

GRUB_DEFAULT=0
Configura a entrada default pela posição. Como no GRUB a primeira entrada é zero, a segunda 1, etc,

GRUB_DEFAULT=saved
Define a entrada de menu padrão com o que foi selecionado anteriormente (a última seleção).
Se o menu é exibido durante a inicialização, a última entrada selecionada será realçada. Se nenhuma ação for tomada, esta seleção será
iniciada no final do tempo limite ou se o menu está oculto.

GRUB_DEFAULT=”xxxx”
Uma entrada de menu exata, incluida entre aspas, também pode ser usada. Neste caso, a localização no menu não importa.
Exemplo: GRUB_DEFAULT=”Ubuntu, Linux 2.6.31-9-generic”

GRUB_TIMEOUT=
Configura o tempo.

GRUB_HIDDEN_TIMEOUT=0
O menu ficará oculto.

# GRUB_HIDDEN_TIMEOUT=0
O menu não será oculto

GRUB_HIDDEN_TIMEOUT_QUIET=true
true = nenhuma contagem regressiva é exibida. A tela ficará em branco.
false = Um contador será exibido numa tela em branco durante o tempo do GRUB_HIDDEN_TIMEOUT.

#GRUB_GFXMODE=640×480
– descomente essa linha para mudar a resolução. Ela fornece resoluções suportadas pela placa de vídeo do usuário (640×480, 800×600, 1280×1024, etc).
aplica-se apenas a resolução do menu de boot.
Dica: Definindo a mesma resolução do sistema operacional o tempo de inicialização diminuirá ligeiramente.
– embora não seja necessário, o usuário também pode especificar a cor BitDepth anexando-o à configuração da  resolução.
um exemplo seria 1280x1024x24 ou 640x480x32.
– o usuário também pode adicionar várias resoluções. Se o GRUB 2 não pode usar a primeira entrada, ela irá tentar o  próximo ajuste.
As configurações são separadas por uma vírgula. Exemplo: 1280x1024x16, 800x600x24, 640×480.
– se utilizar uma splash image, certifique-se que a configuração da resolução e do tamanho da imagem são compatíveis.
– se estiver usando uma entrada que produz uma mensagem “não encontrado” ao executar update-grub, tente adicionar ou alterar a cor BitDepth.
– se esta linha está comentada (#) ou a resolução não está disponível o GRUB 2 usa a configuração padrão determinada pelo /etc/grub.d/00_header.

GRUB_DISABLE_LINUX_RECOVERY=true
Adicione ou descomente essa linha se não desejar o “Recovery” mode no menu.
“Recovery mode” para apenas um kernel, fazer uma entrada especial em /etc/grub/40_custom.

Entradas personalizadas

GRUB 2 permite ao usuário criar seleções de menus personalizados que serão automaticamente adicionados ao menu principal quando o comando

Código:
sudo update-grub

é executado. Um arquivo 40_custom vazio está disponível em /etc/grub.d/ para uso ou para servir de exemplo para criar menus personalizados. Aqui estão algumas considerações para menus personalizados:

– o nome do arquivo determina a ordem das seleções no menu. Nomes numérico são executados primeiro, seguido por nomes alfabéticos.
– Entrada 10_linux aparecerá antes de 30_os prober, que será colocado antes de entradas 40_custom, que irá  preceder my.custom.entries.
– o usuário que desejar que as suas entradas de menu personalizado apareçam em primeiro lugar no menu principal pode nomear a pasta para
06_xxx que suas listas estarão em primeiro lugar no menu.
– o arquivo deve ser feito executável :

Código:
 sudo chmod +x /etc/grub.d/filename

.
– o conteúdo desse arquivo é adiconado ao grub.cfg sem alterações quando o comando sudo update-grub é executado.
– ao contrário do grub.cfg, arquivos personalizados podem ser editados a qualquer momento, não são só leitura, e
podem ser propriedade do usuário, se ele desejar.
– os arquivos personalizados são estáticos. O conteúdo não será alterado, quando novos kernels são adicionados ou
removidos (a menos que os conteúdos sejam afetados pelo usuário acrescentado scripts).

Se o arquivo personalizado coloca as entradas no topo do grub.cfg, o usuário poderá confirmar no /etc/default/grub (DEFAULT= x) após executar update-grub. Certifique-se se ainda aponta para a entrada de menu desejada. Para contar, a primeira entrada do menu no arquivo /etc/default/grub é 0.

Criando menus personalizados

O usuário pode editar o arquivo default /etc/grub.d/40_custom ou criar um novo. A maneira mais fácil de criar o conteúdo de um menu personalizado é copiar uma entrada do /boot/grub/grub.cfg. Depois de copiado, o conteúdo do 40_custom pode ser adaptado a vontade do usuário.
• De acordo com o arquivo personalizado padrão da amostra (etc/grub.d/40_custom/) as duas primeiras linhas de um arquivo personalizado em /etc/grub.d deve ser:

#!/bin/sh

exec tail -n +3 $0

– podem ser copiadas entradas de menu existente no arquivo boot/grub/grub.cfg ou de um arquivo do GRUB legacy. Se for copiado do arquivo
menu.lst do GRUB legacy:
– uma cópia de backup deste arquivo pode estar na pasta /boot/grub se o usuário atualizou do GRUB para GRUB 2.
– as seguintes entradas do menu do GRUB legacy devem ser mudadas :
– title é mudado para menuentry. A linha deve terminar com {
– root muda para set root=
– kernel passa a ser linux
– qulquer designação de partições (sda4, sdb6) deve ser mudada porque no GRUB legacy a primeira partição é 0 e no GRUB 2 é 1 (o
primeiro disco continua sendo 0 igual ao GRUB legacy).

Regras para construção de menuentry

– a primeira linha inicia com menuentry e finda com {
– o que está entre aspas é o que vai aparecer no menu do GRUB 2. Edite como desejar
– a última linha do menuentry deve ser }
– não deixe espaços em branco no fim das linhas
– a linha set root= deve apontar para a localização de inicialização do GRUB2 (sdXY)
– referência root da linha Linux deverá apontar para a partição do sistema.
– Dica : Se GRUB 2 não encontra o kernel referenciado, tente substituir a UUID pelo nome do dispositivo (exemplo: / dev/sda6).

Exemplo de menuentry :

### BEGIN /etc/grub.d/10_linux ###
menuentry “Ubuntu, Linux 2.6.31-15-generic” {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,2)
search –no-floppy –fs-uuid –set 22290d2e-82c9-48d5-92c1-ce138634eedc
linux   /boot/vmlinuz-2.6.31-15-generic root=UUID=22290d2e-82c9-48d5-92c1-ce138634eedc ro  vga=789  quiet splash
initrd   /boot/initrd.img-2.6.31-15-generic
}

Essa entrada do exemplo, copiada do grub.cfg e alterada pode ter este aspecto:

menuentry “Ubuntu 9.10” {
set root=(hd0,2)
search –no-floppy –fs-uuid –set 22290d2e-82c9-48d5-92c1-ce138634eedc
linux /boot/vmlinuz-2.6.31-15-generic root=UUID=22290d2e-82c9-48d5-92c1-ce138634eedc ro quiet splash
initrd /boot/initrd.img-2.6.31-11-generic

}

Uma entrada de exemplo para uma versão de disco rígido do SystemRescueCD instalado conforme as instruções no site (em sda8).

menuentry “System Rescue CD” {
set root=(hd0,8)
linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
initrd /sysrcd/initram.igz

}

Uma entrada de exemplo para Carregamento em série para um outro gestor de arranque GRUB.

menuentry “Grub 1 Bootloader” {
set root=(hd0,8)
chainloader +1

}

Splash Images

GRUB 2 Splash Images

Para configurar uma imagem de splash de inicialização primeiro selecionar a imagem para uso e escolher as cores do texto a ser exibido.
Instale o pacote padrão GRUB 2 splash images :

Código:
sudo apt-get install grub2-splashimages

.
Não confundir este com o pacote grub-splashimages, que não é compatível com o GRUB 2.
A localização padrão para essas imagens é /usr/share/images/grub.
Cada usuário pode criar e usar suas próprias splash images.

Configurando splash images

As splash images do GRUB 2 são controladas pelo arquivo /etc/grub.d/05_debian_theme
Edite esse arquivo como root :

Código:
sudo gedit /etc/grub.d/05_debian_theme

Encontre a linha abaixo :

for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do

Há várias detalhes sobre esta entrada:

– por default o GRUB 2 procura por splash images em /boot/grub e /usr/share/images/desktop-base
– o pacote grub2splashimages não é extraído de uma das pastas acima, mas de /usr/share/images/grub
– o usuário deve:
– alterar a localização da pasta na linha acima para apontar para o endereço correto, ou
– mover a imagen para uma das pastas acima referenciadas.
– para adicionar a pasta grub coloque a entrada para ela e mude o nome do arquivo da imagem pelo que voce quer.

Na imagem do nosso exemplo a configuração ficou assim :

for i in {/boot/grub,/usr/share/images/desktop-base,/usr/share/images/grub}/Lake_mapourika_NZ.{png,tga} ; do

Depois de ter introduzido o caminho e o nome da imagem em 05_debian_theme você executa

Código:
sudo update-grub

para adicionar a informação ao grub.cfg.

Configurando fonte e cores

Estas linhas estão contidas em /etc/grub.d/05_debian_theme.
A cor é definida pela linha abaixo. A primeira cor é a cor do texto, a segunda é a cor de fundo.

set color_normal=black/black

O código abaixo define a cor de entradas selecionadas. A primeira cor é a cor do texto em destaque, a segunda é a cor de fundo da linha selecionada. Se black é a segunda entrada, a linha de destaque será transparente e apenas o texto mudará de cor.

set color_highlight=magenta/black

O black é a cor de transparência GRUB 2 padrão . Altere apenas a cor do primeiro (ou seja, xxxxx /black), se utilizar uma imagem de splash.
Se o segundo valor nesta linha é alterada para uma cor diferente de black a imagem splash será escondida atrás de um fundo de cor sólida.
Para mais detalhes : GRUB 2 Splash ImagesFonte original

Agora ficou mais fácil entender sobre o GRUB 2.