web-dev-qa-db-fra.com

Ouvrir le lien dans un nouvel onglet à partir de PDF

J'ai créé le fichier PDF par programme. Pour cela, j'ai utilisé le HTML pour PDF bibliothèque de conversion. Dans mon PDF = il existe des liens pour certaines pages du site.

J'ai implémenté le html en suivant le chemin, puis je l'ai converti en PDF par programmation.

<a target="_blank" href="http://mywebsite_url_here.html">Link</a>

Mais lors de l'ouverture de ce PDF dans chrome ou navigateur Firefox et en cliquant sur le lien existe en PDF. Les liens s'ouvrent est le même TAB au lieu du nouveau TAB). Veuillez aider à trouver la solution pour cela. Afin que mon PDF réside dans un onglet et que le lien s'ouvre dans un autre onglet du navigateur.

J'ai déjà essayé

target="_blank"

target="_top"

<a onclick="window.open ('http://mywebsite_url_here.html', ''); 
 return false" href="javascript:void(0);"></a>

Mais rien n'a fonctionné pour moi.

12
Rakesh Soni

Réponse courte: ce n'est pas possible de manière croisée et à fonctionnement garanti.

Réponse longue: Les hyperliens dans un PDF sont différents des hyperliens en HTML. PDF n'a pas été conçu pour être vu dans le cadre d'une expérience de navigation. Par conséquent, il n'y a pas option disponible pour PDF Hyperliens pour les ouvrir dans un nouvel onglet, car PDF ne connaît pas le concept des onglets.

Il y a discussion dans les forums d'Adobe à ce sujet, qui se résume à „pas directement possible, mais vous pourriez intégrer JavaScript dans le PDF pour le faire ". Ils donnent un fichier EPS comme exemple:

%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 100 100
%%EndProlog

[ /Rect [ 0 0 100 100 ]
/Action << /Subtype /JavaScript /JS (app.launchURL\("PLACE-YOUR-URL-HERE", true\);) >>
/Subtype /Link

/ANN pdfmark

%%EOF

Maintenant, avant d'essayer d'obtenir ce fichier EPS intégré dans votre PDF, sachez que Chrome PDF a très peu de support pour JavaScript intégré , donc il n'est pas garanti de Il peut également avertir l'utilisateur qu'il y aura du code JavaScript à exécuter s'il clique dessus. Je dirais que cela ne vaut pas la peine.

14
flyx