# Manual do &p;

&p;

1 &version;

&p;

cria ficheiros DjVu a partir de ficheiros PDF

    &p;   -o --output  ficheiro-djvu-resultante
     opção
    ficheiro-pdf

    &p;   -i --indirect  ficheiro-djvu-índice
    opção ficheiro-pdf

    &p;  --version --help -h

## Descrição

Este programa cria um ficheiro DjVu a partir de um ou mais ficheiros Portable Document Format.

## Opções

`&p;` aceita as seguintes opções:

### Tipo de documento, nome de ficheiros

`-o`

`--output=``ficheiro-djvu-resultante```

- Gera um documento agrupado de várias páginas. Escreve o ficheiro em ``ficheiro-djvu-resultante`` em vez de o fazer na saída standard.

`-i`

`--indirect=``ficheiro-djvu-índice```

- Gera um documento de várias páginas indirecto. Use ``ficheiro-djvu-índice`` como o nome do ficheiro do índice; ponha os ficheiros dos componentes no mesmo directório. O directório tem de existir e ser passível de escrita.

`--page-id-template=`modelo``

- Especifica o esquema de nomeação para os identificadores das páginas. Consulte a secção template-language.title para a descrição da linguagem do modelo.

  O modelo predefinido é `p{page:04*}.djvu`.

  Por razões de portabilidade, os identificadores de páginas:

  - devem consistir apenas de letras ASCII minúsculas, dígitos, `_`, `+`, `-` e ponto,

  - não podem começar com um `+`, `-` ou um ponto,

  - não podem conter dois pontos consecutivos.

  - têm de terminar com a extensão `.djvu` ou `.djv`.

`--page-id-prefix=`prefixo``

- Equivalente a `--page-id-template=`prefixo`{page:04*}.djvu`.

`--page-title-template=`modelo``

- Especifica o modelo para os títulos das páginas. Consulte a secção template-language.title para a descrição da linguagem do modelo.

  O modelo predefinido é `{label}`.

`--no-page-titles`

- Não define títulos das páginas.

### Resolução, tamanho da página

`-d`

`--dpi=`resolução``

- Especifica a resolução desejada para `resolução` em pontos por polegada. A predefinição é 300 dpi. Os limites permitidos são 72 ≤ `resolução` ≤ 6000.

`--media-box`

- Use MediaBox para determinar o tamanho da página. Por predefinição é usado CropBox.

`--page-size=`largura`x`altura``

- Especifica o tamanho de página preferido para `largura` pixeis × `altura` pixeis. O tamanho de pagina real pode ser alterado de modo a respeitar o rácio de aspecto e as limitações do DjVu em resolução. (Esta opção toma precedência sobre `-d`/`--dpi`.)

`--guess-dpi`

- Tenta adivinhar a resolução nativa ao inspeccionar as imagens embebidas. Use com cuidado.

### Qualidade de imagem

`--bg-slices=`n`+`…`+`n``

`--bg-slices=`n`,`…`,`n``

- Especifica a qualidade de codificação da camada de fundo IW44. Esta opção é semelhante à opção `-slice` do `c44`. Consulte o manual do

  c44

  1 para detalhes. A predefinição é `72+11+10+10`.

`--bg-subsample=`n``

- Especifica o rácio de sub-amostragem do fundo. A predefinição é 3. Os valores válidos são números inteiros entre 1 e 12, inclusive.

`--fg-colors=default`

- Tenta preservar todas as cores da camada de fundo. Isto é a predefinição.

`--fg-colors=web`

- Reduz as cores da camada de fundo para a palete web (256 cores). Esta opção não é recomendada.

`--fg-colors=`n``

- Usa o GraphicsMagick para reduzir o número de cores distintas na camada do primeiro plano para `n`. Os valores válidos são números inteiros entre 1 e 4080. Esta opção não é recomendada.

`--fg-colors=black`

- Descarta qualquer informação de cores da camada do primeiro plano.

`--monochrome`

- Renderiza as páginas como mapas de bits monocromáticos. Com esta opção, as opções `--bg-`…`` e `--fg-`…`` não são respeitadas.

`--loss-level=`n``

- Especifica a agressividade da compressão com perdas. A predefinição é 0 (sem perdas) Os valores válidos são números inteiros entre 0 e 200, inclusive. Esta opção é semelhante à opção `-losslevel` do `cjb2`; consulte o manual do

  cjb2

  1 para detalhes. Esta opção pode ser usada apenas se a opção `--monochrome` estiver também activa.

`--lossy`

- Sinónimo para `--loss-level=100`.

`--anti-alias`

- Activa o anti-aliasing das font e vectores. Esta opção não é recomendada.

### Extracção

`--no-metadata`

- Não extrai os meta-dados.

  Por predefinição:

  - As seguintes entradas do dicionário de informação do documento são extraídas: `Título`, `Autor`, `Assunto`, `Criador`, `Produtor`, `Data de Criação`, `Data de Modificação`. As amostras de tempo são formatadas em conformidade com RFC 3999, com os componentes de data e a hora separados por um único espaço.

  - Os meta-dados XMP são extraídos (ou criados) e actualizados em conformidade.

  Se forem especificados múltiplos documentos, apenas os meta-dados do primeiro é tomado em conta.

`--verbatim-metadata`

- Mantêm os meta-dados originais intactos.

`--no-outline`

- Não extrai os contornos do documento.

`--hyperlinks=border-avis`

- Torna os limites das hiperligações sempre visíveis

  Por predefinição, os limites das hiperligações são visíveis apenas quando o rato está sobre a hiperligação.

`--hyperlinks=#`RRGGBB``

- Força a cor especificada para os limites das hiperligações.

`--no-hyperlinks`

`--hyperlinks=none`

- Não extrai as hiperligações

`--no-text`

- Não extrai o texto.

`--words`

- Extrai o texto. Recorda a localização de cada palavra. Isto é a predefinição.

`--lines`

- Extrai o texto. Recorda a localização de cada linha, em vez de cada palavra.

`--crop-text`

- Não extrai nenhum texto fora dos limites da página.

`--no-nfkc`

- Não aplica a normalização NFKC no texto, excepto para caracteres de Alphabetic Presentation Forms block (U+FB00–U+FB4F), os quais são normalizados incondicionalmente.

  A predefinição é aplicar a normalização NFKC a todos os caracteres.

`--filter-text=`linha-de-comandos``

- Filtra o texto através da `linha de comandos`. O filtro fornecido tem de preservar os espaços em branco, caracteres de controle e dígitos decimais.

  Esta opção implica `--no-nfkc`.

`-p`

`--pages=`alcance-de-páginas``

- Especifica as páginas a converter. `alcance-de-páginas` é uma lista de sub-alcances separados por vírgulas. Cada sub-alcance é ou uma página única (ex. `17`) ou uma sequência continua de páginas (ex. `37-42`). Não é permitido números de página duplicados. As páginas são numeradas a partir de número 1.

  A predefinição é converter todas as páginas.

### Performance

`-j`

`--jobs=`n``

- Usa `n` linhas de execução (threads) para fazer a conversão. A predefinição é usar uma linha de execução.

`-j0`

`--jobs=0`

- Determina automaticamente quantas linhas de execução usar para fazer a conversão.

### Informação detalhada, ajuda

`-v`

`--verbose`

- Mostra mais mensagens informativas enquanto converte o ficheiro.

`-q`

`--quiet`

- Não mostra mensagens informativas enquanto converte o ficheiro.

`--version`

- Mostra informação de versão e termina.

`-h`

`--help`

- Mostra a ajuda e termina.

## Ambiente

As seguintes variáveis de ambiente afectam o `&p;` em sistemas UNIX:

`OMP_`*``

- Detalhes no comportamento em tempo de execução com respeito a paralelismo podem ser controlados por várias variáveis de ambiente. Por favor use a especificação OpenMP API como referência para detalhes.

`TMPDIR`

- O `&p;` faz uso pesado de ficheiros temporários. Irá guardá-los num directório especificado por esta variável. A predefinição é `/tmp`.

## Sintaxe de linguagem

### Sintaxe de modelo

A linguagem de modelo é mais ou menos modelada na Sintaxe de formatação de strings de Python.

Um modelo é um pedaço de texto que contém campos, limitados por chavetas `{``}`. Os campos são substituídos por valores formatados apropriadamente quando o modelo é avaliado. Além disso, `{{` é substituído por uma única `{` e `}}` é substituído por uma única `}`.

### Sintaxe de campo

Cada campo consiste num nome de variável, seguido opcionalmente de um shift, seguido opcionalmente de uma especificação de formato.

A shift é um número inteiro assinalado (isto é, começa com um caractere `+` ou `-`.

A especificação consiste de dois pontos (:), seguido de uma especificação de largura.

A especificação de largura é um número inteiro decimal que define a largura mínima do campo. Se não especificada, então a largura do campo será determinada pelo conteúdo. Preceder a especificação de largura com um caractere zero (`0`) activa enchimento-zero.

A especificação de largura é opcionalmente seguida de um caractere asterisco (`*`), o qual aumenta a largura de campo mínimo para a largura do conteúdo mais longo possível da variável.

### Variáveis disponíveis

`dpage`

- Número de página no documento DjVu.

`page`

`spage`

- Número de página no documento PDF.

`label`

- Etiqueta de página (número de página lógico) no documento PDF.

  Esta variável está disponível apenas para títulos de páginas.

## Detalhes de implementação

### Algoritmo de separação de camadas

A menos que a opção `--monochrome` seja usada, o &p; usa o seguinte algoritmo de separação de camadas nativas:

1. Para cada página, faz o seguinte:

   1. "Rasteriza" a página num mapa de pixeis, na maneira usual.

   2. "Rasteriza" a página em outro mapa de pixeis, omitindo os seguintes elementos da página:

      - texto,

      - imagens raster de 1 bit-por-pixel,

      - elementos vectoriais (excepto preenchimentos e áreas grandes).

   3. Compara ambos mapas de pixeis, pixel por pixel:

      1. Se as suas cores coincidirem, classifica o pixel como parte da camada de fundo.

      2. Caso contrário, classifica o pixel como parte da cama de primeiro plano.

## Relatórios de bugs

Se você encontrar um bug em &p;, por favor reporte-o no Acompanhamento de problemas ou para a lista de mail.

## Veja também

djvu

1 ,

djvudigital

1 ,

csepdjvu

1