en HTML, un enlace con un atributo 'Href' '#resumen' se desplazaría hacia abajo hasta el elemento que tiene la palabra 'resumen' como su atributo 'ID'.
mi pregunta es, ¿cómo puedo crear un enlace dentro de un pdf que pueda apuntar a una parte específica de ese pdf, sin usar ningún software (como adobe acrobat) y mediante codificación pura (HTML, javascript o php)?
(La página html funciona bien con el ancla. Exporté el html como pdf usando la biblioteca 'html2pdf' pero no se desplaza hacia abajo.
Si tiene la intención de apuntar a un elemento específico, esto requeriría dos líneas de código. Primero, creando el enlace usando href :
<a href="#Chapter1">Lorem</a> En segundo lugar, defina el destino del enlace usando <a name> :
<a name="Chapter1">Lorem ipsum</a> Sin embargo, este enfoque solo funcionará si el PDF se abre en el navegador. Si intenta usar el PDF a través de cualquier lector, obtendrá un error que indica There is no application set to open the URL
Por lo tanto, si el caso de uso previsto de su aplicación es para el uso de archivos PDF fuera del navegador, recomendaría instalar la pdf-internal-link npm library , usando npm i pdf-internal-link . Las instrucciones sobre cómo usarlo están disponibles aquí
La descripción general de la ubicación (su objetivo) puede ser uno de los múltiples destinos dentro del PDF, por lo que podría ser
zoom=scale,left,top o viewrect=left,top,wd,ht (una ventana gráfica). El soporte para estos varía, pero no todos los navegadores los usan comúnmente.Para obtener soporte de Mozilla, consulte https://github.com/mozilla/pdf.js/wiki/Viewer-options
Por lo tanto su requisito
"desplácese hacia abajo hasta el elemento que tiene la palabra 'resumen' como su atributo 'ID'".
necesita una URL externa con un "Destino con nombre" oculto interno, y muchas utilidades y SDK de PDF pueden modificar un PDF internamente para agregar ese puntero oculto, pero para hacerlo es necesario volver a escribir el tráiler de PDF .
En javascript, puede intentar escribir un archivo BLOB nuevo para fusionar todo el PDF existente, luego escribir en binario su Destino con nombre y luego reescribir en binario el tráiler decimal en unas pocas líneas de código. Sin embargo, hay archivos PDF que no son tan fáciles de escribir de forma incremental, por lo que su biblioteca podría avanzar hasta el nivel de la mayoría de las herramientas de terceros.
Solicitó otros métodos como PHP.HTML y estrictamente eso depende de los navegadores de los usuarios que admitan zoom=scale,left,top (la mayoría de Chromium, algunos Mozilla, probablemente NO Edge o iOS, pero las publicaciones siguen cambiando) o Internet Explorer ahora extinto viewrect=left,top,wd,ht