Pdf.js: Solicitação de recurso para o futuro: camadas PDF

Criado em 17 jul. 2011  ·  32Comentários  ·  Fonte: mozilla/pdf.js

Isso é tudo.

O código parece realmente promissor!

1-core 2-feature

Comentários muito úteis

Também espere esse recurso. Obter informações de camadas / mostrar camada / ocultar camada

Todos 32 comentários

Não está claro o que isso significa. O usuário não está mais ativo no Github. Pode reabrir se solicitado.

Deixe-me pesquisar isso no Google para você.

http://www.google.com/search?q=site : adobe.com + pdf + camada
http://www.google.com/search?q=site : adobe.com + pdf +% 22opcional + conteúdo + grupo% 22

Padrão desde a especificação PDF 1.5.
http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf
seção 8.11.3 "Tornando o conteúdo gráfico opcional"

Presente na IU de cada visualizador de Adobe PDF há cerca de um bilhão de anos.
As camadas PDF correspondem de forma útil às camadas do programa de desenho do Illustrator (e similares), às camadas na saída GIS, etc.

Eu seria mais "ativo" no github (e com outros softwares livres) se gostasse de receber mais bofetadas. (Eu parei de usar o Firefox desde a "atualização" que eliminou o plug-in http://code.google.com/p/firefox-mac-pdf/ verdadeiramente útil, que também não tinha suporte para camada de PDF, mas, por outro lado, funcionou muito bem . Navegador sem visualização de PDF = inútil. O Safari pelo menos consegue isso, apesar de todas as outras porcarias.)

Ei, não tive a intenção de insultá-lo! Estamos fazendo uma limpeza de problema, então perdoe por encerrar o problema para você.

E obrigado pela resposta detalhada - definitivamente esclareceu o que você quis dizer.

Adivinhar as solicitações concisas do usuário é uma coisa difícil de fazer - o usuário quis dizer "camadas" no nível da IU / visualizador ou no nível de especificação (conteúdo opcional), etc? Pensei em perguntar aqui, mas presumi erradamente que as chances de uma resposta eram baixas, visto que sua única atividade no Github era este comentário (estamos lisonjeados! :)).

Como eu disse, reabrir é definitivamente uma opção - considere feito.

Obrigado novamente.

Eu carreguei um pequeno arquivo aqui que demonstra o comportamento de renderização quebrado para grupos de conteúdo opcionais e / ou caminhos de recorte (não tenho certeza de qual coisa está realmente causando o mau comportamento). Se você tentar adicionar #textLayer=visible ao url, poderá ver que o pdf.js está localizando e renderizando o texto corretamente, mas não está manipulando o resto da renderização corretamente.

(Este PDF em particular surgiu devido ao meu trabalho nesta abordagem para renderizar links em LaTeX usando destaque em vez de caixas. O texto é renderizado no caminho de recorte atual ( 7 Tr ) em vez de como texto normal ( 0 Tr ), o caminho de recorte é preenchido com a cor de texto normal e, dentro de um grupo de conteúdo opcional, preenchido novamente usando a cor de destaque. IIRC, canvas.js#L982 já tem algum suporte para adicionar texto ao caminho de recorte , mas parece não estar funcionando aqui ... Como resultado, este comentário pode não ser 100% aplicável a este bug; sinta-se à vontade para me redirecionar para um mais apropriado, se houver ;-))

@blerner Acho que esse problema é diferente do que você está perguntando. Você pode abrir um novo problema com seu comentário acima?

Estou procurando a funcionalidade OCG também ... isso está nos planos? Alguém pode me indicar o roteiro?

Alguma notícia sobre camadas de suporte? Seria incrivelmente útil. Obter nomes de objetos também seria útil (como em nomes de objetos e grupos que você pode definir no Illustrator)

Também estou interessado em saber quando as camadas serão suportadas (especificamente mostrando / ocultando-as).

Não há implementação para isso ainda e, pelo que sei, ninguém está trabalhando nisso. Se alguém quiser trabalhar nisso, sinta-se à vontade para criar uma solicitação pull.

Arquivos com OCGs:
http://ims.er.usgs.gov/images/USTopo/
(nem todos, apenas os enormes)

Também espere esse recurso. Obter informações de camadas / mostrar camada / ocultar camada

Olá, também espere suporte para OCGs (camada). Alguma programação?
@timvandermeij O anexo é um arquivo pdf exportado de um desenho arquitetônico contendo centenas de camadas.
OCGs_demo.PDF

Atualmente, este recurso não está planejado para ser implementado. Se alguém quiser trabalhar nisso, entre em contato conosco. Se você puder anexar mais arquivos PDF de exemplo aqui, isso ajudaria a fazer as pessoas começarem e verificar seu trabalho.

Aqui está um simples:
PDFBOX-4103-OCG.pdf

um exemplo antigo com transparência e ocgs, seria bom se os ocgs fossem selecionáveis ​​em um navegador / página
_myChessboardv1.2_mockup_ImageArray_beta0.7 - public.pdf

Estou tentando identificar algum conteúdo do PDF.
Eu entendo que não posso usar as camadas porque elas não são suportadas.
Isso está correto?
E existe outra maneira?

Também espero esse recurso. Obter informações de camadas / mostrar camada / ocultar camada Isso será muito útil para o uso do Solidworks / Inventor.

Olá, sei que este problema tem 8 anos, mas gostaria apenas de acrescentar que seria um recurso muito útil. Talvez as coisas tenham mudado em 2 anos?

Atualize o status se alguém trabalhou neste problema e o resolveu.

Obrigado

+1

+1

Não poste comentários "+1" individuais, mas dê ao comentário original (https://github.com/mozilla/pdf.js/issues/269#issue-1238154) um polegar para cima usando o mecanismo de reação do GitHub. Isso evita choques desnecessários nesse problema e nos permite filtrar com base na prioridade da comunidade.

Alô, há alguma atualização da prioridade dessa solicitação futura? :)
Parece que há muitos posts duplicados referenciando o mesmo problema, o que pode não ser explicado e mostrado em um bom exemplo neste post?

Ninguém está trabalhando nisso no momento. Se alguém quiser contribuir, estamos sempre dispostos a revisar as solicitações pull.

O motivo pelo qual isso ainda não foi implementado é provavelmente porque se trata de um assunto bastante complicado, visto que tudo isso está descrito na especificação do PDF.
Ignorando muitas das outras especificidades em torno dos OCGs, a seção "8.11.3.1 Geral" dos estados de especificação (observe o segundo ponto):

Quando uma parte do conteúdo opcional em um arquivo PDF é determinado que deve ser ocultado, ocorre o seguinte:

  • O conteúdo não deve ser desenhado.
  • Operações de estado gráfico, como definir a cor, matriz de transformação e recorte, ainda devem ser aplicadas. Além disso, os efeitos colaterais do estado gráfico que surgem dos operadores de desenho devem ser aplicados; em particular, a posição atual do texto deve ser atualizada mesmo para o texto embalado em conteúdo opcional. Em outras palavras, os parâmetros de estado dos gráficos que persistem após o final de uma seção de conteúdo marcado devem ser os mesmos, quer o conteúdo opcional esteja visível ou não.

Olá, tenho tentado encontrar uma solução para este problema durante a última semana e espero que alguém me indique a direção certa.
Para o meu caso de uso, não seria necessário alternar camadas adicionais, eu simplesmente precisaria ocultá-las em meu visualizador.

Até agora, fui capaz de identificar as camadas "ocultas" dentro de document.js assim:

const hiddenLayers = this.xref.root._map.OCProperties._map.D.get("OFF");

Mas não consegui estabelecer a conexão entre as camadas e o conteúdo real renderizado por pdf.js. Portanto, se alguém pudesse me dar uma dica de como descobrir quais dados deveriam estar ocultos, eu adoraria colocá-los em uso.

@brendandahl como funciona a nova API? O que é "Conteúdo Opcional"? Não podemos simplesmente digitalizar as camadas existentes e ocultá-las? Obrigado!

O que é "Conteúdo Opcional"?

Consulte https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf#G7.3858031

Não podemos simplesmente digitalizar as camadas existentes e ocultá-las?

Infelizmente, é realmente muito difícil entender o que você está perguntando aqui.
Nota: Esta funcionalidade ainda não foi integrada ao visualizador padrão, no entanto, isso será abordado no # 12170.

Desculpe, eu quis dizer detectá-los e ter a opção de manipulá-los (ocultar, remover, etc ...)

Experimentei o recurso e funciona conforme o esperado, ou seja, ao invés de exibir todas as camadas, ele exibe apenas aquelas para visualização.

@brendandahl como funciona a nova API? O que é "Conteúdo Opcional"? Não podemos simplesmente digitalizar as camadas existentes e ocultá-las? Obrigado!

A API completa ainda precisa de um pouco mais de trabalho, mas você pode pdfDoc.getOptionalContentConfig então iterar sobre os vários optionalContentConfig.groups e definir quais deseja ocultar / mostrar ( optionalContentGroup.visible ). Em seguida, passe essa configuração em sua chamada para render a página.

Links Úteis:
https://github.com/mozilla/pdf.js/blob/63e33a5895bb730ce0e6a65e4d0de12ed043b649/src/display/api.js#L779

https://github.com/mozilla/pdf.js/blob/63e33a5895bb730ce0e6a65e4d0de12ed043b649/src/display/optional_content_config.js#L25

https://github.com/mozilla/pdf.js/blob/63e33a5895bb730ce0e6a65e4d0de12ed043b649/src/display/api.js#L958

@brendandahl oh, isso parece muito interessante! Eu vou dar uma chance. Obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

zerr0s picture zerr0s  ·  3Comentários

anggikolo11 picture anggikolo11  ·  3Comentários

THausherr picture THausherr  ·  3Comentários

smit-modi picture smit-modi  ·  3Comentários

jigskpatel picture jigskpatel  ·  3Comentários