2012-11-17 2 views
29

Es gibt eine standard from Adobe, die in der Theorie das Öffnen von PDF-Dokumenten von einem Link in einem Browser in einer Weise geöffnet, um bestimmte Abschnitte (AKA "Anker", " benannte Referenz ") des PDF-Dokuments. Diese Funktionalität sollte eine große Hilfe sein, wenn Sie auf einen bestimmten Teil eines großen PDFs (wie einen Standard oder eine Spezifikation) verweisen möchten.Verknüpfung von einer Webseite zu einem bestimmten Abschnitt (Anker) im PDF-Dokument

Aus dem, was ich jetzt sehe, ist die Unterstützung für diesen Standard fast nicht existent.

Zum Beispiel sollten diese Links öffnen Scala Referenz PDF in Abschnitt 3.2.6, "Kommentierte Typen":

  1. http://www.scala-lang.org/docu/files/ScalaReference.pdf#subsection.3.2.6
  2. http://www.scala-lang.org/docu/files/ScalaReference.pdf#nameddest=subsection.3.2.6
  3. http://www.scala-lang.org/docu/files/ScalaReference.pdf#page=23

(Techincally, Variante # 3 sollte Seite 23 öffnen, die im Wesentlichen das gleiche Ziel ist)

Gibt es einen funktionierenden Weg (vielleicht mit ein paar Shims, proprietären Wrappern oder was auch immer), um dies auf den meisten Systemen funktionieren zu lassen? Was ist der Nutzungsanteil des Adobe Reader Plugins, sollte ich mich um andere Systeme kümmern?

Wenn es nicht möglich ist, würde ich zumindest eine funktionierende Lösung für jede Plattform (dh Windows, Linux, Mac) finden, die ich den Benutzern meiner Site empfehlen könnte, wenn sie benannte Ziel-Links verwenden wollen .

Von dem, was ich getestet habe:

  • Windows MSIE/Firefox/Chrome, Adobe Acrobat Reader-Plugin - alle Varianten arbeiten mit Version 9+, aber:
    • MSIE hat ein seltsames Caching Problem (dh Anker funktioniert nicht, bis Dokument zwischengespeichert wurde)
    • ältere Versionen funktionieren nicht
    • es hat issues with link format: In der Regel sollte es regelmäßig absoluter Link zu einem echten Web-Server sein, mit „http: //“ beginnen. Relative Links, Samba-Stil-Links (\\HOST\dir\file.pdf#something), irgendetwas anderes außer "http" (oder wahrscheinlich, "https") Schema wird nicht funktionieren
  • Windows alle Browser einrichten Adobe Acrobat Reader als separate laufen Prozess - nicht
  • von Windows funktioniert, alle Browser, Foxit Reader - nicht
  • Windows alle Browser funktioniert, CutePDF - funktioniert nicht
  • Linux/Konqueror/OkularName - nur Variante # 1 Werke
  • Linux , alle anderen Browser, die für die Ausführung von Okular oder eines anderen PDF-Viewers als externen Prozess eingerichtet wurden, funktionieren nicht (wie Bro wser nicht besteht keine „#arguments“ in einer Befehlszeile)
  • Jedes Betriebssystem, Firefox 15+ PDF.js internal PDF viewer - nicht

Ich würde schätzen funktioniert, wenn Sie es versuchen würden in verschiedenen Kombinationen zu testen .

+0

verwendeten Das Grundproblem kann sein, dass Sie eigentlich nur einen * Standard * von Adobe nennen ist ein * Guide * aus dem Adobe * Acrobat SDK *, der auf * 2007 * zurückgeht. Während die PDF Reference im Jahr 2008 tatsächlich (hauptsächlich mit redaktionellen Änderungen) zum ISO-Standard wurde, wurde dieser URL-Guide AFAIK ebenfalls nicht erhöht. Daher ist diese Anleitung nur für Adobe Acrobat & Reader und deren Browser-Integration relevant (und vielleicht sogar für sie veraltet). Jeder andere PDF-Viewer kann einige dieser Mechanismen übernommen haben, aber sie können auch eigene oder gar keine Adressierungsmechanismen haben. – mkl

+1

In Bezug auf "Windows, alle Browser, die Adobe Acrobat Reader als separaten Prozess ausführen": AFAIK als separaten Prozess werden diese Programme vom Browser nur mit dem Pfad einer heruntergeladenen PDF-Kopie geöffnet. Somit haben sie keine Chance, überhaupt zur gewünschten Position zu gelangen. – mkl

Antwort

12

Was im Allgemeinen zu arbeiten scheint, ist Variante # 4, aber die Zahl der Seite, wie in der tatsächlichen Aufteilung in Seiten im PDF-Dokument, in diesem Fall

http://www.scala-lang.org/docu/files/ScalaReference.pdf#page=31

Das PDF-Dokument Seitenzahl verwendet, hat die vom eigentlichen Inhalt beginnen, nach dem Inhaltsverzeichnis, aber diese Nummerierung unterscheidet sich von der in #page = ...

+0

Ein JIRA-Problem wurde dafür erstellt: https://issues.alfresco.com/jira/browse/MNT-12709 Bitte abstimmen! – 4F2E4A2E