Skip to content

[PDF Generator] Adicionar botão Crossmark aos PDFs dos artigos #1114

@robertatakenaka

Description

@robertatakenaka

Contexto

O Crossmark é um serviço da Crossref que permite aos leitores verificar se o conteúdo que estão lendo é a versão mais atual ou se houve correções, retratações ou atualizações. Para isso, um botão/logo do Crossmark deve ser inserido nos PDFs com um link específico por artigo.

Referência: https://www.crossref.org/documentation/crossmark/

Objetivo

Criar uma função que insira o logo do Crossmark em PDFs de artigos, com link para a página Crossmark do respectivo DOI.

Requisitos

Inserção do logo

  • Inserir o logo do Crossmark (formato SVG ou PNG) em posição configurável no PDF (padrão: canto superior direito da primeira página).
  • O logo deve conter um hyperlink no formato:
    https://crossmark.crossref.org/dialog?doi={DOI}&domain=pdf&date_stamp={DATA}
    
    • {DOI}: DOI do artigo (ex: 10.1590/s0100-12345)
    • {DATA}: data da última versão significativa do PDF, formato YYYY-MM-DD

Metadados XMP (opcional, mas desejável)

  • Adicionar/atualizar metadados XMP no PDF com os campos:
    • dc:identifierdoi:{DOI}
    • prism:doi{DOI}
    • prism:urlhttps://doi.org/{DOI}
    • crossmark:MajorVersionDate{DATA}
    • crossmark:DOI{DOI}
    • pdfx:doi{DOI}
    • pdfx:CrossmarkMajorVersionDate{DATA}

Os campos devem existir tanto no namespace crossmark quanto no pdfx (requisito para indexadores que leem o PDF dictionary).

Interface

  • Sugestão de função principal com assinatura:
    def add_crossmark(
        input_pdf: str,
        output_pdf: str,
        doi: str,
        date_stamp: str,
        logo_path: str = "CROSSMARK_Color_horizontal.png",
        position: str = "top-right",
        width: int = 150,
    ) -> None:
  • Suportar uso via CLI:
    python add_crossmark.py --input artigo.pdf --output artigo_cm.pdf --doi 10.1590/s0100-12345 --date-stamp 2026-01-15
  • Suportar processamento em lote a partir de um CSV (doi,input_pdf,date_stamp).

Restrições

  • Não alterar o conteúdo existente do PDF (texto, imagens, paginação).
  • O logo deve ser clicável (hyperlink funcional em leitores como Adobe Reader, Evince, Preview).
  • Usar bibliotecas open source (sugestões: pikepdf, pypdf, reportlab).

Critérios de aceite

  • Logo visível na primeira página do PDF de saída
  • Link do logo abre a URL correta do Crossmark com DOI e date_stamp
  • Metadados XMP presentes e válidos no PDF de saída
  • Modo CLI funcionando com --input, --output, --doi, --date-stamp
  • Modo lote funcionando com --csv
  • Testes com pelo menos 3 PDFs de tamanhos/layouts diferentes
  • Nenhuma alteração no conteúdo original do PDF
  • Ser usado na geração do PDF
  • Ser usado em qualquer PDF já existente

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions