Skip to content

fix: usa elocation-id no rodapé/CITE AS do PDF quando não há fpage/lpage - #1309

Open
Rossi-Luciano wants to merge 1 commit into
scieloorg:masterfrom
Rossi-Luciano:fix/pdf-footer-elocation-id
Open

fix: usa elocation-id no rodapé/CITE AS do PDF quando não há fpage/lpage#1309
Rossi-Luciano wants to merge 1 commit into
scieloorg:masterfrom
Rossi-Luciano:fix/pdf-footer-elocation-id

Conversation

@Rossi-Luciano

@Rossi-Luciano Rossi-Luciano commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

O que esse PR faz?

Corrige duas partes da issue #1302 (rodapé/CITE AS do PDF):

  1. Suporte a <elocation-id> para artigos de publicação contínua. Hoje, quando não há <fpage>/<lpage>, o rodapé e o CITE AS mostram : -./: - em vez do identificador eletrônico do artigo.
  2. Remove o | inicial do rodapé do Material Suplementar, que hoje aparece mesmo essa seção nunca recebendo número de página (sua paginação é independente do corpo do artigo).

Este PR não mexe na numeração de página em si (o valor de start_page_number quando não há fpage, e a diferença de mecanismo entre a 1ª página, com texto estático, e as demais, com campo PAGE do Word). Isso fica para um PR separado, ver "Algum cenário de contexto" abaixo.

Onde a revisão poderia começar?

packtools/sps/formats/pdf/pipeline/xml.py::extract_footer_data, que ganha o campo location_label ({fpage}-{lpage} quando há fpage, senão elocation_id, senão vazio). Depois packtools/sps/formats/pdf/pipeline/docx.py, nos 4 pontos que antes montavam f'{fpage}-{lpage}' manualmente (docx_cite_as_pipe, docx_second_footer_pipe, docx_page_vol_issue_year_pipe, docx_supplementary_material_pipe).

Como este poderia ser testado manualmente?

python -m packtools.sps.formats.pdf_generator \
    -i tests/fixtures/pdf/a4.xml \
    -l tests/fixtures/pdf/layout.docx \
    -o /tmp/a4.pdf --libreoffice-binary libreoffice

Página 1: o rodapé e o CITE AS devem mostrar e282794 em vez de -.

python -m packtools.sps.formats.pdf_generator \
    -i tests/fixtures/pdf/a1.xml \
    -l tests/fixtures/pdf/layout.docx \
    -o /tmp/a1.pdf --libreoffice-binary libreoffice

Páginas do Material Suplementar (12 a 15): o rodapé deve começar direto em VOL., sem | solto no início.

Testes automatizados: pytest tests/sps/formats/pdf (ou python -m unittest discover -s tests/sps/formats/pdf -v).

Algum cenário de contexto que queira dar?

Levantado a partir da issue #1302. Essa issue também descreve um problema de numeração de página (artigos sem fpage deveriam numerar a partir de 1 na primeira folha, e não na segunda). Esse ponto não está coberto aqui porque entra em conflito direto com o comportamento fixado em test_rendered_page_layout.py::test_body_starts_page_one_without_fpage_defaults_to_one (adicionado pelos PRs #1295/#1296, que resolveram um problema de layout diferente e, como efeito colateral, assumiram um comportamento de numeração que a #1302 contesta). Fica para um PR à parte, que vai precisar revisar aquele teste.

Screenshots

Antes/depois do CITE AS e rodapé de a4.xml (publicação contínua, sem fpage):

comparison_elocation_id_before_after

Antes/depois do rodapé do Material Suplementar de a1.xml:

comparison_supplementary_pipe_before_after

Quais são os tickets relevantes?

Refs #1302 (parcial: cobre elocation-id e rodapé do Material Suplementar; numeração de página fica para PR separado).

Referências

N/A


Segurança da informação (NSI.04)

Este PR manipula dados sensíveis ou pessoais (LGPD)?

  • Sim
  • Não

Este PR altera autenticação, autorização, controle de acesso ou gerenciamento de sessão?

  • Sim
  • Não

Este PR introduz, atualiza ou remove dependências de terceiros?

  • Sim
  • Não

Este PR foi validado pelo pipeline de segurança (SonarQube / Trivy)?

  • Sim
  • Não aplicável a este PR (justifique): Trivy/SonarQube não estão configurados neste repositório (packtools é biblioteca Python, não serviço containerizado). Os gates automáticos reais deste repositório (Snyk e GitGuardian) rodam via CI neste PR.

Este PR concatena, monta ou executa comandos SQL, HTML ou JavaScript a partir de entrada externa?

  • Sim
  • Não

Este PR expõe novos endpoints, telas ou serviços?

  • Sim
  • Não

Algum segredo, senha, chave ou token está sendo adicionado ao código-fonte?

  • Não, nenhum segredo foi commitado
  • Sim

Corrige parte da issue scieloorg#1302: artigos de publicacao continua (com
elocation-id, sem fpage/lpage) mostravam ": -" no rodape e no CITE AS
em vez do identificador eletronico. Adiciona location_label em
extract_footer_data, calculado a partir de fpage/lpage quando
presentes, ou de elocation-id como alternativa.

Tambem remove o " | " inicial do rodape do Material Suplementar, que
aparecia mesmo essa secao nunca recebendo numero de pagina (paginacao
independente do corpo do artigo).

Nao mexe na numeracao de pagina em si (start_page_number, mecanismo
diferente entre a 1a pagina e as demais); fica para PR separado.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants