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:identifier → doi:{DOI}
prism:doi → {DOI}
prism:url → https://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
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
{DOI}: DOI do artigo (ex:10.1590/s0100-12345){DATA}: data da última versão significativa do PDF, formatoYYYY-MM-DDMetadados XMP (opcional, mas desejável)
dc:identifier→doi:{DOI}prism:doi→{DOI}prism:url→https://doi.org/{DOI}crossmark:MajorVersionDate→{DATA}crossmark:DOI→{DOI}pdfx:doi→{DOI}pdfx:CrossmarkMajorVersionDate→{DATA}Os campos devem existir tanto no namespace
crossmarkquanto nopdfx(requisito para indexadores que leem o PDF dictionary).Interface
doi,input_pdf,date_stamp).Restrições
pikepdf,pypdf,reportlab).Critérios de aceite
--input,--output,--doi,--date-stamp--csv